mirror of
https://github.com/yuezk/GlobalProtect-openconnect.git
synced 2025-04-02 18:31:50 -04:00
ci: upload offline tarball
This commit is contained in:
parent
2f90b73683
commit
fe3d3df662
63
.github/workflows/build.yaml
vendored
63
.github/workflows/build.yaml
vendored
@ -44,7 +44,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
version: 9
|
version: 9
|
||||||
- name: Prepare workspace
|
- name: Prepare workspace
|
||||||
run: rm -rf source && mkdir source
|
run: rm -rf source && mkdir -p source/artifacts
|
||||||
|
|
||||||
- name: Checkout GlobalProtect-openconnect
|
- name: Checkout GlobalProtect-openconnect
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@ -52,6 +53,7 @@ jobs:
|
|||||||
repository: yuezk/GlobalProtect-openconnect
|
repository: yuezk/GlobalProtect-openconnect
|
||||||
ref: ${{ github.ref }}
|
ref: ${{ github.ref }}
|
||||||
path: source/gp
|
path: source/gp
|
||||||
|
|
||||||
- name: Create tarball
|
- name: Create tarball
|
||||||
run: |
|
run: |
|
||||||
cd source/gp
|
cd source/gp
|
||||||
@ -60,13 +62,69 @@ jobs:
|
|||||||
touch SNAPSHOT
|
touch SNAPSHOT
|
||||||
fi
|
fi
|
||||||
make tarball
|
make tarball
|
||||||
|
|
||||||
|
mv -v .build/tarball/*.tar.gz ../artifacts/
|
||||||
|
|
||||||
|
- name: Generate RPM spec file
|
||||||
|
env:
|
||||||
|
RELEASE_TAG: ${{ github.ref == 'refs/heads/dev' && 'snapshot' || github.ref_name }}
|
||||||
|
run: |
|
||||||
|
cd source/gp
|
||||||
|
|
||||||
|
make init-rpm \
|
||||||
|
REVISION='1%{?dist}' \
|
||||||
|
RPM_SOURCE=https://github.com/yuezk/GlobalProtect-openconnect/releases/download/${RELEASE_TAG}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
mv -v .build/rpm/*.spec ../artifacts/
|
||||||
|
|
||||||
- name: Upload tarball
|
- name: Upload tarball
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: artifact-source
|
name: artifact-source
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
path: |
|
path: |
|
||||||
source/gp/.build/tarball/*.tar.gz
|
source/artifacts/*
|
||||||
|
|
||||||
|
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:
|
||||||
@ -168,6 +226,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs:
|
needs:
|
||||||
- tarball
|
- tarball
|
||||||
|
- tarball-offline
|
||||||
- build-gp
|
- build-gp
|
||||||
- build-gpgui
|
- build-gpgui
|
||||||
|
|
||||||
|
33
.github/workflows/publish.yaml
vendored
33
.github/workflows/publish.yaml
vendored
@ -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"
|
||||||
|
17
.github/workflows/release.yaml
vendored
17
.github/workflows/release.yaml
vendored
@ -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
|
||||||
|
3
Makefile
3
Makefile
@ -8,6 +8,8 @@ RUST_VERSION = 1.80
|
|||||||
|
|
||||||
VERSION = $(shell $(CARGO) metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
|
VERSION = $(shell $(CARGO) metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
|
||||||
REVISION ?= 1
|
REVISION ?= 1
|
||||||
|
RPM_SOURCE ?= %{name}.tar.gz
|
||||||
|
|
||||||
PPA_REVISION ?= 1
|
PPA_REVISION ?= 1
|
||||||
PKG_NAME = globalprotect-openconnect
|
PKG_NAME = globalprotect-openconnect
|
||||||
PKG = $(PKG_NAME)-$(VERSION)
|
PKG = $(PKG_NAME)-$(VERSION)
|
||||||
@ -234,6 +236,7 @@ init-rpm: clean-rpm
|
|||||||
|
|
||||||
sed -i "s/@VERSION@/$(VERSION)/g" .build/rpm/globalprotect-openconnect.spec
|
sed -i "s/@VERSION@/$(VERSION)/g" .build/rpm/globalprotect-openconnect.spec
|
||||||
sed -i "s/@REVISION@/$(REVISION)/g" .build/rpm/globalprotect-openconnect.spec
|
sed -i "s/@REVISION@/$(REVISION)/g" .build/rpm/globalprotect-openconnect.spec
|
||||||
|
sed -i "s|@SOURCE@|$(RPM_SOURCE)|g" .build/rpm/globalprotect-openconnect.spec
|
||||||
sed -i "s/@OFFLINE@/$(OFFLINE)/g" .build/rpm/globalprotect-openconnect.spec
|
sed -i "s/@OFFLINE@/$(OFFLINE)/g" .build/rpm/globalprotect-openconnect.spec
|
||||||
sed -i "s/@DATE@/$(shell LC_ALL=en.US date "+%a %b %d %Y")/g" .build/rpm/globalprotect-openconnect.spec
|
sed -i "s/@DATE@/$(shell LC_ALL=en.US date "+%a %b %d %Y")/g" .build/rpm/globalprotect-openconnect.spec
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Group: Productivity/Networking/PPP
|
|||||||
|
|
||||||
License: GPL-3.0
|
License: GPL-3.0
|
||||||
URL: https://github.com/yuezk/GlobalProtect-openconnect
|
URL: https://github.com/yuezk/GlobalProtect-openconnect
|
||||||
Source: %{name}.tar.gz
|
Source: @SOURCE@
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: rust
|
BuildRequires: rust
|
||||||
|
@ -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-*/*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user