Files
i2pd/.github/workflows/release.yml
T

103 lines
3.0 KiB
YAML

name: Release
on:
push:
tags:
- '*'
jobs:
windows:
uses: ./.github/workflows/build-windows.yml
macos:
uses: ./.github/workflows/build-macos.yml
linux:
uses: ./.github/workflows/build-static.yml
debian:
uses: ./.github/workflows/build-deb.yml
freebsd:
uses: ./.github/workflows/build-freebsd.yml
installer:
name: Windows installer
needs: windows
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download binaries
uses: actions/download-artifact@v4
with:
pattern: i2pd-*.exe
path: artifacts
- name: Build installer
shell: pwsh
run: |
choco install innosetup -y --no-progress
Copy-Item artifacts/i2pd-x86.exe/i2pd.exe i2pd_x32.exe
Copy-Item artifacts/i2pd-x64.exe/i2pd.exe i2pd_x64.exe
Copy-Item artifacts/i2pd-xp.exe/i2pd.exe i2pd_xp.exe
& "${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe" "/dI2Pd_TextVer=$env:GITHUB_REF_NAME" "/dI2Pd_Ver=$env:GITHUB_REF_NAME.0" build\win_installer.iss
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: i2pd-installer
path: build/setup_i2pd_v*.exe
release:
name: Draft release
needs: [windows, macos, linux, debian, freebsd, installer]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Prepare release files
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq dos2unix
TAG=$GITHUB_REF_NAME
mkdir release
echo "To use configs and certificates, move all files and certificates folder from contrib directory here." > README.txt
unix2dos -q contrib/i2pd.conf contrib/tunnels.conf contrib/tunnels.d/* contrib/webconsole/style.css
for build in x64:win64 x86:win32 xp:winxp arm64:winarm64; do
cp artifacts/i2pd-${build%%:*}.exe/i2pd.exe i2pd.exe
zip -qr9 release/i2pd_${TAG}_${build#*:}_mingw.zip i2pd.exe README.txt \
contrib/i2pd.conf contrib/tunnels.conf contrib/certificates contrib/tunnels.d contrib/webconsole
done
chmod +x artifacts/i2pd-macos-universal/i2pd
tar -czf release/i2pd_${TAG}_osx.tar.gz -C artifacts/i2pd-macos-universal i2pd
for dir in artifacts/i2pd-freebsd-*; do
chmod +x $dir/i2pd
rel=${dir##*-}
tar -czf release/i2pd_${TAG}_freebsd${rel%%.*}_amd64.tar.gz -C $dir i2pd
done
cp artifacts/i2pd-installer/setup_i2pd_v*.exe release/
cp artifacts/i2pd-linux-all/* release/
cp artifacts/i2pd_trixie_*/i2pd_*.deb release/
cd release
sha512sum -b * > SHA512SUMS
ls -l
- name: Create draft release
uses: softprops/action-gh-release@v2
with:
draft: true
files: release/*
fail_on_unmatched_files: true