New function to quick check if a session key can decrypt a encrypted data packet #54
Workflow file for this run
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: SOP interoperability test suite | |
on: | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build-gosop: | |
name: Build gosop from branch | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build gosop from branch | |
uses: ./.github/actions/build-gosop | |
with: | |
binary-location: ./gosop-${{ github.sha }} | |
# Upload as artifact | |
- name: Upload gosop artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gosop-${{ github.sha }} | |
path: ./gosop-${{ github.sha }} | |
build-gosop-main: | |
name: Build gosop from main | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build gosop from branch | |
uses: ./.github/actions/build-gosop | |
with: | |
gopenpgp-ref: main | |
binary-location: ./gosop-main | |
# Upload as artifact | |
- name: Upload gosop-main artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gosop-main | |
path: ./gosop-main | |
test-suite: | |
name: Run interoperability test suite | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.1 | |
credentials: | |
username: ${{ github.actor }} | |
password: ${{ secrets.github_token }} | |
needs: | |
- build-gosop | |
- build-gosop-main | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# Fetch gosop from main | |
- name: Download gosop-main | |
uses: actions/download-artifact@v3 | |
with: | |
name: gosop-main | |
# Test gosop-main | |
- name: Make gosop-main executable | |
run: chmod +x gosop-main | |
- name: Print gosop-main version | |
run: ./gosop-main version --extended | |
# Fetch gosop from branch | |
- name: Download gosop-branch | |
uses: actions/download-artifact@v3 | |
with: | |
name: gosop-${{ github.sha }} | |
- name: Rename gosop-branch | |
run: mv gosop-${{ github.sha }} gosop-branch | |
# Test gosop-branch | |
- name: Make gosop-branch executable | |
run: chmod +x gosop-branch | |
- name: Print gosop-branch version | |
run: ./gosop-branch version --extended | |
# Run test suite | |
- name: Prepare test configuration | |
run: ./.github/test-suite/prepare_config.sh $CONFIG_TEMPLATE $CONFIG_OUTPUT $GITHUB_WORKSPACE/gosop-branch $GITHUB_WORKSPACE/gosop-main | |
env: | |
CONFIG_TEMPLATE: .github/test-suite/config.json.template | |
CONFIG_OUTPUT: .github/test-suite/config.json | |
- name: Display configuration | |
run: cat .github/test-suite/config.json | |
- name: Run interoperability test suite | |
run: cd $TEST_SUITE_DIR && $TEST_SUITE --config $GITHUB_WORKSPACE/$CONFIG --json-out $GITHUB_WORKSPACE/$RESULTS_JSON --html-out $GITHUB_WORKSPACE/$RESULTS_HTML | |
env: | |
CONFIG: .github/test-suite/config.json | |
RESULTS_JSON: .github/test-suite/test-suite-results.json | |
RESULTS_HTML: .github/test-suite/test-suite-results.html | |
# Upload results | |
- name: Upload test results json artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-suite-results.json | |
path: .github/test-suite/test-suite-results.json | |
- name: Upload test results html artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-suite-results.html | |
path: .github/test-suite/test-suite-results.html | |
compare-with-main: | |
name: Compare with main | |
runs-on: ubuntu-latest | |
needs: test-suite | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Download test results json artifact | |
id: download-test-results | |
uses: actions/download-artifact@v3 | |
with: | |
name: test-suite-results.json | |
- name: Compare with baseline | |
uses: ProtonMail/openpgp-interop-test-analyzer@v1 | |
with: | |
results: ${{ steps.download-test-results.outputs.download-path }}/test-suite-results.json | |
output: baseline-comparison.json | |
baseline: gosop-main | |
target: gosop-branch |