set version to 2.6.4 #48
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
push: | |
tags: 'v*' | |
permissions: | |
id-token: write | |
contents: write | |
env: | |
GO_VERSION: 1.22.9 | |
jobs: | |
prepare-sources-with-deps: | |
name: Prepare sources with deps | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Get SFTPGo version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
- name: Prepare release | |
run: | | |
go mod vendor | |
echo "${SFTPGO_VERSION}" > VERSION.txt | |
echo "${GITHUB_SHA::8}" >> VERSION.txt | |
tar cJvf sftpgo_${SFTPGO_VERSION}_src_with_deps.tar.xz * | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_src_with_deps.tar.xz | |
path: ./sftpgo_${{ steps.get_version.outputs.VERSION }}_src_with_deps.tar.xz | |
retention-days: 1 | |
prepare-windows: | |
name: Prepare Windows binaries | |
environment: signing | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Azure login | |
uses: azure/login@v2 | |
with: | |
client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
- name: Get SFTPGo version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Build | |
run: | | |
$GIT_COMMIT = (git describe --always --abbrev=8 --dirty) | Out-String | |
$DATE_TIME = ([datetime]::Now.ToUniversalTime().toString("yyyy-MM-ddTHH:mm:ssZ")) | Out-String | |
$FILE_VERSION = $Env:SFTPGO_VERSION.substring(1) + ".0" | |
go install github.com/tc-hib/go-winres@latest | |
go-winres simply --arch amd64 --product-version $Env:SFTPGO_VERSION-$GIT_COMMIT --file-version $FILE_VERSION --file-description "SFTPGo server" --product-name SFTPGo --copyright "AGPL-3.0 with additional terms" --original-filename sftpgo.exe --icon .\windows-installer\icon.ico | |
go build -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=$GIT_COMMIT -X github.com/drakkan/sftpgo/v2/internal/version.date=$DATE_TIME" -o sftpgo.exe | |
mkdir arm64 | |
$Env:CGO_ENABLED='0' | |
$Env:GOOS='windows' | |
$Env:GOARCH='arm64' | |
go-winres simply --arch arm64 --product-version $Env:SFTPGO_VERSION-$GIT_COMMIT --file-version $FILE_VERSION --file-description "SFTPGo server" --product-name SFTPGo --copyright "AGPL-3.0 with additional terms" --original-filename sftpgo.exe --icon .\windows-installer\icon.ico | |
go build -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules,nosqlite -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=$GIT_COMMIT -X github.com/drakkan/sftpgo/v2/internal/version.date=$DATE_TIME" -o .\arm64\sftpgo.exe | |
mkdir x86 | |
$Env:GOARCH='386' | |
go-winres simply --arch 386 --product-version $Env:SFTPGO_VERSION-$GIT_COMMIT --file-version $FILE_VERSION --file-description "SFTPGo server" --product-name SFTPGo --copyright "AGPL-3.0 with additional terms" --original-filename sftpgo.exe --icon .\windows-installer\icon.ico | |
go build -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules,nosqlite -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=$GIT_COMMIT -X github.com/drakkan/sftpgo/v2/internal/version.date=$DATE_TIME" -o .\x86\sftpgo.exe | |
Remove-Item Env:\CGO_ENABLED | |
Remove-Item Env:\GOOS | |
Remove-Item Env:\GOARCH | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
- name: Sign binaries | |
uses: azure/trusted-signing-action@v0.5.0 | |
with: | |
endpoint: https://eus.codesigning.azure.net/ | |
trusted-signing-account-name: nicola | |
certificate-profile-name: SFTPGo | |
files: | | |
${{ github.workspace }}\sftpgo.exe | |
${{ github.workspace }}\arm64\sftpgo.exe | |
${{ github.workspace }}\x86\sftpgo.exe | |
file-digest: SHA256 | |
timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
timestamp-digest: SHA256 | |
exclude-environment-credential: true | |
exclude-workload-identity-credential: true | |
exclude-managed-identity-credential: true | |
exclude-shared-token-cache-credential: true | |
exclude-visual-studio-credential: true | |
exclude-visual-studio-code-credential: true | |
exclude-azure-cli-credential: false | |
exclude-azure-powershell-credential: true | |
exclude-azure-developer-cli-credential: true | |
exclude-interactive-browser-credential: true | |
- name: Initialize data provider | |
run: ./sftpgo initprovider | |
shell: bash | |
- name: Prepare Release | |
run: | | |
mkdir output | |
copy .\sftpgo.exe .\output | |
copy .\sftpgo.json .\output | |
copy .\sftpgo.db .\output | |
copy .\LICENSE .\output\LICENSE.txt | |
copy .\NOTICE .\output\NOTICE.txt | |
mkdir output\templates | |
xcopy .\templates .\output\templates\ /E | |
mkdir output\static | |
xcopy .\static .\output\static\ /E | |
mkdir output\openapi | |
xcopy .\openapi .\output\openapi\ /E | |
iscc .\windows-installer\sftpgo.iss | |
rm .\output\sftpgo.exe | |
rm .\output\sftpgo.db | |
copy .\arm64\sftpgo.exe .\output | |
(Get-Content .\output\sftpgo.json).replace('"sqlite"', '"bolt"') | Set-Content .\output\sftpgo.json | |
$Env:SFTPGO_DATA_PROVIDER__DRIVER='bolt' | |
$Env:SFTPGO_DATA_PROVIDER__NAME='.\output\sftpgo.db' | |
.\sftpgo.exe initprovider | |
Remove-Item Env:\SFTPGO_DATA_PROVIDER__DRIVER | |
Remove-Item Env:\SFTPGO_DATA_PROVIDER__NAME | |
$Env:SFTPGO_ISS_ARCH='arm64' | |
iscc .\windows-installer\sftpgo.iss | |
rm .\output\sftpgo.exe | |
copy .\x86\sftpgo.exe .\output | |
$Env:SFTPGO_ISS_ARCH='x86' | |
iscc .\windows-installer\sftpgo.iss | |
env: | |
SFTPGO_ISS_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
- name: Sign installers | |
uses: azure/trusted-signing-action@v0.5.0 | |
with: | |
endpoint: https://eus.codesigning.azure.net/ | |
trusted-signing-account-name: nicola | |
certificate-profile-name: SFTPGo | |
files: | | |
${{ github.workspace }}\sftpgo_windows_x86_64.exe | |
${{ github.workspace }}\sftpgo_windows_arm64.exe | |
${{ github.workspace }}\sftpgo_windows_x86.exe | |
file-digest: SHA256 | |
timestamp-rfc3161: http://timestamp.acs.microsoft.com | |
timestamp-digest: SHA256 | |
exclude-environment-credential: true | |
exclude-workload-identity-credential: true | |
exclude-managed-identity-credential: true | |
exclude-shared-token-cache-credential: true | |
exclude-visual-studio-credential: true | |
exclude-visual-studio-code-credential: true | |
exclude-azure-cli-credential: false | |
exclude-azure-powershell-credential: true | |
exclude-azure-developer-cli-credential: true | |
exclude-interactive-browser-credential: true | |
- name: Prepare Portable Release | |
run: | | |
mkdir win-portable | |
copy .\sftpgo.exe .\win-portable | |
mkdir win-portable\arm64 | |
copy .\arm64\sftpgo.exe .\win-portable\arm64 | |
mkdir win-portable\x86 | |
copy .\x86\sftpgo.exe .\win-portable\x86 | |
copy .\sftpgo.json .\win-portable | |
(Get-Content .\win-portable\sftpgo.json).replace('"sqlite"', '"bolt"') | Set-Content .\win-portable\sftpgo.json | |
copy .\output\sftpgo.db .\win-portable | |
copy .\LICENSE .\win-portable\LICENSE.txt | |
copy .\NOTICE .\win-portable\NOTICE.txt | |
mkdir win-portable\templates | |
xcopy .\templates .\win-portable\templates\ /E | |
mkdir win-portable\static | |
xcopy .\static .\win-portable\static\ /E | |
mkdir win-portable\openapi | |
xcopy .\openapi .\win-portable\openapi\ /E | |
Compress-Archive .\win-portable\* sftpgo_portable.zip | |
- name: Upload Windows installer x86_64 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_windows_x86_64.exe | |
path: ./sftpgo_windows_x86_64.exe | |
retention-days: 1 | |
- name: Upload Windows installer arm64 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_windows_arm64.exe | |
path: ./sftpgo_windows_arm64.exe | |
retention-days: 1 | |
- name: Upload Windows installer x86 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_windows_x86.exe | |
path: ./sftpgo_windows_x86.exe | |
retention-days: 1 | |
- name: Upload Windows portable artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_windows_portable.zip | |
path: ./sftpgo_portable.zip | |
retention-days: 1 | |
prepare-mac: | |
name: Prepare macOS binaries | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Get SFTPGo version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Build for macOS x86_64 | |
run: go build -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=`git describe --always --abbrev=8 --dirty` -X github.com/drakkan/sftpgo/v2/internal/version.date=`date -u +%FT%TZ`" -o sftpgo | |
- name: Build for macOS arm64 | |
run: CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 SDKROOT=$(xcrun --sdk macosx --show-sdk-path) go build -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=`git describe --always --abbrev=8 --dirty` -X github.com/drakkan/sftpgo/v2/internal/version.date=`date -u +%FT%TZ`" -o sftpgo_arm64 | |
- name: Initialize data provider | |
run: ./sftpgo initprovider | |
shell: bash | |
- name: Prepare Release | |
run: | | |
mkdir -p output/{init,sqlite,bash_completion,zsh_completion} | |
echo "For documentation please take a look here:" > output/README.txt | |
echo "" >> output/README.txt | |
echo "https://docs.sftpgo.com" >> output/README.txt | |
cp LICENSE output/ | |
cp NOTICE output/ | |
cp sftpgo output/ | |
cp sftpgo.json output/ | |
cp sftpgo.db output/sqlite/ | |
cp -r static output/ | |
cp -r openapi output/ | |
cp -r templates output/ | |
cp init/com.github.drakkan.sftpgo.plist output/init/ | |
./sftpgo gen completion bash > output/bash_completion/sftpgo | |
./sftpgo gen completion zsh > output/zsh_completion/_sftpgo | |
./sftpgo gen man -d output/man/man1 | |
gzip output/man/man1/* | |
cd output | |
tar cJvf ../sftpgo_${SFTPGO_VERSION}_macOS_x86_64.tar.xz * | |
cd .. | |
cp sftpgo_arm64 output/sftpgo | |
cd output | |
tar cJvf ../sftpgo_${SFTPGO_VERSION}_macOS_arm64.tar.xz * | |
cd .. | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
- name: Upload macOS x86_64 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_macOS_x86_64.tar.xz | |
path: ./sftpgo_${{ steps.get_version.outputs.VERSION }}_macOS_x86_64.tar.xz | |
retention-days: 1 | |
- name: Upload macOS arm64 artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.VERSION }}_macOS_arm64.tar.xz | |
path: ./sftpgo_${{ steps.get_version.outputs.VERSION }}_macOS_arm64.tar.xz | |
retention-days: 1 | |
prepare-linux: | |
name: Prepare Linux binaries | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- arch: amd64 | |
distro: ubuntu:18.04 | |
go-arch: amd64 | |
deb-arch: amd64 | |
rpm-arch: x86_64 | |
tar-arch: x86_64 | |
- arch: aarch64 | |
distro: ubuntu18.04 | |
go-arch: arm64 | |
deb-arch: arm64 | |
rpm-arch: aarch64 | |
tar-arch: arm64 | |
- arch: ppc64le | |
distro: ubuntu18.04 | |
go-arch: ppc64le | |
deb-arch: ppc64el | |
rpm-arch: ppc64le | |
tar-arch: ppc64le | |
- arch: armv7 | |
distro: ubuntu18.04 | |
go-arch: arm7 | |
deb-arch: armhf | |
rpm-arch: armv7hl | |
tar-arch: armv7 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get versions | |
id: get_version | |
run: | | |
echo "SFTPGO_VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
echo "GO_VERSION=${GO_VERSION}" >> $GITHUB_OUTPUT | |
echo "COMMIT=${GITHUB_SHA::8}" >> $GITHUB_OUTPUT | |
shell: bash | |
env: | |
GO_VERSION: ${{ env.GO_VERSION }} | |
- name: Build on amd64 | |
if: ${{ matrix.arch == 'amd64' }} | |
run: | | |
echo '#!/bin/bash' > build.sh | |
echo '' >> build.sh | |
echo 'set -e' >> build.sh | |
echo 'apt-get update -q -y' >> build.sh | |
echo 'apt-get install -q -y curl gcc' >> build.sh | |
echo 'curl --retry 5 --retry-delay 2 --connect-timeout 10 -o go.tar.gz -L https://go.dev/dl/go${{ steps.get_version.outputs.GO_VERSION }}.linux-${{ matrix.go-arch }}.tar.gz' >> build.sh | |
echo 'tar -C /usr/local -xzf go.tar.gz' >> build.sh | |
echo 'export PATH=$PATH:/usr/local/go/bin' >> build.sh | |
echo 'go version' >> build.sh | |
echo 'cd /usr/local/src' >> build.sh | |
echo 'go build -buildvcs=false -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=${{ steps.get_version.outputs.COMMIT }} -X github.com/drakkan/sftpgo/v2/internal/version.date=`date -u +%FT%TZ`" -o sftpgo' >> build.sh | |
chmod 755 build.sh | |
docker run --rm --name ubuntu-build --mount type=bind,source=`pwd`,target=/usr/local/src ${{ matrix.distro }} /usr/local/src/build.sh | |
mkdir -p output/{init,sqlite,bash_completion,zsh_completion} | |
echo "For documentation please take a look here:" > output/README.txt | |
echo "" >> output/README.txt | |
echo "https://github.com/drakkan/sftpgo/blob/${SFTPGO_VERSION}/README.md" >> output/README.txt | |
cp LICENSE output/ | |
cp NOTICE output/ | |
cp sftpgo.json output/ | |
cp -r templates output/ | |
cp -r static output/ | |
cp -r openapi output/ | |
cp init/sftpgo.service output/init/ | |
./sftpgo initprovider | |
./sftpgo gen completion bash > output/bash_completion/sftpgo | |
./sftpgo gen completion zsh > output/zsh_completion/_sftpgo | |
./sftpgo gen man -d output/man/man1 | |
gzip output/man/man1/* | |
cp sftpgo output/ | |
cp sftpgo.db output/sqlite/ | |
cd output | |
tar cJvf sftpgo_${SFTPGO_VERSION}_linux_${{ matrix.tar-arch }}.tar.xz * | |
cd .. | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.SFTPGO_VERSION }} | |
- uses: uraimo/run-on-arch-action@v2 | |
if: ${{ matrix.arch != 'amd64' }} | |
name: Build for ${{ matrix.arch }} | |
id: build | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
setup: | | |
mkdir -p "${PWD}/output" | |
dockerRunArgs: | | |
--volume "${PWD}/output:/output" | |
shell: /bin/bash | |
install: | | |
apt-get update -q -y | |
apt-get install -q -y curl gcc xz-utils | |
GO_DOWNLOAD_ARCH=${{ matrix.go-arch }} | |
if [ ${{ matrix.arch}} == 'armv7' ] | |
then | |
GO_DOWNLOAD_ARCH=armv6l | |
fi | |
curl --retry 5 --retry-delay 2 --connect-timeout 10 -o go.tar.gz -L https://go.dev/dl/go${{ steps.get_version.outputs.GO_VERSION }}.linux-${GO_DOWNLOAD_ARCH}.tar.gz | |
tar -C /usr/local -xzf go.tar.gz | |
run: | | |
export PATH=$PATH:/usr/local/go/bin | |
go version | |
go build -buildvcs=false -trimpath -tags nopgxregisterdefaulttypes,disable_grpc_modules -ldflags "-s -w -X github.com/drakkan/sftpgo/v2/internal/version.commit=${{ steps.get_version.outputs.COMMIT }} -X github.com/drakkan/sftpgo/v2/internal/version.date=`date -u +%FT%TZ`" -o sftpgo | |
mkdir -p output/{init,sqlite,bash_completion,zsh_completion} | |
echo "For documentation please take a look here:" > output/README.txt | |
echo "" >> output/README.txt | |
echo "https://github.com/drakkan/sftpgo/blob/${{ steps.get_version.outputs.SFTPGO_VERSION }}/README.md" >> output/README.txt | |
cp LICENSE output/ | |
cp NOTICE output/ | |
cp sftpgo.json output/ | |
cp -r templates output/ | |
cp -r static output/ | |
cp -r openapi output/ | |
cp init/sftpgo.service output/init/ | |
./sftpgo initprovider | |
./sftpgo gen completion bash > output/bash_completion/sftpgo | |
./sftpgo gen completion zsh > output/zsh_completion/_sftpgo | |
./sftpgo gen man -d output/man/man1 | |
gzip output/man/man1/* | |
cp sftpgo output/ | |
cp sftpgo.db output/sqlite/ | |
cd output | |
tar cJvf sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_${{ matrix.tar-arch }}.tar.xz * | |
cd .. | |
- name: Upload build artifact for ${{ matrix.arch }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_${{ matrix.tar-arch }}.tar.xz | |
path: ./output/sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_${{ matrix.tar-arch }}.tar.xz | |
retention-days: 1 | |
- name: Build Packages | |
id: build_linux_pkgs | |
run: | | |
export NFPM_ARCH=${{ matrix.go-arch }} | |
cd pkgs | |
./build.sh | |
PKG_VERSION=${SFTPGO_VERSION:1} | |
echo "pkg-version=${PKG_VERSION}" >> $GITHUB_OUTPUT | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.SFTPGO_VERSION }} | |
- name: Upload Deb Package | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.build_linux_pkgs.outputs.pkg-version }}-1_${{ matrix.deb-arch}}.deb | |
path: ./pkgs/dist/deb/sftpgo_${{ steps.build_linux_pkgs.outputs.pkg-version }}-1_${{ matrix.deb-arch}}.deb | |
retention-days: 1 | |
- name: Upload RPM Package | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo-${{ steps.build_linux_pkgs.outputs.pkg-version }}-1.${{ matrix.rpm-arch}}.rpm | |
path: ./pkgs/dist/rpm/sftpgo-${{ steps.build_linux_pkgs.outputs.pkg-version }}-1.${{ matrix.rpm-arch}}.rpm | |
retention-days: 1 | |
prepare-linux-bundle: | |
name: Prepare Linux bundle | |
needs: prepare-linux | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get versions | |
id: get_version | |
run: | | |
echo "SFTPGO_VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Download amd64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_x86_64.tar.xz | |
- name: Download arm64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_arm64.tar.xz | |
- name: Download ppc64le artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_ppc64le.tar.xz | |
- name: Download armv7 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_armv7.tar.xz | |
- name: Build bundle | |
shell: bash | |
run: | | |
mkdir -p bundle/{arm64,ppc64le,armv7} | |
cd bundle | |
tar xvf ../sftpgo_${SFTPGO_VERSION}_linux_x86_64.tar.xz | |
cd arm64 | |
tar xvf ../../sftpgo_${SFTPGO_VERSION}_linux_arm64.tar.xz sftpgo | |
cd ../ppc64le | |
tar xvf ../../sftpgo_${SFTPGO_VERSION}_linux_ppc64le.tar.xz sftpgo | |
cd ../armv7 | |
tar xvf ../../sftpgo_${SFTPGO_VERSION}_linux_armv7.tar.xz sftpgo | |
cd .. | |
tar cJvf sftpgo_${SFTPGO_VERSION}_linux_bundle.tar.xz * | |
cd .. | |
env: | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.SFTPGO_VERSION }} | |
- name: Upload Linux bundle | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_bundle.tar.xz | |
path: ./bundle/sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_bundle.tar.xz | |
retention-days: 1 | |
create-release: | |
name: Release | |
needs: [prepare-linux-bundle, prepare-sources-with-deps, prepare-mac, prepare-windows] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get versions | |
id: get_version | |
run: | | |
SFTPGO_VERSION=${GITHUB_REF/refs\/tags\//} | |
PKG_VERSION=${SFTPGO_VERSION:1} | |
echo "SFTPGO_VERSION=${SFTPGO_VERSION}" >> $GITHUB_OUTPUT | |
echo "PKG_VERSION=${PKG_VERSION}" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Download amd64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_x86_64.tar.xz | |
- name: Download arm64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_arm64.tar.xz | |
- name: Download ppc64le artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_ppc64le.tar.xz | |
- name: Download armv7 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_armv7.tar.xz | |
- name: Download Linux bundle artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_linux_bundle.tar.xz | |
- name: Download Deb amd64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.PKG_VERSION }}-1_amd64.deb | |
- name: Download Deb arm64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.PKG_VERSION }}-1_arm64.deb | |
- name: Download Deb ppc64le artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.PKG_VERSION }}-1_ppc64el.deb | |
- name: Download Deb armv7 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.PKG_VERSION }}-1_armhf.deb | |
- name: Download RPM x86_64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo-${{ steps.get_version.outputs.PKG_VERSION }}-1.x86_64.rpm | |
- name: Download RPM aarch64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo-${{ steps.get_version.outputs.PKG_VERSION }}-1.aarch64.rpm | |
- name: Download RPM ppc64le artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo-${{ steps.get_version.outputs.PKG_VERSION }}-1.ppc64le.rpm | |
- name: Download RPM armv7 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo-${{ steps.get_version.outputs.PKG_VERSION }}-1.armv7hl.rpm | |
- name: Download macOS x86_64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_macOS_x86_64.tar.xz | |
- name: Download macOS arm64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_macOS_arm64.tar.xz | |
- name: Download Windows installer x86_64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_windows_x86_64.exe | |
- name: Download Windows installer arm64 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_windows_arm64.exe | |
- name: Download Windows installer x86 artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_windows_x86.exe | |
- name: Download Windows portable artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_windows_portable.zip | |
- name: Download source with deps artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: sftpgo_${{ steps.get_version.outputs.SFTPGO_VERSION }}_src_with_deps.tar.xz | |
- name: Create release | |
run: | | |
mv sftpgo_windows_x86_64.exe sftpgo_${SFTPGO_VERSION}_windows_x86_64.exe | |
mv sftpgo_windows_arm64.exe sftpgo_${SFTPGO_VERSION}_windows_arm64.exe | |
mv sftpgo_windows_x86.exe sftpgo_${SFTPGO_VERSION}_windows_x86.exe | |
mv sftpgo_portable.zip sftpgo_${SFTPGO_VERSION}_windows_portable.zip | |
gh release create "${SFTPGO_VERSION}" -t "${SFTPGO_VERSION}" | |
gh release upload "${SFTPGO_VERSION}" sftpgo_*.xz --clobber | |
gh release upload "${SFTPGO_VERSION}" sftpgo-*.rpm --clobber | |
gh release upload "${SFTPGO_VERSION}" sftpgo_*.deb --clobber | |
gh release upload "${SFTPGO_VERSION}" sftpgo_*.exe --clobber | |
gh release upload "${SFTPGO_VERSION}" sftpgo_*.zip --clobber | |
gh release view "${SFTPGO_VERSION}" | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
SFTPGO_VERSION: ${{ steps.get_version.outputs.SFTPGO_VERSION }} |