Skip to content
Open
Show file tree
Hide file tree
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
3 changes: 3 additions & 0 deletions .duvet/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reports/
requirements/
specification/
21 changes: 21 additions & 0 deletions .duvet/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'$schema' = "https://awslabs.github.io/duvet/config/v0.4.0.json"

[[source]]
pattern = "src/**/*.java"

# Include required specifications here
[[specification]]
source = "specification/s3-encryption/client.md"
[[specification]]
source = "specification/s3-encryption/materials/keyrings.md"
[[specification]]
source = "specification/s3-encryption/materials/s3-keyring.md"
[[specification]]
source = "specification/s3-encryption/materials/s3-kms-keyring.md"

[report.html]
enabled = true

# Enable snapshots to prevent requirement coverage regressions
[report.snapshot]
enabled = false
44 changes: 44 additions & 0 deletions .github/workflows/duvet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: duvet

on:
workflow_call:
# Optional inputs that can be provided when calling this workflow

jobs:
test:
runs-on: macos-latest
permissions:
id-token: write
contents: read
pages: write

steps:
- name: Checkout code
uses: actions/checkout@v5
with:
submodules: true

- name: Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable

- name: Clone duvet repository
run: git clone https://github.com/awslabs/duvet.git /tmp/duvet

- name: Build and install duvet
run: |
cd /tmp/duvet
cargo xtask build
cargo install --path ./duvet

- name: Run duvet
run: make duvet

- name: Upload duvet reports
uses: actions/upload-artifact@v4
with:
name: reports
include-hidden-files: true
path: .duvet/reports/report.html

5 changes: 3 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "specification"]
[submodule "private_aws"]
path = specification
url = git@github.com:awslabs/aws-encryption-sdk-specification.git
url = git@github.com:awslabs/private-aws-encryption-sdk-specification-staging.git
branch = tonyknap/todo-cbc-encryption
19 changes: 8 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# Used for misc supporting functions like Duvet and prettier. Builds, tests, etc. should use the usual Java/Maven tooling.

duvet: | duvet_extract duvet_report

duvet_extract:
rm -rf compliance
$(foreach file, $(shell find specification/s3-encryption -name '*.md'), duvet extract -o compliance -f MARKDOWN $(file);)
duvet: | duvet_clean duvet_report

duvet_report:
duvet \
report \
--spec-pattern "compliance/**/*.toml" \
--source-pattern "src/**/*.java" \
--source-pattern "compliance_exceptions/*.txt" \
--html specification_compliance_report.html
duvet report

duvet-view-report-mac:
open .duvet/reports/report.html

duvet_clean:
rm -rf .duvet/reports/ .duvet/requirements/
Loading