mirror of
https://github.com/yuezk/GlobalProtect-openconnect.git
synced 2025-04-02 18:31:50 -04:00
Add CI
This commit is contained in:
parent
995d1216ea
commit
1f50e4d82b
232
.github/workflows/build.yaml
vendored
232
.github/workflows/build.yaml
vendored
@ -8,8 +8,9 @@ on:
|
|||||||
- .devcontainer
|
- .devcontainer
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
# tags:
|
tags:
|
||||||
# - v*.*.*
|
- latest
|
||||||
|
- v*.*.*
|
||||||
jobs:
|
jobs:
|
||||||
# Include arm64 if ref is a tag
|
# Include arm64 if ref is a tag
|
||||||
setup-matrix:
|
setup-matrix:
|
||||||
@ -30,7 +31,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout gpgui repo
|
- name: Checkout gpgui repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GH_PAT }}
|
token: ${{ secrets.GH_PAT }}
|
||||||
repository: yuezk/gpgui
|
repository: yuezk/gpgui
|
||||||
@ -54,43 +55,35 @@ jobs:
|
|||||||
pnpm run build
|
pnpm run build
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: gpgui-fe
|
name: gpgui-fe
|
||||||
path: app/dist
|
path: app/dist
|
||||||
|
|
||||||
build-tauri:
|
build-tauri-amd64:
|
||||||
needs: [setup-matrix, build-fe]
|
needs: [build-fe]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout gpgui repo
|
- name: Checkout gpgui repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GH_PAT }}
|
token: ${{ secrets.GH_PAT }}
|
||||||
repository: yuezk/gpgui
|
repository: yuezk/gpgui
|
||||||
path: gpgui
|
path: gpgui
|
||||||
|
|
||||||
- name: Checkout gp repo
|
- name: Checkout gp repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GH_PAT }}
|
token: ${{ secrets.GH_PAT }}
|
||||||
repository: yuezk/GlobalProtect-openconnect
|
repository: yuezk/GlobalProtect-openconnect
|
||||||
path: gp
|
path: gp
|
||||||
|
|
||||||
- name: Download gpgui-fe artifact
|
- name: Download gpgui-fe artifact
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: gpgui-fe
|
name: gpgui-fe
|
||||||
path: gpgui/app/dist
|
path: gpgui/app/dist
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: ${{ matrix.arch }}
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@ -104,13 +97,212 @@ jobs:
|
|||||||
-v $(pwd):/${{ github.workspace }} \
|
-v $(pwd):/${{ github.workspace }} \
|
||||||
-w ${{ github.workspace }} \
|
-w ${{ github.workspace }} \
|
||||||
-e CI=true \
|
-e CI=true \
|
||||||
--platform linux/${{ matrix.arch }} \
|
|
||||||
yuezk/gpdev:main \
|
yuezk/gpdev:main \
|
||||||
"./gpgui/scripts/build.sh"
|
"./gpgui/scripts/build.sh"
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: artifact-${{ matrix.arch }}-tauri
|
name: artifact-amd64-tauri
|
||||||
path: |
|
path: |
|
||||||
gpgui/.tmp/artifact
|
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-*/*
|
||||||
|
Loading…
Reference in New Issue
Block a user