mirror of
https://github.com/github/codeql-action.git
synced 2025-12-28 02:00:12 +08:00
Just call `analyze`, since `upload: never` skips most of the functionality we want to test anyway.
67 lines
2.5 KiB
YAML
67 lines
2.5 KiB
YAML
name: "Use a custom `checkout_path`"
|
|
description: "Checks that a custom `checkout_path` will find the proper commit_oid"
|
|
versions: ["linked"]
|
|
steps:
|
|
# This ensures we don't accidentally use the original checkout for any part of the test.
|
|
- name: Delete original checkout
|
|
shell: bash
|
|
run: |
|
|
# delete the original checkout so we don't accidentally use it.
|
|
# Actions does not support deleting the current working directory, so we
|
|
# delete the contents of the directory instead.
|
|
rm -rf ./* .github .git
|
|
# Check out the actions repo again, but at a different location.
|
|
# choose an arbitrary SHA so that we can later test that the commit_oid is not from main
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: 474bbf07f9247ffe1856c6a0f94aeeb10e7afee6
|
|
path: x/y/z/some-path
|
|
|
|
- uses: ./../action/init
|
|
with:
|
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
|
# it's enough to test one compiled language and one interpreted language
|
|
languages: csharp,javascript
|
|
source-root: x/y/z/some-path/tests/multi-language-repo
|
|
|
|
- name: Build code
|
|
shell: bash
|
|
working-directory: x/y/z/some-path/tests/multi-language-repo
|
|
run: |
|
|
./build.sh
|
|
|
|
- uses: ./../action/analyze
|
|
with:
|
|
checkout_path: x/y/z/some-path/tests/multi-language-repo
|
|
ref: v1.1.0
|
|
sha: 474bbf07f9247ffe1856c6a0f94aeeb10e7afee6
|
|
|
|
- name: Verify SARIF after upload
|
|
shell: bash
|
|
run: |
|
|
EXPECTED_COMMIT_OID="474bbf07f9247ffe1856c6a0f94aeeb10e7afee6"
|
|
EXPECTED_REF="v1.1.0"
|
|
EXPECTED_CHECKOUT_URI_SUFFIX="/x/y/z/some-path/tests/multi-language-repo"
|
|
|
|
ACTUAL_COMMIT_OID="$(cat "$RUNNER_TEMP/payload.json" | jq -r .commit_oid)"
|
|
ACTUAL_REF="$(cat "$RUNNER_TEMP/payload.json" | jq -r .ref)"
|
|
ACTUAL_CHECKOUT_URI="$(cat "$RUNNER_TEMP/payload.json" | jq -r .checkout_uri)"
|
|
|
|
if [[ "$EXPECTED_COMMIT_OID" != "$ACTUAL_COMMIT_OID" ]]; then
|
|
echo "::error Invalid commit oid. Expected: $EXPECTED_COMMIT_OID Actual: $ACTUAL_COMMIT_OID"
|
|
echo "$RUNNER_TEMP/payload.json"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$EXPECTED_REF" != "$ACTUAL_REF" ]]; then
|
|
echo "::error Invalid ref. Expected: '$EXPECTED_REF' Actual: '$ACTUAL_REF'"
|
|
echo "$RUNNER_TEMP/payload.json"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$ACTUAL_CHECKOUT_URI" != *$EXPECTED_CHECKOUT_URI_SUFFIX ]]; then
|
|
echo "::error Invalid checkout URI suffix. Expected suffix: $EXPECTED_CHECKOUT_URI_SUFFIX Actual uri: $ACTUAL_CHECKOUT_URI"
|
|
echo "$RUNNER_TEMP/payload.json"
|
|
exit 1
|
|
fi
|