mirror of
https://github.com/yuezk/GlobalProtect-openconnect.git
synced 2025-04-02 18:31:50 -04:00
Add github actions
This commit is contained in:
parent
b32c0416ce
commit
1e0ea5329b
245
.github/workflows/build.yaml
vendored
Normal file
245
.github/workflows/build.yaml
vendored
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
name: Build GPGUI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
tags:
|
||||||
|
- v*.*.*
|
||||||
|
jobs:
|
||||||
|
# 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
|
||||||
|
|
||||||
|
build-fe:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout gpgui repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
repository: yuezk/gpgui
|
||||||
|
|
||||||
|
- 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@v4
|
||||||
|
with:
|
||||||
|
name: gpgui-fe
|
||||||
|
path: app/dist
|
||||||
|
|
||||||
|
build-tauri:
|
||||||
|
needs: [setup-matrix, build-fe]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout gpgui repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
repository: yuezk/gpgui
|
||||||
|
path: gpgui
|
||||||
|
|
||||||
|
- name: Checkout gp repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
repository: yuezk/GlobalProtect-openconnect
|
||||||
|
path: gp
|
||||||
|
|
||||||
|
- name: Download gpgui-fe artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: gpgui-fe
|
||||||
|
path: gpgui/app/dist
|
||||||
|
|
||||||
|
- 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: Build Tauri in Docker
|
||||||
|
run: |
|
||||||
|
docker run \
|
||||||
|
--rm \
|
||||||
|
-v $(pwd):/${{ github.workspace }} \
|
||||||
|
-w ${{ github.workspace }} \
|
||||||
|
-e CI=true \
|
||||||
|
--platform linux/${{ matrix.arch }} \
|
||||||
|
yuezk/gpdev:main \
|
||||||
|
"./gpgui/scripts/build.sh"
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: artifact-${{ matrix.arch }}-tauri
|
||||||
|
path: |
|
||||||
|
gpgui/.tmp/artifact
|
||||||
|
|
||||||
|
package-rpm:
|
||||||
|
needs: [setup-matrix, build-tauri]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout gpgui repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
repository: yuezk/gpgui
|
||||||
|
path: gpgui
|
||||||
|
|
||||||
|
- name: Download artifact-${{ matrix.arch }}
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
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: 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@v4
|
||||||
|
with:
|
||||||
|
name: artifact-${{ matrix.arch }}-rpm
|
||||||
|
path: |
|
||||||
|
gpgui/.tmp/artifact/*.rpm
|
||||||
|
|
||||||
|
package-pkgbuild:
|
||||||
|
needs: [setup-matrix, build-tauri]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout gpgui repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
repository: yuezk/gpgui
|
||||||
|
path: gpgui
|
||||||
|
|
||||||
|
- name: Download artifact-${{ matrix.arch }}
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
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: |
|
||||||
|
./gpgui/scripts/generate-pkgbuild.sh
|
||||||
|
|
||||||
|
- name: Build PKGBUILD package
|
||||||
|
run: |
|
||||||
|
# Generate PKGBUILD to .tmp/pkgbuild
|
||||||
|
./gpgui/scripts/generate-pkgbuild.sh
|
||||||
|
|
||||||
|
# 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@v4
|
||||||
|
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@v4
|
||||||
|
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: |
|
||||||
|
checksums.txt
|
||||||
|
artifact/*
|
Loading…
Reference in New Issue
Block a user