name: CI on: push: branches: [main] pull_request: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Sandbar needs secretbox, which is not in a tagged Reef release yet. Build against Reef's # main branch until it is, then delete this step and the replace line in go.mod. - uses: actions/checkout@v4 with: repository: Veillax/reef path: reef-src token: ${{ secrets.REEF_TOKEN }} - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Use the checked-out Reef run: go mod edit -replace git.veillax.com/Veillax/reef=./reef-src - name: Formatting run: | unformatted=$(gofmt -l cmd internal) if [ -n "$unformatted" ]; then echo "These files need gofmt:" echo "$unformatted" exit 1 fi - name: Vet run: go vet ./... - name: Test run: go test ./... - name: Design lint run: node scripts/lint-design.mjs - name: Builds on every platform run: | for t in linux/amd64 linux/arm64 linux/arm windows/amd64 darwin/amd64 darwin/arm64; do echo "building for $t" GOOS=${t%/*} GOARCH=${t#*/} GOARM=7 CGO_ENABLED=0 go build ./... done