|
48 | 48 | run: |
|
49 | 49 | brew install gnu-tar
|
50 | 50 | echo "/usr/local/opt/gnu-tar/libexec/gnubin" >> $GITHUB_PATH
|
| 51 | + - name: Install cargo-cross |
| 52 | + if: runner.os == 'Linux' |
| 53 | + run: cargo install cross --version 0.2.1 |
51 | 54 | - uses: ./.github/actions/os-version
|
52 | 55 | id: os_version
|
53 | 56 | - name: Cache entire extractor
|
|
78 | 81 | - name: Run tests
|
79 | 82 | if: steps.cache-extractor.outputs.cache-hit != 'true'
|
80 | 83 | run: cd extractor && cargo test --verbose
|
81 |
| - - name: Release build |
82 |
| - if: steps.cache-extractor.outputs.cache-hit != 'true' |
| 84 | + # On linux, build the extractor via cross in a centos7 container. |
| 85 | + # This ensures we don't depend on glibc > 2.17. |
| 86 | + - name: Release build (linux) |
| 87 | + if: steps.cache-extractor.outputs.cache-hit != 'true' && runner.os == 'Linux' |
| 88 | + run: cd extractor && cross build --release |
| 89 | + - name: Release build (windows and macos) |
| 90 | + if: steps.cache-extractor.outputs.cache-hit != 'true' && runner.os != 'Linux' |
83 | 91 | run: cd extractor && cargo build --release
|
84 | 92 | - name: Generate dbscheme
|
85 | 93 | if: ${{ matrix.os == 'ubuntu-latest' && steps.cache-extractor.outputs.cache-hit != 'true'}}
|
@@ -227,3 +235,54 @@ jobs:
|
227 | 235 | shell: bash
|
228 | 236 | run: |
|
229 | 237 | codeql database analyze --search-path "${{ runner.temp }}/ruby-bundle" --format=sarifv2.1.0 --output=out.sarif ../database ruby-code-scanning.qls
|
| 238 | +
|
| 239 | + # This is a copy of the 'test' job that runs in a centos7 container. |
| 240 | + # This tests that the extractor works correctly on systems with an old glibc. |
| 241 | + test-centos7: |
| 242 | + defaults: |
| 243 | + run: |
| 244 | + working-directory: ${{ github.workspace }} |
| 245 | + strategy: |
| 246 | + fail-fast: false |
| 247 | + runs-on: ubuntu-latest |
| 248 | + container: |
| 249 | + image: centos:centos7 |
| 250 | + env: |
| 251 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 252 | + needs: [package] |
| 253 | + steps: |
| 254 | + - name: Install gh cli |
| 255 | + run: | |
| 256 | + yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo |
| 257 | + # fetch-codeql requires unzip and jq |
| 258 | + # jq is available in epel-release (https://docs.fedoraproject.org/en-US/epel/) |
| 259 | + yum install -y gh unzip epel-release |
| 260 | + yum install -y jq |
| 261 | + - uses: actions/checkout@v3 |
| 262 | + - name: Fetch CodeQL |
| 263 | + uses: ./.github/actions/fetch-codeql |
| 264 | + |
| 265 | + # Due to a bug in Actions, we can't use runner.temp in the run blocks here. |
| 266 | + # https://github.com/actions/runner/issues/2185 |
| 267 | + |
| 268 | + - name: Download Ruby bundle |
| 269 | + uses: actions/download-artifact@v3 |
| 270 | + with: |
| 271 | + name: codeql-ruby-bundle |
| 272 | + path: ${{ runner.temp }} |
| 273 | + - name: Unzip Ruby bundle |
| 274 | + shell: bash |
| 275 | + run: unzip -q -d "$RUNNER_TEMP"/ruby-bundle "$RUNNER_TEMP"/codeql-ruby-bundle.zip |
| 276 | + |
| 277 | + - name: Run QL test |
| 278 | + shell: bash |
| 279 | + run: | |
| 280 | + codeql test run --search-path "$RUNNER_TEMP"/ruby-bundle --additional-packs "$RUNNER_TEMP"/ruby-bundle ruby/ql/test/library-tests/ast/constants/ |
| 281 | + - name: Create database |
| 282 | + shell: bash |
| 283 | + run: | |
| 284 | + codeql database create --search-path "$RUNNER_TEMP"/ruby-bundle --language ruby --source-root ruby/ql/test/library-tests/ast/constants/ ../database |
| 285 | + - name: Analyze database |
| 286 | + shell: bash |
| 287 | + run: | |
| 288 | + codeql database analyze --search-path "$RUNNER_TEMP"/ruby-bundle --format=sarifv2.1.0 --output=out.sarif ../database ruby-code-scanning.qls |
0 commit comments