Staging Instance Tests #724
This file contains 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
name: Staging Instance Tests | |
on: | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: '0 */8 * * *' | |
jobs: | |
staging-tests: | |
runs-on: ubuntu-latest | |
permissions: | |
# Needed to access the workflow's OIDC identity. | |
id-token: write | |
# Needed to create an issue, on failure. | |
issues: write | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 | |
with: | |
python-version: "3.x" | |
cache: "pip" | |
cache-dependency-path: pyproject.toml | |
- name: staging tests | |
env: | |
SIGSTORE_LOGLEVEL: DEBUG | |
run: | | |
# This is similar to the "smoketest" that we run during the | |
# release workflow, except that we run against Sigstore's | |
# staging instances instead. | |
# We also don't bother to build distributions. | |
python -m venv staging-env | |
./staging-env/bin/python -m pip install . | |
# Our signing target is not important here, so we just sign | |
# the README in the repository. | |
./staging-env/bin/python -m sigstore --verbose --staging sign README.md | |
# Verification also requires a different Rekor instance, so we | |
# also test it. | |
./staging-env/bin/python -m sigstore --verbose --staging verify identity \ | |
--cert-oidc-issuer https://token.actions.githubusercontent.com \ | |
--cert-identity ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/.github/workflows/staging-tests.yml@${GITHUB_REF} \ | |
README.md | |
- name: generate an issue if staging tests fail | |
if: failure() | |
run: | | |
cat <<- EOF > /tmp/staging-instance-issue.md | |
## Staging instance failure | |
A scheduled test against Sigstore's staging instance has failed. | |
This suggests one of three conditions: | |
* A backwards-incompatible change in a Sigstore component; | |
* A regression in \`sigstore-python\`; | |
* A transient error. | |
The full CI failure can be found here: | |
${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/$GITHUB_RUN_ID | |
EOF | |
- name: open an issue if the staging tests fail | |
if: failure() | |
uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5.0.1 | |
with: | |
title: "[CI] Integration failure: staging instance" | |
# created in the previous step | |
content-filepath: /tmp/staging-instance-issue.md | |
labels: bug,component:cicd,component:tests | |
assignees: woodruffw,di,tetsuo-cpp |