diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5a84f2f..1d078f4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -33,10 +33,11 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-tarball + if-no-files-found: error path: | gp/.build/tarball/*.tar.gz - deb: + build-deb: runs-on: ubuntu-latest needs: [tarball] container: @@ -68,10 +69,11 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-deb + if-no-files-found: error path: | globalprotect-openconnect-*/.build/deb/*.deb - rpm: + build-rpm: runs-on: ubuntu-latest needs: [tarball] container: @@ -105,10 +107,11 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-rpm + if-no-files-found: error path: | globalprotect-openconnect-*/.build/rpm/*.rpm - pkgbuild: + build-pkgbuild: runs-on: ubuntu-latest needs: [tarball] container: @@ -140,10 +143,11 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-pkgbuild + if-no-files-found: error path: | globalprotect-openconnect-*/.build/pkgbuild/*.pkg.tar.zst - binary: + build-binary: runs-on: ubuntu-latest needs: [tarball] container: @@ -176,8 +180,9 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-binary + if-no-files-found: error path: | - gp/.build/binary/*.bin.tar.gz + globalprotect-openconnect-*/.build/binary/*.bin.tar.xz* build-gpgui: runs-on: ubuntu-latest @@ -212,300 +217,36 @@ jobs: uses: actions/upload-artifact@v3 with: name: artifact-gpgui + if-no-files-found: error path: | - gpgui/.build/package/*.tar.xz + gpgui/.build/package/*.tar.xz* - # Include arm64 if ref is a tag - # setup-matrix: - # runs-on: ubuntu-latest - # outputs: - # matrix: ${{ steps.set-matrix.outputs.matrix }} - # steps: - # - name: Set up matrix - # id: set-matrix - # run: | - # if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then - # echo "matrix=[\"amd64\", \"arm64\"]" >> $GITHUB_OUTPUT - # else - # echo "matrix=[\"amd64\"]" >> $GITHUB_OUTPUT - # fi + gh-release: + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + needs: + - build-deb + - build-rpm + - build-pkgbuild + - build-binary + - build-gpgui - # build-fe: - # runs-on: ubuntu-latest - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui + steps: + - name: Download all artifacts + uses: actions/download-artifact@v3 + with: + path: artifact - # - name: Install Node.js - # uses: actions/setup-node@v4 - # with: - # node-version: 18 - - # - uses: pnpm/action-setup@v2 - # with: - # version: 8 - - # - name: Install dependencies - # run: | - # cd app - # pnpm install - # - name: Build - # run: | - # cd app - # pnpm run build - - # - name: Upload artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: gpgui-fe - # path: app/dist - - # build-tauri-amd64: - # needs: [build-fe] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui - # path: gpgui - - # - name: Checkout gp repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/GlobalProtect-openconnect - # path: gp - - # - name: Download gpgui-fe artifact - # uses: actions/download-artifact@v3 - # with: - # name: gpgui-fe - # path: gpgui/app/dist - - # - name: Login to Docker Hub - # uses: docker/login-action@v3 - # with: - # username: ${{ secrets.DOCKER_HUB_USERNAME }} - # password: ${{ secrets.DOCKER_HUB_TOKEN }} - - # - name: Build Tauri in Docker - # run: | - # docker run \ - # --rm \ - # -v $(pwd):/${{ github.workspace }} \ - # -w ${{ github.workspace }} \ - # -e CI=true \ - # yuezk/gpdev:main \ - # "./gpgui/scripts/build.sh" - - # - name: Upload artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: artifact-amd64-tauri - # path: | - # gpgui/.tmp/artifact - - # build-tauri-arm64: - # if: startsWith(github.ref, 'refs/tags/') - # needs: [build-fe] - # runs-on: self-hosted - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui - # path: gpgui - - # - name: Checkout gp repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/GlobalProtect-openconnect - # path: gp - - # - name: Download gpgui-fe artifact - # uses: actions/download-artifact@v3 - # with: - # name: gpgui-fe - # path: gpgui/app/dist - # - name: Build Tauri - # run: | - # ./gpgui/scripts/build.sh - - # - name: Upload artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: artifact-arm64-tauri - # path: | - # gpgui/.tmp/artifact - - # package-tarball: - # needs: [build-tauri-amd64, build-tauri-arm64] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui - # path: gpgui - - # - name: Download artifact-amd64-tauri - # uses: actions/download-artifact@v3 - # with: - # name: artifact-amd64-tauri - # path: gpgui/.tmp/artifact - - # - name: Download artifact-arm64-tauri - # uses: actions/download-artifact@v3 - # with: - # name: artifact-arm64-tauri - # path: gpgui/.tmp/artifact - - # - name: Create tarball - # run: | - # ./gpgui/scripts/build-tarball.sh - - # - name: Upload tarball - # uses: actions/upload-artifact@v3 - # with: - # name: artifact-tarball - # path: | - # gpgui/.tmp/tarball/*.tar.gz - - # package-rpm: - # needs: [setup-matrix, package-tarball] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui - # path: gpgui - - # - name: Download package tarball - # uses: actions/download-artifact@v3 - # with: - # name: artifact-tarball - # path: gpgui/.tmp/artifact - - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v3 - # with: - # platforms: ${{ matrix.arch }} - - # - name: Login to Docker Hub - # uses: docker/login-action@v3 - # with: - # username: ${{ secrets.DOCKER_HUB_USERNAME }} - # password: ${{ secrets.DOCKER_HUB_TOKEN }} - - # - name: Create RPM package - # run: | - # docker run \ - # --rm \ - # -v $(pwd):/${{ github.workspace }} \ - # -w ${{ github.workspace }} \ - # --platform linux/${{ matrix.arch }} \ - # yuezk/gpdev:rpm-builder \ - # "./gpgui/scripts/build-rpm.sh" - - # - name: Upload rpm artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: artifact-${{ matrix.arch }}-rpm - # path: | - # gpgui/.tmp/artifact/*.rpm - - # package-pkgbuild: - # needs: [setup-matrix, build-tauri-amd64, build-tauri-arm64] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} - # steps: - # - name: Checkout gpgui repo - # uses: actions/checkout@v3 - # with: - # token: ${{ secrets.GH_PAT }} - # repository: yuezk/gpgui - # path: gpgui - - # - name: Download artifact-${{ matrix.arch }} - # uses: actions/download-artifact@v3 - # with: - # name: artifact-${{ matrix.arch }}-tauri - # path: gpgui/.tmp/artifact - - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v3 - # with: - # platforms: ${{ matrix.arch }} - - # - name: Login to Docker Hub - # uses: docker/login-action@v3 - # with: - # username: ${{ secrets.DOCKER_HUB_USERNAME }} - # password: ${{ secrets.DOCKER_HUB_TOKEN }} - - # - name: Generate PKGBUILD - # run: | - # export CI_ARCH=${{ matrix.arch }} - # ./gpgui/scripts/generate-pkgbuild.sh - - # - name: Build PKGBUILD package - # run: | - # # Build package - # docker run \ - # --rm \ - # -v $(pwd)/gpgui/.tmp/pkgbuild:/pkgbuild \ - # --platform linux/${{ matrix.arch }} \ - # yuezk/gpdev:pkgbuild - - # - name: Upload pkgbuild artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: artifact-${{ matrix.arch }}-pkgbuild - # path: | - # gpgui/.tmp/pkgbuild/*.pkg.tar.zst - - # gh-release: - # if: startsWith(github.ref, 'refs/tags/') - # runs-on: ubuntu-latest - # needs: - # - package-rpm - # - package-pkgbuild - - # steps: - # - name: Download artifact - # uses: actions/download-artifact@v3 - # with: - # path: artifact - # # pattern: artifact-* - # # merge-multiple: true - - # # - name: Generate checksum - # # uses: jmgilman/actions-generate-checksum@v1 - # # with: - # # output: checksums.txt - # # patterns: | - # # artifact/* - - # - name: Create GH release - # uses: softprops/action-gh-release@v1 - # with: - # token: ${{ secrets.GH_PAT }} - # prerelease: ${{ contains(github.ref, 'latest') }} - # fail_on_unmatched_files: true - # files: | - # artifact/artifact-*/* + - name: Create GH release + uses: softprops/action-gh-release@v1 + with: + token: ${{ secrets.GH_PAT }} + prerelease: ${{ contains(github.ref, 'latest') }} + fail_on_unmatched_files: true + files: | + artifact/**/*.deb + artifact/**/*.rpm + artifact/**/*.pkg.tar.zst + artifact/**/*.bin.tar.xz + artifact/**/*.tar.gz + artifact/**/*.sha256 diff --git a/Makefile b/Makefile index 54f0a0a..659436a 100644 --- a/Makefile +++ b/Makefile @@ -228,4 +228,7 @@ binary: clean-binary tarball cp packaging/binary/Makefile.in .build/binary/$(PKG_NAME)_$(VERSION)_$(shell uname -m)/Makefile # Create a tarball for the binary package - tar -czf .build/binary/$(PKG_NAME)_$(VERSION)_$(shell uname -m).bin.tar.gz -C .build/binary $(PKG_NAME)_$(VERSION)_$(shell uname -m) + tar -cJf .build/binary/$(PKG_NAME)_$(VERSION)_$(shell uname -m).bin.tar.xz -C .build/binary $(PKG_NAME)_$(VERSION)_$(shell uname -m) + + # Generate sha256sum + cd .build/binary && sha256sum $(PKG_NAME)_$(VERSION)_$(shell uname -m).bin.tar.xz | cut -d' ' -f1 > $(PKG_NAME)_$(VERSION)_$(shell uname -m).bin.tar.xz.sha256