name: "build-and-test" on: # rebuild any PRs and main branch changes pull_request: push: branches: - master - "releases/*" jobs: build: # make sure build/ci work properly runs-on: ubuntu-latest steps: - if: ${{ !(github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies'))) }} uses: actions/checkout@v3 - if: github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies')) uses: actions/checkout@v3 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.ref }} - run: | npm install npm run all # Update dist files if there is label dependencies or pull request' author is dependabot[bot] (id = 49699333) - name: Update dist files if: github.event_name == 'pull_request' && (github.event.pull_request.user.id == 49699333 || contains(github.event.pull_request.labels.*.name, 'dependencies')) run: | if [[ -z $(git status -s) ]] then echo "No change is required" else echo "Updating dist directory" git config --local user.name "dependabot[bot]" git config --local user.email "49699333+dependabot[bot]@users.noreply.github.com" git add --update git commit --message="Update dist files" git push fi # Fail the build if there is dirty change - run: git diff --exit-code test: # make sure the action works on a clean machine without building needs: [ build ] strategy: matrix: os: - ubuntu-latest - macos-latest - windows-latest version: - "" - "latest" - "v1.53" - "v1.53.2" runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: cache: false # setup-go v4 caches by default - uses: ./ with: version: ${{ matrix.version }} args: --timeout=3m --issues-exit-code=0 ./sample/... only-new-issues: true test-go-install: # make sure the action works on a clean machine without building (go-install mode) needs: [ build ] strategy: matrix: os: - ubuntu-latest - macos-latest - windows-latest version: - "" - "latest" - "v1.53.2" - "b5093688c0d3008eaacd6066773a1a52e689252f" runs-on: ${{ matrix.os }} permissions: contents: read pull-requests: read steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: cache: false # setup-go v4 caches by default - uses: ./ with: version: ${{ matrix.version }} args: --timeout=3m --issues-exit-code=0 ./sample/... only-new-issues: true install-mode: goinstall test-go-mod-version: needs: [ build ] strategy: matrix: os: - ubuntu-latest - macos-latest - windows-latest runs-on: ${{ matrix.os }} permissions: contents: read steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: cache: false # setup-go v4 caches by default - uses: ./ with: working-directory: sample-go-mod args: --timeout=3m --issues-exit-code=0 ./...