From 651498cce80b8126b05cc73677c333c401583ecf Mon Sep 17 00:00:00 2001 From: Niklas Dewally Date: Mon, 6 Nov 2023 13:15:01 +0000 Subject: [PATCH 1/3] CI: add coverage report to Code Coverage (Generation) --- .github/workflows/code-coverage.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml index d0099e9b5..1a06ae4a4 100644 --- a/.github/workflows/code-coverage.yml +++ b/.github/workflows/code-coverage.yml @@ -64,5 +64,28 @@ jobs: name: code-coverage-${{ github.sha }} path: deploy/** + - name: Format summary + run : | + CONJURE_OXIDE_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/conjure-oxide" + MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/minion" + CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/chuffed" + CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/conjure-oxide" + MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/minion" + CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/chuffed" + echo '# Code Coverage' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## This commit" >> $GITHUB_STEP_SUMMARY + echo "| Crate | | | " >> $GITHUB_STEP_SUMMARY + echo "| ----- | ----- | ----- |" >> $GITHUB_STEP_SUMMARY + echo "| Conjure-Oxide | ![](${CONJURE_OXIDE_URL}/badges/flat.svg) | [Full Report](${CONJURE_OXIDE_URL}) | " >> $GITHUB_STEP_SUMMARY + echo "| Minion | ![](${MINION_URL}/badges/flat.svg) | [Full Report](${MINION_URL}) | " >> $GITHUB_STEP_SUMMARY + echo "| Chuffed | ![](${CHUFFED_URL}/badges/flat.svg) | [Full Report](${CHUFFED_URL}) | " >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "## Main" >> $GITHUB_STEP_SUMMARY + echo "| Crate | | | " >> $GITHUB_STEP_SUMMARY + echo "| ----- | ----- | ----- |" >> $GITHUB_STEP_SUMMARY + echo "| Conjure-Oxide | ![](${CONJURE_OXIDE_LATEST}/badges/flat.svg) | [Full Report](${CONJURE_OXIDE_LATEST}) | " >> $GITHUB_STEP_SUMMARY + echo "| Minion | ![](${MINION_LATEST}/badges/flat.svg) | [Full Report](${MINION_LATEST}) | " >> $GITHUB_STEP_SUMMARY + echo "| Chuffed | ![](${CHUFFED_LATEST}/badges/flat.svg) | [Full Report](${CHUFFED_LATEST}) | " >> $GITHUB_STEP_SUMMARY From 969bc781611e58b5b298092cc7e9870c96738579 Mon Sep 17 00:00:00 2001 From: Niklas Dewally Date: Mon, 6 Nov 2023 13:46:44 +0000 Subject: [PATCH 2/3] CI: fix inconsistent shas --- .github/workflows/code-coverage-deploy.yml | 48 ++++++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/.github/workflows/code-coverage-deploy.yml b/.github/workflows/code-coverage-deploy.yml index 0a130f1dc..a6cdd479e 100644 --- a/.github/workflows/code-coverage-deploy.yml +++ b/.github/workflows/code-coverage-deploy.yml @@ -1,4 +1,5 @@ name: "Code Coverage (Deploy)" +# see https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ on: workflow_run: @@ -17,11 +18,27 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + + - name: Set shas + id: sha + uses: actions/github-script@v6 + with: + result-encoding: string + script: | + const {data: callee_run } = await github.rest.actions.getWorkflowRun({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); + + console.log(callee_run); + return callee_run.head_sha; + - name: Download artifact uses: dawidd6/action-download-artifact@v2 with: - name: code-coverage-${{ github.event.workflow_run.head_sha }} + name: code-coverage-${{ steps.sha.outputs.result }} workflow: code-coverage.yml path: ./deploy @@ -29,9 +46,9 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4 with: folder: ./deploy - target-folder: "coverage/${{ github.event.workflow_run.head_sha }}" + target-folder: "coverage/${{ steps.sha.outputs.result }}" branch: gh-pages - commit-message: "Actions: Code Coverage for ${{ github.event.workflow_run.head_sha }}" + commit-message: "Actions: Code Coverage for ${{ steps.sha.outputs.result }}" - name: If on main branch, copy coverage report to /latest. if: github.ref == 'refs/heads/main' @@ -40,13 +57,13 @@ jobs: folder: ./deploy target-folder: "coverage/latest" branch: gh-pages - commit-message: "Actions: Update latest code coverage for main (${{ github.event.workflow_run.head_sha }})" + commit-message: "Actions: Update latest code coverage for main (${{steps.sha.outputs.result}})" - name: Format summary run : | - CONJURE_OXIDE_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/conjure-oxide" - MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/minion" - CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/chuffed" + CONJURE_OXIDE_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ steps.sha.output.result }}/conjure-oxide" + MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ steps.sha.output.result }}/minion" + CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ steps.sha.output.result }}/chuffed" CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/conjure-oxide" MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/minion" @@ -81,9 +98,24 @@ jobs: ref: "gh-pages" path: "pages" + - name: Set shas + id: sha + uses: actions/github-script@v6 + with: + result-encoding: string + script: | + const {data: callee_run } = await github.rest.actions.getWorkflowRun({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); + + console.log(callee_run); + return callee_run.head_sha; + - name: "Generate indexes" run: | - ./etc/ci/genindex.py pages/coverage/${{ github.event.workflow_run.head_sha }} + ./etc/ci/genindex.py pages/coverage/${{ steps.sha.outputs.result }} ./etc/ci/genindex.py pages/coverage/latest ./etc/ci/genindex.py pages/coverage/ From c6ae4660147cf9e88e8531a3051b06ae94a6b132 Mon Sep 17 00:00:00 2001 From: Niklas Dewally Date: Mon, 6 Nov 2023 17:35:34 +0000 Subject: [PATCH 3/3] CI: rename code coverage folder latest to main --- .github/workflows/code-coverage-deploy.yml | 12 ++++++------ .github/workflows/code-coverage.yml | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/code-coverage-deploy.yml b/.github/workflows/code-coverage-deploy.yml index a6cdd479e..02ec89789 100644 --- a/.github/workflows/code-coverage-deploy.yml +++ b/.github/workflows/code-coverage-deploy.yml @@ -50,14 +50,14 @@ jobs: branch: gh-pages commit-message: "Actions: Code Coverage for ${{ steps.sha.outputs.result }}" - - name: If on main branch, copy coverage report to /latest. + - name: If on main branch, copy coverage report to /main. if: github.ref == 'refs/heads/main' uses: JamesIves/github-pages-deploy-action@v4 with: folder: ./deploy - target-folder: "coverage/latest" + target-folder: "coverage/main" branch: gh-pages - commit-message: "Actions: Update latest code coverage for main (${{steps.sha.outputs.result}})" + commit-message: "Actions: Update code coverage for main (${{steps.sha.outputs.result}})" - name: Format summary run : | @@ -65,9 +65,9 @@ jobs: MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ steps.sha.output.result }}/minion" CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ steps.sha.output.result }}/chuffed" - CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/conjure-oxide" - MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/minion" - CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/chuffed" + CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/conjure-oxide" + MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/minion" + CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/chuffed" echo '# Code Coverage' >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "## This commit" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml index 1a06ae4a4..69f2bbf40 100644 --- a/.github/workflows/code-coverage.yml +++ b/.github/workflows/code-coverage.yml @@ -49,7 +49,7 @@ jobs: - name: Move all html to correct folders for deployment run: | - # put things both in the sha directory, and in latest/ + # put things both in the sha directory, and in main/ mkdir -p deploy/conjure-oxide mkdir -p deploy/minion mkdir -p deploy/chuffed @@ -70,9 +70,9 @@ jobs: MINION_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/minion" CHUFFED_URL="https://conjure-cp.github.io/conjure-oxide/coverage/${{ github.event.workflow_run.head_sha }}/chuffed" - CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/conjure-oxide" - MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/minion" - CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/latest/chuffed" + CONJURE_OXIDE_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/conjure-oxide" + MINION_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/minion" + CHUFFED_LATEST="https://conjure-cp.github.io/conjure-oxide/coverage/main/chuffed" echo '# Code Coverage' >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "## This commit" >> $GITHUB_STEP_SUMMARY