57 lines
1.3 KiB
YAML
57 lines
1.3 KiB
YAML
|
name: GitHub Actions CI
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches: [ main ]
|
||
|
pull_request:
|
||
|
branches: [ main ]
|
||
|
|
||
|
jobs:
|
||
|
|
||
|
build:
|
||
|
name: CI
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
|
||
|
- name: Set up Go 1.x
|
||
|
uses: actions/setup-go@v2
|
||
|
with:
|
||
|
# Run on the latest minor release of Go 1.19:
|
||
|
go-version: ^1.19
|
||
|
id: go
|
||
|
|
||
|
- name: Check out code into the Go module directory
|
||
|
uses: actions/checkout@v2
|
||
|
|
||
|
- name: Ensure all files were formatted as per gofmt
|
||
|
run: |
|
||
|
[ "$(gofmt -l $(find . -name '*.go') 2>&1)" = "" ]
|
||
|
|
||
|
- name: Get dependencies
|
||
|
run: |
|
||
|
go get -v -t -d ./...
|
||
|
|
||
|
- name: Go Vet
|
||
|
run: |
|
||
|
go vet
|
||
|
|
||
|
- name: Build
|
||
|
run: |
|
||
|
go build -v .
|
||
|
|
||
|
- name: Test
|
||
|
run: |
|
||
|
go test -c
|
||
|
|
||
|
- name: Build Docker container with i3
|
||
|
run: |
|
||
|
docker build --pull --no-cache --rm -t=goi3 -f travis/Dockerfile .
|
||
|
|
||
|
- name: Run tests in Docker container
|
||
|
# The --init flag is load-bearing! Xserver(1) (including the Xvfb variant)
|
||
|
# will not send SIGUSR1 for readiness notification to pid 1, so we need to
|
||
|
# ensure that the i3.test process is not pid 1:
|
||
|
# https://gitlab.freedesktop.org/xorg/xserver/-/blob/4195e8035645007be313ade79032b8d561ceec6c/os/connection.c#L207
|
||
|
run: |
|
||
|
docker run --init -v $PWD:/usr/src goi3 ./i3.test -test.v
|