Skip to content

Build Linux arm64 Github Release Artifacts #3

Build Linux arm64 Github Release Artifacts

Build Linux arm64 Github Release Artifacts #3

name: "Build Linux arm64 Github Release Artifacts"
on:
workflow_dispatch:
inputs:
release_branch:
description: "Git branch to checkout."
required: true
default: "master"
type: string
version_tag:
description: "Version to tag release artifacts."
required: true
type: string
workflow_call:
inputs:
release_branch:
description: "Git branch to checkout."
required: true
type: string
version_tag:
description: "Version to tag release artifacts."
required: true
type: string
jobs:
build:
runs-on: ubuntu-22.04-16cpu-arm64
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ inputs.release_branch }}
# We need to fetch git tags to obtain the latest version tag to report
# the version of the running binary.
fetch-depth: 0
# GitHub's arm64 runners do not have the same pre-installed software as
# the amd64 runners so we have to install a few things here.
- name: Install bazelisk
run: |
curl -L --output /tmp/bazelisk https://github.com/bazelbuild/bazelisk/releases/download/v1.17.0/bazelisk-linux-arm64
chmod +x /tmp/bazelisk
sudo mv /tmp/bazelisk /usr/bin/bazelisk
- name: Install GitHub CLI
run: |
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
- name: Build and Upload Artifacts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
bazelisk build --config=release --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_ORG_API_KEY }} //server/cmd/buildbuddy:buildbuddy //enterprise/server/cmd/server:buildbuddy //enterprise/server/cmd/executor:executor
cp bazel-bin/server/cmd/**/**/buildbuddy buildbuddy-linux-arm64
cp bazel-bin/enterprise/server/cmd/**/**/buildbuddy buildbuddy-enterprise-linux-arm64
cp bazel-bin/enterprise/server/cmd/**/**/executor executor-enterprise-linux-arm64
gh release upload ${{ inputs.version_tag }} buildbuddy-linux-arm64 buildbuddy-enterprise-linux-arm64 executor-enterprise-linux-arm64 --clobber