Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e7309d2
Add feature flag for using zstd bundle
henrymercer Sep 23, 2024
ac3fca3
Use zstd bundle by default when feature flag enabled
henrymercer Sep 23, 2024
990feb5
Catch gotcha in PR check workflow generator
henrymercer Sep 23, 2024
b1ca017
Add PR check for zstd bundle
henrymercer Sep 23, 2024
db98c27
Gate zstd enablement on tar version
henrymercer Sep 23, 2024
a7a6a69
Determine zstd availability earlier on to simplify log
henrymercer Sep 23, 2024
662c71a
Check telemetry in PR check to ensure .tar.zst downloaded
henrymercer Sep 23, 2024
4d015b8
Fall back to gzip if zstd fails
henrymercer Sep 23, 2024
0abc1ec
Capture reason if zstd fails unexpectedly
henrymercer Sep 23, 2024
20bd6fe
Merge branch 'main' into henrymercer/zstd-experiment
henrymercer Sep 23, 2024
37309b9
Add changelog note
henrymercer Sep 23, 2024
fa91789
Run zstd checks against all operating systems
henrymercer Sep 24, 2024
67b30f7
Tweak description
henrymercer Sep 24, 2024
bc68dc9
Extract constant for first std-compressed version
henrymercer Sep 24, 2024
af8e2bc
Use Node script to remove CodeQL cross-platform
henrymercer Sep 24, 2024
6b2f7e7
Run PR checks using JS only
henrymercer Sep 24, 2024
ae1c6a2
Update changelog and version after v3.26.9
github-actions[bot] Sep 24, 2024
da7be78
Update checked-in dependencies
github-actions[bot] Sep 24, 2024
46e0c78
Merge pull request #2504 from github/mergeback/v3.26.9-to-main-461ef6c7
henrymercer Sep 24, 2024
2617ff2
Merge pull request #2502 from github/henrymercer/zstd-experiment
henrymercer Sep 27, 2024
7dbbf6d
Update changelog for v3.26.10
github-actions[bot] Sep 30, 2024
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
Prev Previous commit
Next Next commit
Check telemetry in PR check to ensure .tar.zst downloaded
  • Loading branch information
henrymercer committed Sep 23, 2024
commit 662c71aa9ecdbf65aa9e19408ea15d90e172d496
44 changes: 44 additions & 0 deletions .github/workflows/__zstd-bundle.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 45 additions & 1 deletion pr-checks/checks/zstd-bundle.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
name: "Zstandard bundle"
description: "Tests using a CodeQL Bundle compressed using Zstandard"
description: "Tests the feature flag that downloads a Zstandard-compressed CodeQL Bundle by default"
versions:
- linked
operatingSystems:
- ubuntu
env:
CODEQL_ACTION_ZSTD_BUNDLE: true
steps:
- name: Remove CodeQL from toolcache
run: |
rm -rf $RUNNER_TOOL_CACHE/CodeQL
- id: init
uses: ./../action/init
with:
Expand All @@ -17,3 +20,44 @@ steps:
shell: bash
run: ./build.sh
- uses: ./../action/analyze
with:
output: ${{ runner.temp }}/results
upload-database: false
- name: Upload SARIF
uses: actions/upload-artifact@v3
with:
name: zstd-bundle.sarif
path: ${{ runner.temp }}/results/cpp.sarif
retention-days: 7
- name: Check diagnostic with expected tools URL appears in SARIF
uses: actions/github-script@v7
env:
SARIF_PATH: ${{ runner.temp }}/results/cpp.sarif
with:
script: |
const fs = require('fs');

const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8'));
const run = sarif.runs[0];

const toolExecutionNotifications = run.invocations[0].toolExecutionNotifications;
const downloadTelemetryNotifications = toolExecutionNotifications.filter(n =>
n.descriptor.id === 'codeql-action/bundle-download-telemetry'
);
if (downloadTelemetryNotifications.length !== 1) {
core.setFailed(
'Expected exactly one reporting descriptor in the ' +
`'runs[].invocations[].toolExecutionNotifications[]' SARIF property, but found ` +
`${downloadTelemetryNotifications.length}. All notification reporting descriptors: ` +
`${JSON.stringify(toolExecutionNotifications)}.`
);
}

const toolsUrl = downloadTelemetryNotifications[0].properties.attributes.toolsUrl;
console.log(`Found tools URL: ${toolsUrl}`);

if (!toolsUrl.endsWith('.tar.zst')) {
core.setFailed(
`Expected the tools URL to be a .tar.zst file, but found ${toolsUrl}.`
);
}