Introduce E2E testing #16
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: E2E tests | |
on: | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
linux-amd64: | |
name: Linux amd64 | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
with: | |
egress-policy: block | |
allowed-endpoints: > | |
github.com:443 | |
api.github.com:443 | |
objects.githubusercontent.com:443 | |
ppa.launchpadcontent.net:443 | |
azure.archive.ubuntu.com:80 | |
motd.ubuntu.com:443 | |
esm.ubuntu.com:443 | |
security.ubuntu.com:80 | |
proxy.golang.org:443 | |
hn.algolia.com:80 | |
hn.algolia.com:443 | |
lemmy.world:443 | |
lobste.rs:443 | |
www.reddit.com:443 | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup seccomp | |
uses: awalsh128/cache-apt-pkgs-action@44c33b32f808cdddd5ac0366d70595ed63661ed8 # v1.3.1 | |
with: | |
packages: libseccomp-dev | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable | |
run: make build | |
- run: make e2e | |
linux-arm: | |
name: Linux ARMv7 | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
with: | |
egress-policy: block | |
allowed-endpoints: > | |
github.com:443 | |
api.github.com:443 | |
objects.githubusercontent.com:443 | |
proxy.golang.org:443 | |
ppa.launchpadcontent.net:443 | |
packages.microsoft.com:443 | |
azure.archive.ubuntu.com:80 | |
motd.ubuntu.com:443 | |
esm.ubuntu.com:443 | |
downloads.raspberrypi.org:443 | |
hn.algolia.com:80 | |
hn.algolia.com:443 | |
lemmy.world:443 | |
lobste.rs:443 | |
www.reddit.com:443 | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable | |
run: GOOS=linux GOARCH=arm GOARM=7 make unsafe | |
- name: Run E2E tests inside VM | |
uses: pguyot/arm-runner-action@e04ca3becb581a2b52cabe31e53835ada344522f # v2.5.2 | |
with: | |
cpu: cortex-a7 | |
cpu_info: cpuinfo/raspberrypi_3b | |
base_image: raspios_lite:latest | |
commands: | | |
make e2e | |
linux-arm64: | |
name: Linux ARM64 | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
with: | |
egress-policy: block | |
allowed-endpoints: > | |
github.com:443 | |
api.github.com:443 | |
objects.githubusercontent.com:443 | |
proxy.golang.org:443 | |
ppa.launchpadcontent.net:443 | |
packages.microsoft.com:443 | |
azure.archive.ubuntu.com:80 | |
motd.ubuntu.com:443 | |
esm.ubuntu.com:443 | |
downloads.raspberrypi.org:443 | |
hn.algolia.com:80 | |
hn.algolia.com:443 | |
lemmy.world:443 | |
lobste.rs:443 | |
www.reddit.com:443 | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable | |
run: GOOS=linux GOARCH=arm64 make unsafe | |
- name: Run E2E tests inside VM | |
uses: pguyot/arm-runner-action@e04ca3becb581a2b52cabe31e53835ada344522f # v2.5.2 | |
with: | |
cpu: cortex-a53 | |
cpu_info: cpuinfo/raspberrypi_zero2_w_arm64 | |
base_image: raspios_lite_arm64:latest | |
commands: | | |
make e2e | |
windows: | |
name: Windows amd64 | |
runs-on: windows-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
with: | |
egress-policy: audit | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable | |
run: make unsafe | |
- run: make e2e | |
freebsd: | |
name: FreeBSD amd64 | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
# FIXME: See: vmactions/freebsd-vm/issues/75 | |
# - name: Harden Runner | |
# uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
# with: | |
# egress-policy: audit | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable for FreeBSD amd64 | |
run: GOOS=freebsd GOARCH=amd64 make unsafe | |
- name: Run E2E tests inside VM | |
uses: vmactions/freebsd-vm@c4f95415f6b8fdafedd9faa9f14412d0ad5f567b # v1.0.4 | |
with: | |
usesh: true | |
run: | | |
set -e -x | |
make e2e | |
openbsd: | |
name: OpenBSD amd64 | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 | |
with: | |
egress-policy: block | |
allowed-endpoints: > | |
github.com:443 | |
api.github.com:443 | |
proxy.golang.org:443 | |
pool.ntp.org:443 | |
cdn.openbsd.org:443 | |
www.google.com:443 | |
raw.githubusercontent.com:443 | |
objects.githubusercontent.com:443 | |
time.cloudflare.com:443 | |
ppa.launchpadcontent.net:443 | |
packages.microsoft.com:443 | |
azure.archive.ubuntu.com:80 | |
motd.ubuntu.com:443 | |
esm.ubuntu.com:443 | |
pypi.org:443 | |
files.pythonhosted.org:443 | |
hn.algolia.com:80 | |
hn.algolia.com:443 | |
lemmy.world:443 | |
lobste.rs:443 | |
www.reddit.com:443 | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup Go | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 'stable' | |
- name: Install dependencies | |
run: make | |
- name: Build executable for OpenBSD amd64 | |
run: GOOS=openbsd GOARCH=amd64 make build | |
- name: Run E2E tests inside VM | |
uses: vmactions/openbsd-vm@c69c6aa05e19f11533a5d00913e398606bd66133 # v1.0.4 | |
with: | |
run: | | |
make e2e |