Release amd64 and arm64 versions (#25) #34
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
--- | |
name: Build Action | |
on: | |
pull_request: | |
branches: | |
- master | |
release: | |
types: | |
- published | |
push: | |
branches: | |
- master | |
env: | |
GCS_BUCKET: images.metal-pod.io | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
os: | |
- linux | |
arch: | |
- amd64 | |
- arm64 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Ensure Go Version | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.22' | |
- uses: google-github-actions/auth@v1 | |
with: | |
credentials_json: '${{ secrets.GCP_SA_KEY }}' | |
- name: Set up Cloud SDK | |
uses: google-github-actions/setup-gcloud@v0 | |
- name: Lint | |
uses: golangci/golangci-lint-action@v6 | |
with: | |
args: --build-tags integration -p bugs -p unused --timeout=3m | |
- name: Make tag | |
run: | | |
[ "${GITHUB_EVENT_NAME}" == 'pull_request' ] && echo "GITHUB_TAG_NAME=$(echo $GITHUB_REF | awk -F / '{print $3}')-${GITHUB_HEAD_REF##*/}" >> $GITHUB_ENV || true | |
[ "${GITHUB_EVENT_NAME}" == 'release' ] && echo "GITHUB_TAG_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV || true | |
[ "${GITHUB_EVENT_NAME}" == 'push' ] && echo "GITHUB_TAG_NAME=latest" >> $GITHUB_ENV || true | |
[ "${GITHUB_EVENT_NAME}" == 'pull_request' ] && echo "TARGET_BINARY_LOCATION=pull-requests/$(echo $GITHUB_REF | awk -F / '{print $3}')-${GITHUB_HEAD_REF##*/}" >> $GITHUB_ENV || true | |
[ "${GITHUB_EVENT_NAME}" == 'release' ] && echo "TARGET_BINARY_LOCATION=${GITHUB_REF##*/}" >> $GITHUB_ENV || true | |
[ "${GITHUB_EVENT_NAME}" == 'push' ] && echo "TARGET_BINARY_LOCATION=latest" >> $GITHUB_ENV || true | |
- name: Build project | |
run: | | |
make release GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} | |
- name: Upload image tarballs to GCS | |
run: | | |
mkdir -p nftables-exporter/${TARGET_BINARY_LOCATION} | |
cp bin/* nftables-exporter/${TARGET_BINARY_LOCATION}/ | |
gsutil -m cp -r -p nftables-exporter gs://$GCS_BUCKET | |
- name: Upload Release Asset | |
uses: softprops/action-gh-release@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: | | |
bin/nftables-exporter* | |
nftables-exporter*.tgz | |
if: ${{ github.event_name == 'release' }} |