name: "Use a custom `checkout_path`" description: "Checks that a custom `checkout_path` will find the proper commit_oid" # Build tracing currently does not support Windows 2022, so use `windows-2019` instead of # `windows-latest`. # Must test on all three platforms since this test does path manipulation os: [ubuntu-latest, macos-latest, windows-2019] steps: # 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@v3 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-path: x/y/z/some-path/tests/multi-language-repo debug: true - name: Build code (non-windows) shell: bash if: ${{ runner.os != 'Windows' }} run: | $CODEQL_RUNNER x/y/z/some-path/tests/multi-language-repo/build.sh - name: Build code (windows) shell: bash if: ${{ runner.os == 'Windows' }} run: | x/y/z/some-path/tests/multi-language-repo/build.sh - uses: ./../action/analyze with: checkout_path: x/y/z/some-path/tests/multi-language-repo ref: v1.1.0 sha: 474bbf07f9247ffe1856c6a0f94aeeb10e7afee6 upload: false env: TEST_MODE: true - uses: ./../action/upload-sarif with: ref: v1.1.0 sha: 474bbf07f9247ffe1856c6a0f94aeeb10e7afee6 checkout_path: x/y/z/some-path/tests/multi-language-repo env: TEST_MODE: true - 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