name: Lint on: workflow_call: inputs: node_version: required: true type: string buf_version: required: true type: string go_lint_version: required: true type: string core_cache_key: required: true type: string core_cache_path: required: true type: string jobs: lint-skip: name: lint skip runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' }} steps: - name: Lint skip run: | echo "Linting outside of pull requests is skipped" api: name: api runs-on: ubuntu-latest continue-on-error: true if: ${{ github.event_name == 'pull_request' }} steps: - uses: actions/checkout@v4 - uses: bufbuild/buf-setup-action@v1 with: version: ${{ inputs.buf_version }} github_token: ${{ secrets.GITHUB_TOKEN }} - name: lint uses: bufbuild/buf-lint-action@v1 - uses: bufbuild/buf-breaking-action@v1 with: against: "https://github.com/${{ github.repository }}.git#branch=${{ github.base_ref }}" turbo-lint-unit: if: ${{ github.event_name == 'pull_request' }} name: turbo-lint-unit runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Run lint and unit tests in dev container uses: devcontainers/ci@v0.3 with: push: never configFile: .devcontainer/turbo-lint-unit/devcontainer.json runCmd: echo "Successfully ran lint and unit tests in dev container postStartCommand" core: name: core runs-on: ubuntu-latest if: ${{ github.event_name == 'pull_request' }} steps: - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: "go.mod" - uses: actions/cache/restore@v4 timeout-minutes: 1 name: restore core with: path: ${{ inputs.core_cache_path }} key: ${{ inputs.core_cache_key }} fail-on-cache-miss: true - uses: golangci/golangci-lint-action@v8 with: version: ${{ inputs.go_lint_version }} github-token: ${{ github.token }} only-new-issues: true