Files
p2pool-salvium/.gitea/workflows/release.yml
2025-12-08 23:49:09 +01:00

155 lines
4.7 KiB
YAML

name: Release
on:
workflow_dispatch:
inputs:
version:
description: 'v4.12'
required: true
type: string
jobs:
build-linux-x64:
runs-on: ubuntu-24.04
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev xz-utils
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build static binary
run: |
cd external/src/curl
cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF
make -j$(nproc)
cd ../../..
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DSTATIC_BINARY=ON -DWITH_LTO=OFF
make -j$(nproc)
strip p2pool-salvium
- name: Package
run: |
cd build
tar -czf p2pool-salvium-v${{ inputs.version }}-linux-x64.tar.gz p2pool-salvium
- uses: actions/upload-artifact@v4
with:
name: linux-x64
path: build/p2pool-salvium-v${{ inputs.version }}-linux-x64.tar.gz
build-linux-aarch64:
runs-on: ubuntu-24.04
steps:
- uses: jirutka/setup-alpine@v1
with:
arch: aarch64
branch: latest-stable
- name: Install dependencies and build
shell: alpine.sh {0}
run: |
apk add git cmake gcc g++ make linux-headers xz
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
shell: alpine.sh {0}
run: |
cd external/src/curl
cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Os -flto=auto" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF
make -j$(nproc)
cd ../../..
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DSTATIC_BINARY=ON -DWITH_LTO=OFF
make -j$(nproc)
strip p2pool-salvium
tar -czf p2pool-salvium-v${{ inputs.version }}-linux-aarch64.tar.gz p2pool-salvium
- uses: actions/upload-artifact@v4
with:
name: linux-aarch64
path: build/p2pool-salvium-v${{ inputs.version }}-linux-aarch64.tar.gz
build-linux-riscv64:
runs-on: ubuntu-24.04
steps:
- uses: jirutka/setup-alpine@v1
with:
arch: riscv64
branch: latest-stable
- name: Install dependencies
shell: alpine.sh --root {0}
run: apk add git cmake gcc g++ make linux-headers xz
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
shell: alpine.sh {0}
run: |
cd external/src/curl
cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Os" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF
make -j$(nproc)
cd ../../..
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DSTATIC_BINARY=ON -DWITH_LTO=OFF
make -j$(nproc)
strip p2pool-salvium
tar -czf p2pool-salvium-v${{ inputs.version }}-linux-riscv64.tar.gz p2pool-salvium
- uses: actions/upload-artifact@v4
with:
name: linux-riscv64
path: build/p2pool-salvium-v${{ inputs.version }}-linux-riscv64.tar.gz
create-checksums:
needs: [build-linux-x64, build-linux-aarch64, build-linux-riscv64]
runs-on: ubuntu-24.04
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
- name: Create source archive
uses: actions/checkout@v4
with:
submodules: recursive
- name: Package source
run: |
cd ..
tar --exclude='.git' -cJf p2pool-salvium_source-v${{ inputs.version }}.tar.xz p2pool-salvium
mv p2pool-salvium_source-v${{ inputs.version }}.tar.xz p2pool-salvium/
- name: Generate checksums
run: |
cd artifacts
find . -name "*.tar.gz" -o -name "*.zip" | while read file; do
sha256sum "$file" >> ../sha256sums.txt
done
cd ..
sha256sum p2pool-salvium_source-v${{ inputs.version }}.tar.xz >> sha256sums.txt
sed -i 's|./[^/]*/||g' sha256sums.txt
- name: Move all files to release directory
run: |
mkdir release
find artifacts -name "*.tar.gz" -exec mv {} release/ \;
find artifacts -name "*.zip" -exec mv {} release/ \;
mv p2pool-salvium_source-v${{ inputs.version }}.tar.xz release/
mv sha256sums.txt release/
- uses: actions/upload-artifact@v4
with:
name: release-files
path: release/