refactor: remove OverlayServiceError from UtpController #22
Workflow file for this run
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
# This workflow is borrowed from Lighthouse: https://github.com/sigp/lighthouse/blob/693886b94176faa4cb450f024696cb69cda2fe58/.github/workflows/release.yml | |
name: release | |
on: | |
push: | |
tags: | |
- v* | |
env: | |
REPO_NAME: ${{ github.repository_owner }}/trin | |
IMAGE_NAME: ${{ github.repository_owner }}/trin | |
CARGO_TERM_COLOR: always | |
jobs: | |
extract-version: | |
name: extract version | |
runs-on: ubuntu-latest | |
steps: | |
- name: Extract version | |
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT | |
id: extract_version | |
outputs: | |
VERSION: ${{ steps.extract_version.outputs.VERSION }} | |
build: | |
name: build release | |
strategy: | |
matrix: | |
arch: | |
[ | |
aarch64-unknown-linux-gnu, | |
x86_64-unknown-linux-gnu, | |
x86_64-apple-darwin, | |
aarch64-apple-darwin, | |
x86_64-pc-windows-gnu, | |
] | |
include: | |
- arch: aarch64-unknown-linux-gnu | |
platform: ubuntu-20.04 | |
profile: release | |
- arch: x86_64-unknown-linux-gnu | |
platform: ubuntu-20.04 | |
profile: release | |
- arch: x86_64-apple-darwin | |
platform: macos-latest | |
profile: release | |
- arch: aarch64-apple-darwin | |
platform: macos-latest | |
profile: release | |
- arch: x86_64-pc-windows-gnu | |
platform: ubuntu-20.04 | |
profile: release | |
runs-on: ${{ matrix.platform }} | |
needs: extract-version | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v3 | |
- name: Get latest version of stable Rust | |
run: rustup update stable | |
- name: Install target | |
run: rustup target add ${{ matrix.arch }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
# ============================== | |
# Apple M1 SDK setup | |
# ============================== | |
- name: Apple M1 setup | |
if: ${{ matrix.job.target == 'aarch64-apple-darwin' }} | |
run: | | |
echo "SDKROOT=$(xcrun -sdk macosx --show-sdk-path)" >> $GITHUB_ENV | |
echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx --show-sdk-platform-version)" >> $GITHUB_ENV | |
# ============================== | |
# Builds | |
# ============================== | |
- name: Build trin for ${{ matrix.arch }} | |
run: | | |
cargo install cross --git https://github.com/cross-rs/cross | |
env PROFILE=${{ matrix.profile }} make build-${{ matrix.arch }} | |
- name: Move cross-compiled binary | |
if: matrix.arch != 'x86_64-pc-windows-gnu' | |
run: | | |
mkdir artifacts | |
mv target/${{ matrix.arch }}/${{ matrix.profile }}/trin ./artifacts | |
- name: Move cross-compiled binary (Windows) | |
if: matrix.arch == 'x86_64-pc-windows-gnu' | |
run: | | |
mkdir artifacts | |
mv target/${{ matrix.arch }}/${{ matrix.profile }}/trin.exe ./artifacts | |
# ============================== | |
# Signing | |
# ============================== | |
- name: Configure GPG and create artifacts | |
env: | |
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
run: | | |
export GPG_TTY=$(tty) | |
echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --batch --import | |
cd artifacts | |
tar -czf trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz trin* | |
echo "$GPG_PASSPHRASE" | gpg --passphrase-fd 0 --pinentry-mode loopback --batch -ab trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz | |
mv *tar.gz* .. | |
shell: bash | |
# ======================================================================= | |
# Upload artifacts | |
# This is required to share artifacts between different jobs | |
# ======================================================================= | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz | |
path: trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz | |
- name: Upload signature | |
uses: actions/upload-artifact@v3 | |
with: | |
name: trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz.asc | |
path: trin-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.arch }}.tar.gz.asc | |
draft-release: | |
name: draft release | |
needs: [build, extract-version] | |
runs-on: ubuntu-latest | |
env: | |
VERSION: ${{ needs.extract-version.outputs.VERSION }} | |
permissions: | |
# Required to post the release | |
contents: write | |
steps: | |
# This is necessary for generating the changelog. It has to come before "Download Artifacts" or else it deletes the artifacts. | |
- name: Checkout sources | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# ============================== | |
# Download artifacts | |
# ============================== | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
# ============================== | |
# Create release draft | |
# ============================== | |
- name: Generate full changelog | |
id: changelog | |
run: | | |
echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT | |
echo "$(git log --pretty=format:"- %s" $(git describe --tags --abbrev=0 ${{ env.VERSION }}^)..${{ env.VERSION }})" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
- name: Create release draft | |
env: | |
GITHUB_USER: ${{ github.repository_owner }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# The formatting here is borrowed from Lighthouse (which is borrowed from OpenEthereum): | |
# https://github.com/openethereum/openethereum/blob/main/.github/workflows/build.yml | |
run: | | |
body=$(cat <<- "ENDBODY" | |
## Testing Checklist (DELETE ME) | |
- [ ] Ensure all CI checks pass. | |
## Release Checklist (DELETE ME) | |
- [ ] Write the summary. | |
- [ ] Ensure all binaries have been added. | |
## Summary | |
Add a summary, including: | |
- Critical bug fixes | |
- New features | |
- Any breaking changes (and what to expect) | |
## All Changes | |
${{ steps.changelog.outputs.CHANGELOG }} | |
## Binaries | |
The binaries are signed with the PGP key: `4003 D3C2 C88C 3FF8 A8C5 ABE8 91E6 F404 B740 8EEF` | |
| System | Architecture | Binary | PGP Signature | | |
|:---:|:---:|:---:|:---| | |
| <img src="https://simpleicons.org/icons/linux.svg" style="width: 32px;"/> | x86_64 | [trin-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz.asc) | | |
| <img src="https://simpleicons.org/icons/linux.svg" style="width: 32px;"/> | aarch64 | [trin-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) | | |
| <img src="https://simpleicons.org/icons/windows.svg" style="width: 32px;"/> | x86_64 | [trin-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz.asc) | | |
| <img src="https://simpleicons.org/icons/apple.svg" style="width: 32px;"/> | x86_64 | [trin-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz.asc) | | |
| <img src="https://simpleicons.org/icons/apple.svg" style="width: 32px;"/> | aarch64 | [trin-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/trin-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz.asc) | | |
| | | | | | |
| **System** | **Option** | - | **Resource** | | |
| <img src="https://simpleicons.org/icons/docker.svg" style="width: 32px;"/> | Docker | [${{ env.VERSION }}](https://github.com/ethereum/trin/pkgs/container/trin/102974600?tag=${{ env.VERSION }}) | [${{ env.IMAGE_NAME }}](https://github.com/ethereum/trin/pkgs/container/trin) | | |
ENDBODY | |
) | |
assets=() | |
for asset in ./trin-*.tar.gz*; do | |
assets+=("$asset/$asset") | |
done | |
tag_name="${{ env.VERSION }}" | |
echo "$body" | gh release create --draft -t "Trin $tag_name" -F "-" "$tag_name" "${assets[@]}" |