Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.

Commit 48f7503

Browse files
committed
ci: add GitHub Actions workflow for testing and building
1 parent bd0d67c commit 48f7503

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

.github/workflows/ci.yml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
name: Test
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Go
18+
uses: actions/setup-go@v5
19+
with:
20+
go-version: '1.24'
21+
cache: true
22+
23+
- name: Download dependencies
24+
run: go mod download
25+
26+
- name: Run tests
27+
run: go test -v -race -coverprofile=coverage.out ./...
28+
29+
- name: Upload coverage
30+
uses: codecov/codecov-action@v4
31+
with:
32+
files: ./coverage.out
33+
fail_ci_if_error: false
34+
continue-on-error: true
35+
36+
lint:
37+
name: Lint
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Checkout code
41+
uses: actions/checkout@v4
42+
43+
- name: Set up Go
44+
uses: actions/setup-go@v5
45+
with:
46+
go-version: '1.24'
47+
cache: true
48+
49+
- name: Run go vet
50+
run: go vet ./...
51+
52+
- name: Run golangci-lint
53+
uses: golangci/golangci-lint-action@v6
54+
with:
55+
version: latest
56+
args: --timeout=5m
57+
58+
build:
59+
name: Build
60+
runs-on: ubuntu-latest
61+
steps:
62+
- name: Checkout code
63+
uses: actions/checkout@v4
64+
65+
- name: Set up Go
66+
uses: actions/setup-go@v5
67+
with:
68+
go-version: '1.24'
69+
cache: true
70+
71+
- name: Build ravel
72+
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o bin/ravel cmd/ravel/ravel.go
73+
74+
- name: Build initd
75+
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o bin/initd cmd/initd/initd.go
76+
77+
- name: Build jailer
78+
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o bin/jailer cmd/jailer/jailer.go
79+
80+
- name: Upload binaries
81+
uses: actions/upload-artifact@v4
82+
with:
83+
name: ravel-linux-amd64
84+
path: bin/
85+
retention-days: 7

0 commit comments

Comments
 (0)