This repository contains reusable workflows that are shared mainly between go and rust projects under the Veraison origination. They can be found under: .github/workflows.
The goal is to share a test runners and enforce a common set of rules across repositories.
| Workflow | Purpose | Jobs |
|---|---|---|
go.yml |
CI for Go projects | test, lint, cover |
rust.yml |
CI for Rust projects | test, lint, deny |
openapi.yml |
Validate OpenAPI specifications | specs |
Example:
name: ci
on:
push:
branches: ["**"]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref_name != github.event.repository.default_branch }}
jobs:
go:
uses: veraison/ci/.github/workflows/go.yml@main
with:
jobs: test
os: '["ubuntu-latest", "macos-latest"]'All jobs with the config above trigger on push and pull_request without running twice on either on alreay tested commits or scheduled by different triggers.
See the inputs of each workflow for all options. Callers use @main, so
changes here take effect everywhere on the next run.
configs/ holds the common .golangci.yml and deny.toml. Each
project commits a generated copy (common file + optional
.golangci.project.yml / deny.project.toml), regenerated by running
scripts/sync-config.py.
Changes to configs/ open pull requests in every project via
sync-configs.