release #8
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: | |
workflow_dispatch: | |
inputs: | |
release: # e.g. ' v1.2.4' | |
description: Paseo release tag | |
required: true | |
rust: # e.g. '1.77.0' | |
description: Rust version | |
required: true | |
title: # e.g. 'Paseo Release 1.2.4' | |
description: Release title | |
required: true | |
jobs: | |
build: | |
runs-on: ${{ matrix.platform.os }} | |
permissions: | |
contents: write | |
strategy: | |
matrix: | |
platform: | |
# Linux | |
- os: ubuntu-22.04 | |
target: aarch64-unknown-linux-gnu | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
# macOS | |
- os: macos-14 | |
target: aarch64-apple-darwin | |
- os: macos-14 | |
target: x86_64-apple-darwin | |
env: | |
RUSTFLAGS: "${{ matrix.platform.cpu != '' && format('-C target-cpu={0}', matrix.platform.cpu) || '' }} ${{ matrix.platform.target == 'aarch64-unknown-linux-gnu' && '-C linker=aarch64-linux-gnu-gcc' || '' }}" | |
path: "target/${{ matrix.platform.target }}/production" | |
archive: "chain-spec-generator-${{ matrix.platform.target }}${{ matrix.platform.cpu != '' && format('-{0}', matrix.platform.cpu) || '' }}.tar.gz" | |
sha: ${{ contains(matrix.platform.target, 'apple') && 'shasum -a 256' || 'sha256sum' }} | |
steps: | |
- name: Free up space | |
shell: bash | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
# Clone and checkout release | |
- id: clone | |
name: Clone release | |
run: | | |
git clone --branch ${{ github.event.inputs.release }} --depth 1 https://github.com/paseo-network/runtimes | |
cd runtimes | |
echo "rev=$(git rev-parse --short HEAD | tr -d '\n')" >> "$GITHUB_OUTPUT" | |
# Install packages | |
- name: Install packages (Linux) | |
if: contains(matrix.platform.target, 'linux') | |
run: sudo apt-get install -y protobuf-compiler ${{ contains(matrix.platform.target, 'aarch64') && 'crossbuild-essential-arm64' || '' }} | |
- name: Install packages (macOS) | |
if: contains(matrix.platform.target, 'apple') | |
run: brew install protobuf | |
# Configure Rust toolchain | |
- name: Set Rust version | |
run: | | |
rustup default ${{ github.event.inputs.rust }} | |
rustup component add rust-src | |
rustup target add ${{ matrix.platform.target }} wasm32-unknown-unknown | |
# Build and package | |
- name: Build chain-spec-generator | |
working-directory: runtimes | |
run: cargo b --profile=production -p chain-spec-generator -F fast-runtime --target ${{ matrix.platform.target }} | |
- name: Package chain-spec-generator | |
working-directory: runtimes/${{ env.path }} | |
run: | | |
${{ env.sha }} chain-spec-generator > chain-spec-generator.sha256 | |
tar -czf ${{ env.archive }} chain-spec-generator chain-spec-generator.sha256 | |
# Add package to workflow | |
- name: Upload archives | |
uses: actions/upload-artifact@v3 | |
with: | |
name: binaries | |
path: | | |
runtimes/${{ env.path }}/${{ env.archive }} | |
# Add package to release | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: ${{ github.event.inputs.title }} | |
tag_name: ${{ github.event.inputs.release }} | |
body: "Release generated from release tag `${{ github.event.inputs.release }}` (commit: `${{ steps.clone.outputs.rev }}`) and using Rust `${{ github.event.inputs.rust }}`.\n\nPlease see https://github.com/paseo-network/runtimes/releases/tag/${{ github.event.inputs.release }} for release notes." | |
files: | | |
runtimes/${{ env.path }}/${{ env.archive }} |