Check For Integration Test Corpus Updates #248
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: Check For Integration Test Corpus Updates | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
Check-Upstream: | |
defaults: | |
run: | |
shell: bash | |
runs-on: ubuntu-latest | |
if: github.repository == 'cedar-policy/cedar-go' | |
permissions: | |
issues: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Upstream Corpus | |
run: curl -L -o /tmp/corpus-tests.tar.gz https://raw.githubusercontent.com/cedar-policy/cedar-integration-tests/main/corpus-tests.tar.gz | |
# cmp returns status code 1 if the files differ | |
- name: Compare | |
id: compare | |
run: cmp /tmp/corpus-tests.tar.gz corpus-tests.tar.gz | |
- name: Notify on Failure | |
if: failure() && steps.compare.outcome == 'failure' | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
// Get a list of all open issues labeled with 'upstream-corpus-test'. The documentation for | |
// listForRepo states that it should only return open issues. | |
const issues = await github.paginate(github.rest.issues.listForRepo, { | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: 'upstream-corpus-test' | |
}) | |
.then((issues) => { | |
console.log(`Found ${issues.length} open issues`) | |
// If one doesn't exist, create it | |
if (issues.length === 0) { | |
github.rest.issues.create({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
title: 'Upstream Integration Test Corpus Modified', | |
body: 'The upstream integration test corpus at https://raw.githubusercontent.com/cedar-policy/cedar-integration-tests/main/corpus-tests.tar.gz has been updated. Please integrate the changes into the local copy.', | |
assignees: ['jmccarthy', 'philhassey', 'patjakdev'], | |
labels: ['upstream-corpus-test'] | |
}) | |
} | |
}); |