Skip to content

Introduce E2E testing #16

Introduce E2E testing

Introduce E2E testing #16

Workflow file for this run

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