Module path, binary name, config dir, help text, and docs all updated from fgj-sid/fgj to fj.
83 lines
2.1 KiB
YAML
83 lines
2.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: codeberg-small
|
|
steps:
|
|
- name: Checkout code
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: https://github.com/actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
cache: true
|
|
|
|
- name: Install golangci-lint
|
|
run: |
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.6.2
|
|
|
|
- name: Run golangci-lint
|
|
run: golangci-lint run --timeout 5m
|
|
|
|
build:
|
|
runs-on: codeberg-small
|
|
steps:
|
|
- name: Checkout code
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: https://github.com/actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
cache: true
|
|
|
|
- name: Build application
|
|
run: make build
|
|
|
|
test:
|
|
runs-on: codeberg-small
|
|
steps:
|
|
- name: Checkout code
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: https://github.com/actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
cache: true
|
|
|
|
- name: Run unit tests
|
|
run: go test -v -race ./...
|
|
|
|
functional:
|
|
runs-on: codeberg-small
|
|
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
|
|
needs: [build, test]
|
|
steps:
|
|
- name: Checkout code
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: https://github.com/actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
cache: true
|
|
|
|
- name: Build production binary
|
|
run: |
|
|
make build
|
|
echo "Binary built at: $(pwd)/bin/fj"
|
|
|
|
- name: Run functional tests
|
|
run: go test -v -race -tags=functional ./tests/functional/...
|
|
env:
|
|
CODEBERG_TEST_TOKEN: ${{ secrets.CODEBERG_TEST_TOKEN }}
|
|
CODEBERG_TEST_OWNER: ${{ vars.CODEBERG_TEST_OWNER }}
|
|
CODEBERG_TEST_REPO: ${{ vars.CODEBERG_TEST_REPO }}
|
|
CODEBERG_TEST_HOSTNAME: ${{ vars.CODEBERG_TEST_HOSTNAME || 'codeberg.org' }}
|