mirror of
				https://github.com/yuezk/GlobalProtect-openconnect.git
				synced 2025-05-20 07:26:58 -04:00 
			
		
		
		
	ci: upload offline tarball
This commit is contained in:
		
							
								
								
									
										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-*/*
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user