name: CI on: push: branches: - '*' pull_request: branches: - '*' jobs: # 预热 Go 依赖缓存(调用 reusable workflow) go-cache: uses: ./.github/workflows/go-cache.yaml build: needs: go-cache runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v6 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version-file: '.node-version' - name: Build run: make build-web bililive test: needs: go-cache runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v6 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version-file: '.node-version' - name: Test run: make build-web test - name: Codecov uses: codecov/codecov-action@v2 lint: name: Lint needs: go-cache runs-on: ubuntu-latest if: github.event_name == 'pull_request' timeout-minutes: 3 steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - name: Setup Go uses: actions/setup-go@v6 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - uses: golangci/golangci-lint-action@v8 with: working-directory: src/ args: --build-tags=dev check-agents: name: Check AI Instruction Files needs: go-cache runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v6 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - name: Check AI instruction files consistency run: make check-agents