diff --git a/.github/actions/setup-go/action.yaml b/.github/actions/setup-go/action.yaml index 0e6cb0c9071c0..29b7061e85975 100644 --- a/.github/actions/setup-go/action.yaml +++ b/.github/actions/setup-go/action.yaml @@ -17,7 +17,8 @@ runs: restore-keys: | gotoolchain-${{ runner.os }}- - - uses: buildjet/setup-go@v4 + - name: Setup Go + uses: buildjet/setup-go@v4 with: # We do our own caching for implementation clarity. cache: false diff --git a/.github/actions/setup-node/action.yaml b/.github/actions/setup-node/action.yaml index cf7f308346166..eaf27f4efb52c 100644 --- a/.github/actions/setup-node/action.yaml +++ b/.github/actions/setup-node/action.yaml @@ -4,7 +4,8 @@ description: | runs: using: "composite" steps: - - uses: buildjet/setup-node@v3 + - name: Setup Node + uses: buildjet/setup-node@v3 with: node-version: 16.20.1 # See https://github.com/actions/setup-node#caching-global-packages-data diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f9353344a1bed..84054bcaa3878 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,9 +36,11 @@ jobs: k8s: ${{ steps.filter.outputs.k8s }} ci: ${{ steps.filter.outputs.ci }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 # For pull requests it's not necessary to checkout the code - - uses: dorny/paths-filter@v2 + - name: check changed files + uses: dorny/paths-filter@v2 id: filter with: filters: | @@ -101,9 +103,11 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - uses: ./.github/actions/setup-go + - name: Setup Node + uses: ./.github/actions/setup-node - - uses: ./.github/actions/setup-node + - name: Setup Go + uses: ./.github/actions/setup-go - name: Get golangci-lint cache dir run: | @@ -149,14 +153,19 @@ jobs: needs: changes if: needs.changes.outputs.docs-only == 'false' || needs.changes.outputs.ci == 'true' || github.ref == 'refs/heads/main' steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - - uses: ./.github/actions/setup-node - - uses: ./.github/actions/setup-go + - name: Setup Node + uses: ./.github/actions/setup-node - - name: Install sqlc - run: | - curl -sSL https://github.com/kyleconroy/sqlc/releases/download/v1.18.0/sqlc_1.18.0_linux_amd64.tar.gz | sudo tar -C /usr/bin -xz sqlc + - name: Setup Go + uses: ./.github/actions/setup-go + + - name: Setup sqlc + uses: sqlc-dev/setup-sqlc@v3 + with: + sqlc-version: "1.18.0" - name: go install tools run: | @@ -192,9 +201,11 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - uses: ./.github/actions/setup-node + - name: Setup Node + uses: ./.github/actions/setup-node - - uses: buildjet/setup-go@v4 + - name: Setup Go + uses: buildjet/setup-go@v4 with: # This doesn't need caching. It's super fast anyways! cache: false @@ -235,10 +246,14 @@ jobs: - macos-latest - windows-2019 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-tf + - name: Setup Go + uses: ./.github/actions/setup-go + + - name: Setup Terraform + uses: ./.github/actions/setup-tf - name: Test with Mock Database id: test @@ -269,12 +284,14 @@ jobs: # so we need to print the test stats to the log. go run ./scripts/ci-report/main.go gotests.json | tee gotests_stats.json - - uses: ./.github/actions/upload-datadog + - name: Upload test stats to Datadog + uses: ./.github/actions/upload-datadog if: success() || failure() with: api-key: ${{ secrets.DATADOG_API_KEY }} - - uses: codecov/codecov-action@v3 + - name: Check code coverage + uses: codecov/codecov-action@v3 # This action has a tendency to error out unexpectedly, it has # the `fail_ci_if_error` option that defaults to `false`, but # that is no guarantee, see: @@ -296,10 +313,14 @@ jobs: # even if some of the preceding steps are slow. timeout-minutes: 25 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Go + uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-tf + - name: Setup Terraform + uses: ./.github/actions/setup-tf - name: Test with PostgreSQL Database run: | @@ -313,12 +334,14 @@ jobs: # so we need to print the test stats to the log. go run ./scripts/ci-report/main.go gotests.json | tee gotests_stats.json - - uses: ./.github/actions/upload-datadog + - name: Upload test stats to Datadog + uses: ./.github/actions/upload-datadog if: success() || failure() with: api-key: ${{ secrets.DATADOG_API_KEY }} - - uses: codecov/codecov-action@v3 + - name: Check code coverage + uses: codecov/codecov-action@v3 # This action has a tendency to error out unexpectedly, it has # the `fail_ci_if_error` option that defaults to `false`, but # that is no guarantee, see: @@ -336,16 +359,21 @@ jobs: if: needs.changes.outputs.go == 'true' || needs.changes.outputs.ci == 'true' || github.ref == 'refs/heads/main' timeout-minutes: 25 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Go + uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-tf + - name: Setup Terraform + uses: ./.github/actions/setup-tf - name: Run Tests run: | gotestsum --junitfile="gotests.xml" -- -race ./... - - uses: ./.github/actions/upload-datadog + - name: Upload test stats to Datadog + uses: ./.github/actions/upload-datadog if: always() with: api-key: ${{ secrets.DATADOG_API_KEY }} @@ -362,7 +390,8 @@ jobs: contents: read id-token: write steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -375,8 +404,11 @@ jobs: - name: Set up Google Cloud SDK uses: google-github-actions/setup-gcloud@v1 - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-node + - name: Setup Node + uses: ./.github/actions/setup-node + + - name: Setup Go + uses: ./.github/actions/setup-go - name: Install goimports run: go install golang.org/x/tools/cmd/goimports@latest @@ -430,7 +462,8 @@ jobs: echo "::endgroup::" done - - uses: actions/upload-artifact@v3 + - name: Upload build artifacts + uses: actions/upload-artifact@v3 with: name: coder path: | @@ -445,14 +478,17 @@ jobs: if: needs.changes.outputs.ts == 'true' || needs.changes.outputs.ci == 'true' || github.ref == 'refs/heads/main' timeout-minutes: 20 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - - uses: ./.github/actions/setup-node + - name: Setup Node + uses: ./.github/actions/setup-node - run: yarn test:ci --max-workers $(nproc) working-directory: site - - uses: codecov/codecov-action@v3 + - name: Check code coverage + uses: codecov/codecov-action@v3 # This action has a tendency to error out unexpectedly, it has # the `fail_ci_if_error` option that defaults to `false`, but # that is no guarantee, see: @@ -470,11 +506,17 @@ jobs: if: needs.changes.outputs.go == 'true' || needs.changes.outputs.ts == 'true' || needs.changes.outputs.ci == 'true' || github.ref == 'refs/heads/main' timeout-minutes: 20 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: ./.github/actions/setup-node - - uses: ./.github/actions/setup-node - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-tf + - name: Setup Go + uses: ./.github/actions/setup-go + + - name: Setup Terraform + uses: ./.github/actions/setup-tf - name: Build run: | @@ -503,13 +545,15 @@ jobs: needs: changes if: needs.changes.outputs.ts == 'true' || needs.changes.outputs.ci == 'true' || github.ref == 'refs/heads/main' steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: # Required by Chromatic for build-over-build history, otherwise we # only get 1 commit on shallow checkout. fetch-depth: 0 - - uses: ./.github/actions/setup-node + - name: Setup Node + uses: ./.github/actions/setup-node # This step is not meant for mainline because any detected changes to # storybook snapshots will require manual approval/review in order for diff --git a/.github/workflows/contrib.yaml b/.github/workflows/contrib.yaml index 9c82bf42d4991..e3365d1abe24c 100644 --- a/.github/workflows/contrib.yaml +++ b/.github/workflows/contrib.yaml @@ -25,7 +25,8 @@ jobs: permissions: pull-requests: write steps: - - uses: hmarr/auto-approve-action@v3 + - name: auto-approve dependabot + uses: hmarr/auto-approve-action@v3 if: github.actor == 'dependabot[bot]' cla: @@ -52,7 +53,8 @@ jobs: # Skip tagging for draft PRs. if: ${{ github.event_name == 'pull_request_target' && success() && !github.event.pull_request.draft }} steps: - - uses: actions/github-script@v6 + - name: release-labels + uses: actions/github-script@v6 with: # This script ensures PR title and labels are in sync: # diff --git a/.github/workflows/docker-base.yaml b/.github/workflows/docker-base.yaml index 120cfcdd6651b..7eb4a01c8e806 100644 --- a/.github/workflows/docker-base.yaml +++ b/.github/workflows/docker-base.yaml @@ -31,7 +31,8 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'coder' steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: Docker login uses: docker/login-action@v2 diff --git a/.github/workflows/nightly-gauntlet.yaml b/.github/workflows/nightly-gauntlet.yaml index 0cc00b0d7acf0..3e18a1a85058b 100644 --- a/.github/workflows/nightly-gauntlet.yaml +++ b/.github/workflows/nightly-gauntlet.yaml @@ -16,10 +16,14 @@ jobs: # so 0.016 * 240 = 3.84 USD per run. timeout-minutes: 240 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - - uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-tf + - name: Setup Go + uses: ./.github/actions/setup-go + + - name: Setup Terraform + uses: ./.github/actions/setup-tf - name: Run Tests run: | @@ -28,7 +32,8 @@ jobs: # impact. gotestsum --junitfile="gotests.xml" -- -timeout=240m -count=10 -race ./... - - uses: ./.github/actions/upload-datadog + - name: Upload test results to DataDog + uses: ./.github/actions/upload-datadog if: always() with: api-key: ${{ secrets.DATADOG_API_KEY }} @@ -38,14 +43,18 @@ jobs: runs-on: "buildjet-2vcpu-ubuntu-2204" timeout-minutes: 10 steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Go + uses: ./.github/actions/setup-go - - uses: ./.github/actions/setup-go - name: Run Tests run: | gotestsum --junitfile="gotests.xml" -- --tags="timing" -p=1 -run='_Timing/' ./... - - uses: ./.github/actions/upload-datadog + - name: Upload test results to DataDog + uses: ./.github/actions/upload-datadog if: always() with: api-key: ${{ secrets.DATADOG_API_KEY }} diff --git a/.github/workflows/pr-auto-assign.yaml b/.github/workflows/pr-auto-assign.yaml index b9246c37e0b2a..94afac8290931 100644 --- a/.github/workflows/pr-auto-assign.yaml +++ b/.github/workflows/pr-auto-assign.yaml @@ -13,4 +13,5 @@ jobs: assign-author: runs-on: ubuntu-latest steps: - - uses: toshimaru/auto-author-assign@v1.6.2 + - name: Assign author + uses: toshimaru/auto-author-assign@v1.6.2 diff --git a/.github/workflows/pr-deploy.yaml b/.github/workflows/pr-deploy.yaml index 5773dc912bbb6..d9d5dc7f0fc77 100644 --- a/.github/workflows/pr-deploy.yaml +++ b/.github/workflows/pr-deploy.yaml @@ -102,17 +102,21 @@ jobs: CODER_IMAGE_TAG: ${{ needs.pr_commented.outputs.coder_image_tag }} PR_NUMBER: ${{ needs.pr_commented.outputs.pr_number }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: ./.github/actions/setup-go + - name: Setup Node + uses: ./.github/actions/setup-node - - uses: ./.github/actions/setup-node + - name: Setup Go + uses: ./.github/actions/setup-go - - name: Install sqlc - run: | - curl -sSL https://github.com/kyleconroy/sqlc/releases/download/v1.18.0/sqlc_1.18.0_linux_amd64.tar.gz | sudo tar -C /usr/bin -xz sqlc + - name: Setup sqlc + uses: sqlc-dev/setup-sqlc@v3 + with: + sqlc-version: "1.18.0" - name: GHCR Login uses: docker/login-action@v2 @@ -147,7 +151,8 @@ jobs: PR_TITLE: ${{ needs.pr_commented.outputs.PR_TITLE }} PR_URL: ${{ needs.pr_commented.outputs.PR_URL }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: "Set up kubeconfig" run: | diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 670b7cfb5d80c..f2ec780e212d4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -43,7 +43,8 @@ jobs: outputs: version: ${{ steps.version.outputs.version }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -94,7 +95,8 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: ./.github/actions/setup-go + - name: Setup Go + uses: ./.github/actions/setup-go - name: Cache Node id: cache-node @@ -335,7 +337,8 @@ jobs: runs-on: windows-latest needs: release steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: fetch-depth: 0 diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 2a272fc36d946..202a6144ad503 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -28,14 +28,16 @@ jobs: codeql: runs-on: ${{ github.repository_owner == 'coder' && 'buildjet-8vcpu-ubuntu-2204' || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: languages: go, javascript - - uses: ./.github/actions/setup-go + - name: Setup Go + uses: ./.github/actions/setup-go # Workaround to prevent CodeQL from building the dashboard. - name: Remove Makefile @@ -59,11 +61,13 @@ jobs: trivy: runs-on: ${{ github.repository_owner == 'coder' && 'buildjet-8vcpu-ubuntu-2204' || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: ./.github/actions/setup-go + - name: Setup Go + uses: ./.github/actions/setup-go - name: Cache Node id: cache-node @@ -76,9 +80,11 @@ jobs: restore-keys: | js-${{ runner.os }}- - - name: Install sqlc - run: | - curl -sSL https://github.com/kyleconroy/sqlc/releases/download/v1.18.0/sqlc_1.18.0_linux_amd64.tar.gz | sudo tar -C /usr/bin -xz sqlc + - name: Setup sqlc + uses: sqlc-dev/setup-sqlc@v3 + with: + sqlc-version: "1.18.0" + - name: Install yq run: go run github.com/mikefarah/yq/v4@v4.30.6 - name: Install mockgen diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index 6e92a91fbd880..20be49e40954c 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -12,7 +12,8 @@ jobs: pull-requests: write actions: write steps: - - uses: actions/stale@v8.0.0 + - name: stale + uses: actions/stale@v8.0.0 with: stale-issue-label: "stale" stale-pr-label: "stale"