Separate Shared Components #54
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
# Copyright (C) 2023, Ava Labs, Inc. All rights reserved. | |
# See the file LICENSE for licensing terms. | |
name: BaseVM Release | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
pull_request: | |
types: [labeled,synchronize,reopened] | |
jobs: | |
basevm-release: | |
# We build with 20.04 to maintain max compatibility: https://github.com/golang/go/issues/57328 | |
runs-on: ubuntu-20.04-32 | |
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run release') }} | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.20" | |
check-latest: true | |
cache: true | |
cache-dependency-path: | | |
go.sum | |
examples/basevm/go.sum | |
- name: Set up arm64 cross compiler | |
run: | | |
sudo apt-get -y update | |
sudo apt-get -y install gcc-aarch64-linux-gnu | |
- name: Checkout osxcross | |
uses: actions/checkout@v2 | |
with: | |
repository: tpoechtrager/osxcross | |
path: osxcross | |
- name: Build osxcross | |
run: | | |
sudo apt-get -y install clang llvm-dev libxml2-dev uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio libbz2-dev | |
cd osxcross | |
wget https://github.com/joseluisq/macosx-sdks/releases/download/12.3/$MACOS_SDK_FNAME -O tarballs/$MACOS_SDK_FNAME | |
echo $MACOS_SDK_CHECKSUM tarballs/$MACOS_SDK_FNAME | sha256sum -c - | |
UNATTENDED=1 ./build.sh | |
echo $PWD/target/bin >> $GITHUB_PATH | |
env: | |
MACOS_SDK_FNAME: MacOSX12.3.sdk.tar.xz | |
MACOS_SDK_CHECKSUM: 3abd261ceb483c44295a6623fdffe5d44fc4ac2c872526576ec5ab5ad0f6e26c | |
- name: Run GoReleaser | |
uses: goreleaser/goreleaser-action@v2 | |
with: | |
distribution: goreleaser | |
version: latest | |
args: release | |
workdir: ./examples/basevm/ | |
env: | |
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Archive Builds | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: ./examples/basevm/dist | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true |