From b706207aafbfa7a3287638f3982d50b292d4f7db Mon Sep 17 00:00:00 2001 From: PandaDEV <70103896+0PandaDEV@users.noreply.github.com> Date: Sun, 22 Dec 2024 12:51:46 +1000 Subject: [PATCH] chore: refine Windows and Linux build workflows with improved artifact listing and renaming --- .github/workflows/build.yml | 80 ++++++++++--------------------------- 1 file changed, 22 insertions(+), 58 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f5c162..7adbe1e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -151,7 +151,9 @@ jobs: - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: List Build Directories + with: + args: ${{ matrix.args }} + - name: List Bundle Directory shell: pwsh run: | Write-Output "Checking build directories..." @@ -161,51 +163,31 @@ jobs: Write-Output "Found MSI file: $($_.FullName)" } } - - name: Rename Windows Artifacts shell: pwsh run: | - $targetPath = "src-tauri/target/${{ matrix.target }}/release/bundle/msi" $version = "${{ needs.prepare.outputs.version }}" $arch = "${{ matrix.arch }}" - Write-Output "Looking for MSI files in: $targetPath" - - if (!(Test-Path $targetPath)) { - Write-Error "Target path does not exist: $targetPath" - Write-Output "Available directories:" - Get-ChildItem -Path "src-tauri/target" -Recurse -Directory | Format-Table -Property FullName - exit 1 - } - - $msiFiles = Get-ChildItem -Path "$targetPath/*.msi" -ErrorAction SilentlyContinue - if ($null -eq $msiFiles) { - Write-Error "No MSI files found in: $targetPath" - exit 1 - } + # Find MSI files recursively + $msiFiles = Get-ChildItem -Path "src-tauri/target" -Recurse -Filter "*.msi" foreach ($file in $msiFiles) { $newName = "Qopy-${version}_${arch}.msi" Write-Output "Renaming $($file.Name) to $newName" - Rename-Item -Path $file.FullName -NewName $newName -ErrorAction Stop + Rename-Item -Path $file.FullName -NewName $newName + $newPath = Join-Path $file.Directory.FullName $newName + Write-Output "New file path: $newPath" } - - uses: actions/upload-artifact@v4 with: name: windows-${{ matrix.arch }}-binaries path: | - src-tauri/target/${{ matrix.target }}/release/bundle/msi/*.msi - src-tauri/target/${{ matrix.target }}/release/bundle/msi/*.msi.sig + src-tauri/target/**/release/bundle/msi/*.msi + src-tauri/target/**/release/bundle/msi/*.msi.sig build-ubuntu: needs: prepare - strategy: - matrix: - include: - - target: "x86_64-unknown-linux-gnu" - arch: "x64" - - target: "aarch64-unknown-linux-gnu" - arch: "arm64" runs-on: ubuntu-latest env: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} @@ -216,7 +198,7 @@ jobs: node-version: 20 - uses: dtolnay/rust-toolchain@stable with: - targets: ${{ matrix.target }} + targets: x86_64-unknown-linux-gnu - uses: swatinem/rust-cache@v2 with: workspaces: "src-tauri -> target" @@ -231,44 +213,26 @@ jobs: ${{ runner.os }}-pnpm- - name: Install dependencies run: | - sudo dpkg --add-architecture arm64 - # Update sources.list to use jammy (22.04) - sudo sed -i 's/noble/jammy/g' /etc/apt/sources.list sudo apt update sudo apt install -y libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev libasound2-dev rpm - sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - - if [ "${{ matrix.target }}" = "aarch64-unknown-linux-gnu" ]; then - # Install ARM64 dependencies from jammy - sudo apt install -y \ - libwebkit2gtk-4.1-dev:arm64 \ - libssl-dev:arm64 \ - libayatana-appindicator3-dev:arm64 \ - librsvg2-dev:arm64 \ - libasound2-dev:arm64 - - # Set up cross-compilation environment - echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV - echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - fi + echo "PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig" >> $GITHUB_ENV - run: npm install -g pnpm && pnpm install - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - args: --target ${{ matrix.target }} + args: --target x86_64-unknown-linux-gnu - name: Rename Linux Artifacts run: | - mv src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb src-tauri/target/${{ matrix.target }}/release/bundle/deb/Qopy-${{ needs.prepare.outputs.version }}_${{ matrix.arch }}.deb - mv src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage src-tauri/target/${{ matrix.target }}/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}_${{ matrix.arch }}.AppImage - mv src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage.sig src-tauri/target/${{ matrix.target }}/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}_${{ matrix.arch }}.AppImage.sig - mv src-tauri/target/${{ matrix.target }}/release/bundle/rpm/*.rpm src-tauri/target/${{ matrix.target }}/release/bundle/rpm/Qopy-${{ needs.prepare.outputs.version }}_${{ matrix.arch }}.rpm + mv src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/Qopy-${{ needs.prepare.outputs.version }}.deb + mv src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}.AppImage + mv src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage.sig src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}.AppImage.sig + mv src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/rpm/*.rpm src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/rpm/Qopy-${{ needs.prepare.outputs.version }}.rpm - uses: actions/upload-artifact@v4 with: - name: linux-${{ matrix.arch }}-binaries + name: linux-x64-binaries path: | - src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb - src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage - src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage.sig - src-tauri/target/${{ matrix.target }}/release/bundle/rpm/*.rpm + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage.sig + src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/rpm/*.rpm