Skip to content

[test] test in actuated runners #185

[test] test in actuated runners

[test] test in actuated runners #185

Workflow file for this run

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/get-pr-commits@v1.3.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: check subject line length
uses: tim-actions/commit-message-checker-with-regex@v0.3.2
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"