72 lines
1.9 KiB
YAML
72 lines
1.9 KiB
YAML
name: Verify
|
||
|
||
on:
|
||
# 合并前完成全量验证,合并到 main 后不重复运行同一套检查。
|
||
pull_request:
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
test:
|
||
runs-on: [self-hosted, pod]
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||
with:
|
||
persist-credentials: false
|
||
|
||
- name: Set up Go
|
||
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417
|
||
with:
|
||
go-version-file: go.mod
|
||
cache: true
|
||
|
||
- name: Verify generated files and tests
|
||
run: |
|
||
make test
|
||
git diff --exit-code
|
||
|
||
lint:
|
||
runs-on: [self-hosted, pod]
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||
with:
|
||
persist-credentials: false
|
||
|
||
- name: Set up Go
|
||
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417
|
||
with:
|
||
go-version-file: go.mod
|
||
cache: true
|
||
|
||
- name: Lint
|
||
run: |
|
||
make lint
|
||
make lint-database-integration
|
||
|
||
database-integration:
|
||
runs-on: [self-hosted, pod]
|
||
timeout-minutes: 30
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||
with:
|
||
persist-credentials: false
|
||
|
||
- name: Set up Go
|
||
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417
|
||
with:
|
||
go-version-file: go.mod
|
||
cache: true
|
||
|
||
# Runner 提供本 job 可用的 Docker;workflow 只验证,不重复启动 daemon。
|
||
- name: Verify Docker availability
|
||
shell: bash
|
||
run: |
|
||
set -euo pipefail
|
||
docker version
|
||
docker info --format 'Server={{.ServerVersion}} StorageDriver={{.Driver}}'
|
||
|
||
- name: Test Database integration with real backends
|
||
run: make test-database-integration
|