chore(deps): update dependency mockttp to v4 #811
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # End-to-end tests for the Publish to BCR custom GitHub action | |
| name: action-e2e | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| # Cancel previous actions from the same PR or branch except 'main' branch. | |
| # See https://docs.github.com/en/actions/using-jobs/using-concurrency and https://docs.github.com/en/actions/learn-github-actions/contexts for more info. | |
| group: concurrency-group::${{ github.workflow }}::${{ github.event.pull_request.number > 0 && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}${{ github.ref_name == 'main' && format('::{0}', github.run_id) || ''}} | |
| cancel-in-progress: ${{ github.ref_name != 'main' }} | |
| jobs: | |
| # Each job is an e2e test. Unfortunately a full workflow cannot be added as | |
| # required status check on branch protection rules, so each test must be added | |
| # as a required check: https://github.com/orgs/community/discussions/12395. | |
| test-happy-path: | |
| # Create a new module entry and test the content | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| path: this | |
| - name: Setup test fixture | |
| run: this/e2e/action/setup-test-fixture.sh versioned versioned-1.0.0 | |
| - name: Create registry | |
| run: | | |
| mkdir -p bazel-central-registry/modules | |
| cd bazel-central-registry | |
| git init | |
| - name: Create entry | |
| id: create_entry | |
| uses: ./this | |
| with: | |
| tag: v1.0.0 | |
| module-version: 1.0.0 | |
| github-repository: foobar/versioned | |
| templates-dir: this/e2e/fixtures/versioned/.bcr | |
| local-registry: bazel-central-registry | |
| - name: Test entry content | |
| run: this/e2e/action/test-happy-path-content.sh | |
| - name: Test outputs | |
| run: | | |
| set -o errexit -o nounset -o pipefail -o xtrace | |
| EXPECTED="versioned" | |
| ACTUAL="${{ steps.create_entry.outputs.module-names }}" | |
| if [[ "${ACTUAL}" != "${EXPECTED}" ]]; then | |
| echo "Expected output module-names to be '${EXPECTED}' but it was '${ACTUAL}'" | |
| exit 1 | |
| fi | |
| EXPECTED="versioned@1.0.0" | |
| ACTUAL="${{ steps.create_entry.outputs.short-description }}" | |
| if [[ "${ACTUAL}" != "${EXPECTED}" ]]; then | |
| echo "Expected output short-description to be '${EXPECTED}' but it was '${ACTUAL}'" | |
| exit 1 | |
| fi | |
| test-github-repository-default: | |
| # Test that the `github-repository` input defaults to ${{ github.repository }} | |
| # indirectly by checking the resulting subtituted source.json file in the entry. | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| path: this | |
| - name: Setup test fixture | |
| run: this/e2e/action/setup-test-fixture.sh versioned publish-to-bcr-1.0.0 | |
| - name: Create registry | |
| run: | | |
| mkdir -p bazel-central-registry/modules | |
| cd bazel-central-registry | |
| git init | |
| - name: Create entry | |
| uses: ./this | |
| with: | |
| tag: v1.0.0 | |
| module-version: 1.0.0 | |
| templates-dir: this/e2e/fixtures/versioned/.bcr | |
| local-registry: bazel-central-registry | |
| - name: Test repository substitution | |
| run: this/e2e/action/test-github-repository-default-substitution.sh | |
| test-attestations: | |
| # Test that attestations are created when `attest` is set to true | |
| runs-on: ubuntu-latest | |
| # Attestations cannot be used from a fork https://github.com/actions/attest-build-provenance/issues/99 | |
| if: ${{ github.repository == 'bazel-contrib/publish-to-bcr' }} | |
| permissions: | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| path: this | |
| - name: Setup test fixture | |
| run: this/e2e/action/setup-test-fixture.sh versioned versioned-1.0.0 | |
| - name: Create registry | |
| run: | | |
| mkdir -p bazel-central-registry/modules | |
| cd bazel-central-registry | |
| git init | |
| - name: Create entry | |
| uses: ./this | |
| with: | |
| attest: true | |
| attestations-dest: attestations | |
| tag: v1.0.0 | |
| module-version: 1.0.0 | |
| github-repository: foobar/versioned | |
| templates-dir: this/e2e/fixtures/versioned/.bcr | |
| local-registry: bazel-central-registry | |
| - name: Test attestations exist | |
| run: | | |
| set -o errexit -o nounset -o pipefail -o xtrace | |
| [ -f attestations/MODULE.bazel.intoto.jsonl ] | |
| [ -f attestations/source.json.intoto.jsonl ] | |
| test-multi-module: | |
| # Tests a multi-module publish | |
| runs-on: ubuntu-latest | |
| # Attestations cannot be used from a fork https://github.com/actions/attest-build-provenance/issues/99 | |
| if: ${{ github.repository == 'bazel-contrib/publish-to-bcr' }} | |
| permissions: | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| path: this | |
| - name: Setup test fixture | |
| run: this/e2e/action/setup-test-fixture.sh multi-module multi-module-1.0.0 | |
| - name: Create registry | |
| run: | | |
| mkdir -p bazel-central-registry/modules | |
| cd bazel-central-registry | |
| git init | |
| - name: Create entry | |
| id: create_entry | |
| uses: ./this | |
| with: | |
| attest: true | |
| attestations-dest: attestations | |
| tag: v1.0.0 | |
| module-version: 1.0.0 | |
| github-repository: testorg/multi-module | |
| templates-dir: this/e2e/fixtures/multi-module/.bcr | |
| local-registry: bazel-central-registry | |
| # Test that attestation files are given a prefixed name when multiple modules are published | |
| - name: Test attestations exist | |
| run: |- | |
| set -o errexit -o nounset -o pipefail -o xtrace | |
| [ -f attestations/module.MODULE.bazel.intoto.jsonl ] | |
| [ -f attestations/module.source.json.intoto.jsonl ] | |
| [ -f attestations/submodule.MODULE.bazel.intoto.jsonl ] | |
| [ -f attestations/submodule.source.json.intoto.jsonl ] | |
| - name: Test outputs | |
| run: |- | |
| set -o errexit -o nounset -o pipefail -o xtrace | |
| EXPECTED="module,submodule" | |
| ACTUAL="${{ steps.create_entry.outputs.module-names }}" | |
| if [[ "${ACTUAL}" != "${EXPECTED}" ]]; then | |
| echo "Expected output module-names to be '${EXPECTED}' but it was '${ACTUAL}'" | |
| exit 1 | |
| fi | |
| EXPECTED="{module,submodule}@1.0.0" | |
| ACTUAL="${{ steps.create_entry.outputs.short-description }}" | |
| if [[ "${ACTUAL}" != "${EXPECTED}" ]]; then | |
| echo "Expected output short-description to be '${EXPECTED}' but it was '${ACTUAL}'" | |
| exit 1 | |
| fi |