Skip to content

release

release #3

Workflow file for this run

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 }}