release: add arm64 binaries #120
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
name: CI | |
on: | |
push: | |
branches: | |
- 'master' | |
pull_request: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Go | |
uses: actions/setup-go@v2 | |
- name: Restore Go Modules Cache | |
uses: actions/cache@v2 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Environment Config | |
run: | | |
echo "$HOME/go/bin" >> $GITHUB_PATH | |
- name: Install Coverage Tools | |
# TODO(vtopc): replace with Coveralls GitHub Action as this step is running for 20-30 seconds. | |
run: | | |
make deps-coverage | |
- name: Download Dependencies | |
run: | | |
go mod download | |
- name: Git Config for Unit Tests | |
run: | | |
git config --global user.email ci | |
git config --global user.name ci | |
- name: Run Unit Tests and Upload Coverage Report | |
run: | | |
make test-gha | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Run Linter | |
uses: golangci/golangci-lint-action@v2 | |
goreleaser-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Check goreleaser's Configuration | |
uses: goreleaser/goreleaser-action@v2 | |
with: | |
version: latest | |
args: check | |
release: | |
permissions: | |
# allow goreleaser to access the Releases API | |
contents: write | |
# Checks if this is a merge into the master(main) and creates a new release if yes. | |
if: github.event_name != 'pull_request' | |
needs: [test, lint, goreleaser-check] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Restore Go Modules Cache | |
uses: actions/cache@v2 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Build binary | |
run: | | |
make build | |
chmod +x ./autotag/autotag | |
- name: Autotag Merge Commit | |
# TODO: replace this with GitHub Action after #41 | |
run: | | |
./autotag/autotag | |
echo "tags:" && git tag -l | |
- name: Install rpm | |
run: | | |
sudo apt-get -qqy update && sudo apt-get -qqy install rpm | |
- name: Docker Login | |
uses: docker/login-action@v1 | |
with: | |
registry: quay.io | |
username: ${{ secrets.QUAY_USER }} | |
password: ${{ secrets.QUAY_PASSWD }} | |
- name: Deploy Autotag Release | |
# TODO(vtopc): switch to the `goreleaser/goreleaser-action` GHA? | |
run: | | |
curl -sL https://git.io/goreleaser | bash -s -- --parallelism=2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |