[test] test in actuated runners #185
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: validate | |
on: | |
push: | |
tags: | |
- v* | |
branches: | |
- master | |
pull_request: | |
jobs: | |
commit: | |
runs-on: ubuntu-22.04 | |
# Only check commits on pull requests. | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: get pr commits | |
id: 'get-pr-commits' | |
uses: tim-actions/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: check subject line length | |
uses: tim-actions/[email protected] | |
with: | |
commits: ${{ steps.get-pr-commits.outputs.commits }} | |
pattern: '^.{0,72}(\n.*)*$' | |
error: 'Subject too long (max 72)' | |
lint: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- uses: golangci/golangci-lint-action@v6 | |
with: | |
version: v1.61 | |
codespell: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install deps | |
# Version of codespell bundled with Ubuntu is way old, so use pip. | |
run: pip install codespell | |
- name: run codespell | |
run: codespell | |
cross: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: cross | |
run: make build-cross | |
test-stubs: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- uses: golangci/golangci-lint-action@v6 | |
with: | |
version: v1.61 | |
- name: test-stubs | |
run: make test | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: [1.21.x, 1.22.x, 1.23.x] | |
race: ["-race", ""] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: build | |
run: make BUILDFLAGS="${{ matrix.race }}" build | |
- name: test | |
run: make TESTFLAGS="${{ matrix.race }}" test | |
- name: test 32-bit | |
if: ${{ matrix.race }} == "" # -race is not supported on linux/386 | |
run: make GOARCH=386 test | |
test-actuated: | |
runs-on: actuated-arm64-6cpu-8gb | |
steps: | |
# https://gist.github.com/alexellis/1f33e581c75e11e161fe613c46180771#file-metering-gha-md | |
# vmmeter start | |
- name: Prepare arkade | |
uses: alexellis/arkade-get@master | |
with: | |
crane: latest | |
print-summary: false | |
- name: Install vmmeter | |
run: | | |
crane export --platform linux/arm64 ghcr.io/openfaasltd/vmmeter:latest | sudo tar -xvf - -C /usr/local/bin | |
- name: Run vmmeter | |
uses: self-actuated/vmmeter-action@master | |
# vmmeter end | |
- uses: actions/checkout@v4 | |
- name: enable selinux | |
run: | | |
sudo apt update | |
sudo apt install -y policycoreutils selinux-basics selinux-policy-default selinux-utils | |
sudo selinux-activate | |
#------------ | |
sestatus | |
#------------ | |
- name: host info | |
run: | | |
set -x | |
# Sync `set -x` outputs with command ouputs | |
exec 2>&1 | |
# Version | |
uname -a | |
cat /etc/os-release | |
# SELinux | |
sestatus | |
- name: install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23.x | |
- name: build | |
run: make build | |
- name: test | |
run: make test | |
- name: test -race | |
run: make TESTFLAGS="-race" test | |
- name: test 32-bit | |
run: make GOARCH=arm test | |
all-done: | |
needs: | |
- commit | |
- lint | |
- codespell | |
- cross | |
- test-stubs | |
- test | |
- test-actuated | |
runs-on: ubuntu-22.04 | |
steps: | |
- run: echo "All jobs completed" |