name: Check framework coverage changes on: pull_request: paths: - ".github/workflows/csv-coverage-pr-comment.yml" - ".github/workflows/csv-coverage-pr-artifacts.yml" - ".github/actions/fetch-codeql/action.yml" - "*/ql/src/**/*.ql" - "*/ql/src/**/*.qll" - "*/ql/lib/**/*.ql" - "*/ql/lib/**/*.qll" - "misc/scripts/library-coverage/*.py" # input data files - "*/documentation/library-coverage/cwe-sink.csv" - "*/documentation/library-coverage/frameworks.csv" branches: - main - "rc/*" jobs: generate: name: Generate framework coverage artifacts runs-on: ubuntu-latest steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJSON(github.event) }} run: echo "$GITHUB_CONTEXT" - name: Clone self (github/codeql) - MERGE uses: actions/checkout@v3 with: path: merge - name: Clone self (github/codeql) - BASE uses: actions/checkout@v3 with: fetch-depth: 2 path: base - run: | git checkout HEAD^1 git log -1 --format='%H' working-directory: base - name: Set up Python 3.8 uses: actions/setup-python@v4 with: python-version: 3.8 - name: Download CodeQL CLI uses: ./merge/.github/actions/fetch-codeql - name: Generate CSV files on merge commit of the PR run: | echo "Running generator on merge" python merge/misc/scripts/library-coverage/generate-report.py ci merge merge mkdir out_merge cp framework-coverage-*.csv out_merge/ cp framework-coverage-*.rst out_merge/ - name: Generate CSV files on base commit of the PR run: | echo "Running generator on base" python base/misc/scripts/library-coverage/generate-report.py ci base base mkdir out_base cp framework-coverage-*.csv out_base/ cp framework-coverage-*.rst out_base/ - name: Generate diff of coverage reports run: | python base/misc/scripts/library-coverage/compare-folders.py out_base out_merge comparison.md - name: Upload CSV package list uses: actions/upload-artifact@v3 with: name: csv-framework-coverage-merge path: | out_merge/framework-coverage-*.csv out_merge/framework-coverage-*.rst - name: Upload CSV package list uses: actions/upload-artifact@v3 with: name: csv-framework-coverage-base path: | out_base/framework-coverage-*.csv out_base/framework-coverage-*.rst - name: Upload comparison results uses: actions/upload-artifact@v3 with: name: comparison path: | comparison.md - name: Save PR number run: | mkdir -p pr echo ${{ github.event.pull_request.number }} > pr/NR - name: Upload PR number uses: actions/upload-artifact@v3 with: name: pr path: pr/