Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: CI

on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
workflow_dispatch:

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
root:
name: Root checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Verify root tests
run: go test ./...

- name: Verify race detector
run: go test -race ./...

- name: Verify go vet
run: go vet ./...

validation-playground:
name: Validation submodule
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: validation/playground/go.mod
cache: true

- name: Download validation module dependencies
working-directory: validation/playground
env:
GOWORK: off
run: go mod download

- name: Verify validation/playground
working-directory: validation/playground
env:
GOWORK: off
run: go test ./...

examples:
name: Examples (${{ matrix.example }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example:
- examples/stdmux
- examples/gorillamux
- examples/chi
- examples/restapi
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: ${{ matrix.example }}/go.mod
cache: true

- name: Download example module dependencies
working-directory: ${{ matrix.example }}
env:
GOWORK: off
run: go mod download

- name: Verify example module
working-directory: ${{ matrix.example }}
env:
GOWORK: off
run: go test ./...

workspace:
name: Workspace sync
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Sync go.work
run: go work sync

- name: Verify workspace is clean
run: git diff --exit-code -- go.work go.work.sum
25 changes: 0 additions & 25 deletions .github/workflows/go.yml

This file was deleted.

68 changes: 68 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Release

on:
push:
tags:
- "v*"
workflow_dispatch:

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: write

jobs:
verify:
name: Verify before release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: Root tests
run: go test ./...

- name: Root race tests
run: go test -race ./...

- name: Download validation module dependencies
working-directory: validation/playground
env:
GOWORK: off
run: go mod download

- name: Validation submodule tests
working-directory: validation/playground
env:
GOWORK: off
run: go test ./...

- name: Download REST API example dependencies
working-directory: examples/restapi
env:
GOWORK: off
run: go mod download

- name: REST API example tests
working-directory: examples/restapi
env:
GOWORK: off
run: go test ./...

github-release:
name: Publish GitHub release
runs-on: ubuntu-latest
needs: verify
steps:
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
Loading
Loading