ci: upload offline tarball

This commit is contained in:
Kevin Yue 2025-01-22 21:54:16 +08:00
parent 2f90b73683
commit 69ef7f5cce
No known key found for this signature in database
GPG Key ID: 4D3A6EE977B15AC4
4 changed files with 71 additions and 25 deletions

View File

@ -68,6 +68,47 @@ jobs:
path: | path: |
source/gp/.build/tarball/*.tar.gz source/gp/.build/tarball/*.tar.gz
tarball-offline:
if: ${{ github.ref == 'refs/heads/dev' || startsWith(github.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
needs:
- tarball
steps:
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Prepare workspace
run: rm -rf source-offline && mkdir source-offline
- name: Download tarball
uses: actions/download-artifact@v4
with:
name: artifact-source
path: source-offline
- name: Create offline tarball
run: |
cd source-offline
offline_tarball=$(basename *.tar.gz .tar.gz).offline.tar.gz
# Extract the tarball
tar -xzf *.tar.gz
cd */
make tarball OFFLINE=1
# Rename the tarball to .offline.tar.gz
mv -v .build/tarball/*.tar.gz ../$offline_tarball
- name: Upload offline tarball
uses: actions/upload-artifact@v4
with:
path: source-offline/*.offline.tar.gz
name: artifact-source-offline
if-no-files-found: error
build-gp: build-gp:
needs: needs:
- setup-matrix - setup-matrix
@ -168,6 +209,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: needs:
- tarball - tarball
- tarball-offline
- build-gp - build-gp
- build-gpgui - build-gpgui

View File

@ -52,22 +52,26 @@ jobs:
version: 9 version: 9
- name: Prepare workspace - name: Prepare workspace
run: rm -rf publish-ppa && mkdir publish-ppa run: rm -rf publish-ppa && mkdir publish-ppa
- name: Download ${{ inputs.tag }} source code - name: Download ${{ inputs.tag }} offline source code
uses: robinraju/release-downloader@v1.9 env:
with: GH_TOKEN: ${{ secrets.GH_PAT }}
token: ${{ secrets.GH_PAT }} run: |
tag: ${{ inputs.tag }} gh -R yuezk/GlobalProtect-openconnect \
fileName: globalprotect-openconnect-*.tar.gz release download ${{ inputs.tag }} \
tarBall: false --pattern '*.offline.tar.gz' \
zipBall: false --dir publish-ppa
out-file-path: publish-ppa - name: Patch the source code
- name: Make the offline tarball
run: | run: |
cd publish-ppa cd publish-ppa
tar -xf globalprotect-openconnect-*.tar.gz
cd globalprotect-openconnect-*/
make tarball OFFLINE=1 # Rename the source tarball without the offline suffix
mv -v *.tar.gz $(basename *.tar.gz .offline.tar.gz).tar.gz
# Extract the source tarball
tar -xzf *.tar.gz
# Prepare the debian directory with custom files
cd globalprotect-openconnect-*/
# Prepare the debian directory with custom files # Prepare the debian directory with custom files
mkdir -p .build/debian mkdir -p .build/debian
@ -78,7 +82,6 @@ jobs:
cp -v packaging/deb/postrm .build/debian/postrm cp -v packaging/deb/postrm .build/debian/postrm
sed -i "s/@RUST@/cargo-1.80/g" .build/debian/control sed -i "s/@RUST@/cargo-1.80/g" .build/debian/control
sed -i "s/@OFFLINE@/1/g" .build/debian/rules sed -i "s/@OFFLINE@/1/g" .build/debian/rules
sed -i "s/@BUILD_GUI@/1/g" .build/debian/rules sed -i "s/@BUILD_GUI@/1/g" .build/debian/rules
sed -i "s/@RUST_VERSION@/1.80/g" .build/debian/rules sed -i "s/@RUST_VERSION@/1.80/g" .build/debian/rules
@ -89,7 +92,7 @@ jobs:
repository: "yuezk/globalprotect-openconnect" repository: "yuezk/globalprotect-openconnect"
gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }} gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }}
gpg_passphrase: ${{ secrets.PPA_GPG_PASSPHRASE }} gpg_passphrase: ${{ secrets.PPA_GPG_PASSPHRASE }}
tarball: publish-ppa/globalprotect-openconnect-*/.build/tarball/*.tar.gz tarball: publish-ppa/globalprotect-openconnect-*.tar.gz
debian_dir: publish-ppa/globalprotect-openconnect-*/.build/debian debian_dir: publish-ppa/globalprotect-openconnect-*/.build/debian
deb_email: "k3vinyue@gmail.com" deb_email: "k3vinyue@gmail.com"
deb_fullname: "Kevin Yue" deb_fullname: "Kevin Yue"

View File

@ -96,15 +96,16 @@ jobs:
steps: steps:
- name: Prepare workspace - name: Prepare workspace
run: rm -rf build-${{ matrix.package }} && mkdir -p build-${{ matrix.package }} run: rm -rf build-${{ matrix.package }} && mkdir -p build-${{ matrix.package }}
- name: Download ${{ inputs.tag }} source code - name: Download ${{ inputs.tag }} source code
uses: robinraju/release-downloader@v1.9 env:
with: GH_TOKEN: ${{ secrets.GH_PAT }}
token: ${{ secrets.GH_PAT }} run: |
tag: ${{ inputs.tag }} gh -R yuezk/GlobalProtect-openconnect \
fileName: globalprotect-openconnect-*.tar.gz release download ${{ inputs.tag }} \
tarBall: false --pattern '*[^offline].tar.gz' \
zipBall: false --dir build-${{ matrix.package }}
out-file-path: build-${{ matrix.package }}
- name: Docker Login - name: Docker Login
run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
- name: Build ${{ matrix.package }} package in Docker - name: Build ${{ matrix.package }} package in Docker

View File

@ -28,7 +28,7 @@ release_snapshot() {
echo "Uploading new assets..." echo "Uploading new assets..."
gh -R "$REPO" release upload "$TAG" \ gh -R "$REPO" release upload "$TAG" \
"$PROJECT_DIR"/.build/artifacts/artifact-source/* \ "$PROJECT_DIR"/.build/artifacts/artifact-source*/* \
"$PROJECT_DIR"/.build/artifacts/artifact-gpgui-*/* "$PROJECT_DIR"/.build/artifacts/artifact-gpgui-*/*
} }
@ -40,7 +40,7 @@ release_tag() {
gh -R "$REPO" release create $TAG \ gh -R "$REPO" release create $TAG \
--title "$TAG" \ --title "$TAG" \
--notes "$RELEASE_NOTES" \ --notes "$RELEASE_NOTES" \
"$PROJECT_DIR"/.build/artifacts/artifact-source/* \ "$PROJECT_DIR"/.build/artifacts/artifact-source*/* \
"$PROJECT_DIR"/.build/artifacts/artifact-gpgui-*/* "$PROJECT_DIR"/.build/artifacts/artifact-gpgui-*/*
} }