Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/workflows/check-test-vectors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Check Test Vectors
on:
schedule:
# Run weekly on Wednesdays at 10 AM PT (6 PM UTC)
- cron: '0 18 * * 3'
workflow_dispatch: # Allow manual triggering

permissions:
contents: write
pull-requests: write

jobs:
check-vectors:
if: github.repository_owner == 'aws'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install Rust and Cargo
uses: dtolnay/rust-toolchain@stable

- name: Install duvet
run: cargo install duvet --locked

- name: Check test vectors are up-to-date
id: check_vectors
run: |
cd third_party/vectors
if python3 ./sync.py --check; then
echo "vectors_outdated=false" >> $GITHUB_OUTPUT
echo "✅ Test vectors are up-to-date"
else
echo "vectors_outdated=true" >> $GITHUB_OUTPUT
echo "❌ Test vectors are outdated"
fi

- name: Create Pull Request for outdated vectors
if: steps.check_vectors.outputs.vectors_outdated == 'true'
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-third-party-vectors
delete-branch: true
title: 'Update third-party test vectors'
body: |
### Issues:
Automated check detected that some third-party test vectors in `third_party/vectors` need to be updated.

### Next Steps
- Run `cd third_party/vectors && python3 ./sync.py` locally to update vectors
- Review any new test vectors that are added
- Run `ninja -C build crypto_test` to ensure all tests pass
- Run `python3 util/generate_build_files.py` to update build files
- Verify `cd third_party/vectors && python3 ./sync.py --check` returns success

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
assignees: sgmenda
draft: false

- name: Vectors up-to-date summary
if: steps.check_vectors.outputs.vectors_outdated == 'false'
run: |
echo "✅ Test vectors are up-to-date. No action needed."
Loading