Skip to content
This repository has been archived by the owner on Dec 18, 2024. It is now read-only.

Commit

Permalink
ci: add release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
evilrobot-01 committed Aug 9, 2024
1 parent 145d334 commit f02b048
Showing 1 changed file with 97 additions and 0 deletions.
97 changes: 97 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: release

on:
workflow_dispatch:
inputs:
release: # e.g. ' v1.2.5'
description: Paseo release tag
required: true
rust: # e.g. '1.77.0'
description: Rust version
required: true
title: # e.g. 'Paseo Release 1.2.5'
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
- name: Checkout
uses: actions/checkout@v4

- id: commit
name: Note commit
run: |
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
run: cargo b --profile=production -p chain-spec-generator -F fast-runtime --target ${{ matrix.platform.target }}
- name: Package chain-spec-generator
working-directory: ${{ 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: |
${{ 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.commit.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: |
${{ env.path }}/${{ env.archive }}

0 comments on commit f02b048

Please sign in to comment.