diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 0000000..7c9b483 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +# ubuntu-26.04 is still in public preview, and actionlint does not know +# about it yet; remove this once it does. +self-hosted-runner: + labels: + - ubuntu-26.04 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ef06a44 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 + +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + cooldown: + default-days: 7 + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml new file mode 100644 index 0000000..f0887ed --- /dev/null +++ b/.github/workflows/actionlint.yml @@ -0,0 +1,26 @@ +name: Actionlint + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: [push, pull_request] + +jobs: + actionlint: + runs-on: ubuntu-24.04 + timeout-minutes: 10 # guardrails timeout for the whole job + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: devops-actions/actionlint@ec02b36684b2f574f1d219ad0a43b082e46bf3e4 # v0.1.13 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bc94561..491cdb6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: go-version: [1.18.x, oldstable, stable] - platform: [ubuntu-22.04, ubuntu-24.04, windows-2022, windows-2025, macos-15, macos-26] + platform: [ubuntu-22.04, ubuntu-24.04, ubuntu-26.04, windows-2022, windows-2025, macos-15, macos-26] runs-on: ${{ matrix.platform }} timeout-minutes: 10 # guardrails timeout for the whole job defaults: @@ -28,9 +28,11 @@ jobs: shell: bash steps: - name: Checkout code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - name: Install Go - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 + uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version: ${{ matrix.go-version }} # Disable caching as we don't have top-level go.sum needed for @@ -87,7 +89,7 @@ jobs: uname -a make test - name: Send to Codecov - uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 with: token: ${{ secrets.CODECOV_TOKEN }} # used to upload coverage reports: https://github.com/moby/buildkit/pull/4660#issue-2142122533 @@ -95,6 +97,23 @@ jobs: runs-on: ubuntu-24.04 timeout-minutes: 10 # guardrails timeout for the whole job steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - run: pip install --break-system-packages codespell==v2.3.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - run: pip install --break-system-packages codespell==v2.4.3 - run: codespell + + zizmor: + runs-on: ubuntu-24.04 + timeout-minutes: 10 # guardrails timeout for the whole job + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2 + with: + # Report findings as workflow annotations rather than uploading + # them to the repository's security tab (which needs additional + # permissions and GitHub Advanced Security to be enabled). + advanced-security: false + annotations: true