name: "build-and-test" on: pull_request: branches: - main push: branches: - main permissions: contents: read jobs: # make sure build/ci work properly build: runs-on: ubuntu-latest steps: - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/checkout@v6 - run: | npm install npm run all # Fail the build if there are changes. - run: git diff --exit-code -- dist # make sure the action works on a clean machine without building test: needs: [ build ] strategy: matrix: os: - ubuntu-latest - ubuntu-22.04-arm - macos-latest - windows-latest version: - "" - "latest" - "v2.7" - "v2.7.2" runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/setup-go@v6 with: go-version: oldstable - uses: ./ with: version: ${{ matrix.version }} args: --timeout=5m --issues-exit-code=0 ./fixtures/simple/... only-new-issues: true # make sure the action works on a clean machine without building (go-install mode) test-go-install: needs: [ build ] strategy: matrix: os: - ubuntu-latest - ubuntu-22.04-arm - macos-latest - windows-latest version: - "" - "latest" - "v2.7.2" - "655e8ede5178280b2a640e185bc4a343aed0f54e" runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/setup-go@v6 with: go-version: oldstable - uses: ./ with: version: ${{ matrix.version }} args: --timeout=5m --issues-exit-code=0 ./fixtures/simple/... only-new-issues: true install-mode: goinstall test-go-mod: needs: [ build ] strategy: matrix: os: - ubuntu-latest - ubuntu-22.04-arm - macos-latest - windows-latest wd: - fixtures/go-mod - fixtures/go-tool runs-on: ${{ matrix.os }} permissions: contents: read steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/setup-go@v6 with: go-version: oldstable - uses: ./ with: working-directory: ${{ matrix.wd }} args: --timeout=5m --issues-exit-code=0 ./... # make sure the action works on a clean machine with plugins test-plugins: needs: [ build ] strategy: matrix: os: - ubuntu-latest - ubuntu-22.04-arm - macos-latest - windows-latest version: - "" - "latest" - "v2.7" - "v2.7.2" runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/setup-go@v6 with: go-version: oldstable - uses: ./ with: version: ${{ matrix.version }} working-directory: fixtures/plugins args: --timeout=5m --issues-exit-code=0 ./... test-monorepo: needs: [ build ] strategy: matrix: os: - ubuntu-latest - ubuntu-22.04-arm - macos-latest - windows-latest runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24.x - uses: actions/setup-go@v6 with: go-version: oldstable - uses: ./ with: working-directory: fixtures/monorepo experimental: "automatic-module-directories" args: --timeout=5m --issues-exit-code=0 ./...