|
8 | 8 | jobs:
|
9 | 9 | scan:
|
10 | 10 | concurrency:
|
11 |
| - group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os_version }}-${{ matrix.build }} # to branch/PR + OS + build |
| 11 | + group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build }} # to branch/PR + OS + build |
12 | 12 | cancel-in-progress: true
|
13 | 13 | runs-on: ubuntu-latest
|
14 | 14 | strategy:
|
15 | 15 | fail-fast: false
|
16 | 16 | matrix:
|
17 |
| - os_version: |
18 |
| - - RL8 |
19 |
| - - RL9 |
20 |
| - build: |
21 |
| - - openstack.openhpc |
22 |
| - - openstack.openhpc-cuda |
23 |
| - exclude: |
24 |
| - - os_version: RL8 |
25 |
| - build: openstack.openhpc-cuda |
| 17 | + build: ["RL8", "RL9", "RL9-cuda"] |
26 | 18 | env:
|
27 |
| - BUILD: ${{ matrix.build }}-${{ matrix.os_version }} |
| 19 | + JSON_PATH: environments/.stackhpc/terraform/cluster_image.json |
| 20 | + OS_CLOUD: openstack |
| 21 | + CI_CLOUD: ${{ vars.CI_CLOUD }} |
28 | 22 |
|
29 | 23 | steps:
|
30 |
| - - name: Download image details artifact |
31 |
| - uses: actions/download-artifact@v4 |
32 |
| - with: |
33 |
| - name: image-details-${{ env.BUILD }} |
| 24 | + - uses: actions/checkout@v2 |
| 25 | + |
| 26 | + - name: Record settings for CI cloud |
| 27 | + run: | |
| 28 | + echo CI_CLOUD: ${{ env.CI_CLOUD }} |
| 29 | +
|
| 30 | + - name: Setup ssh |
| 31 | + run: | |
| 32 | + set -x |
| 33 | + mkdir ~/.ssh |
| 34 | + echo "${{ secrets[format('{0}_SSH_KEY', env.CI_CLOUD)] }}" > ~/.ssh/id_rsa |
| 35 | + chmod 0600 ~/.ssh/id_rsa |
| 36 | + shell: bash |
| 37 | + |
| 38 | + - name: Add bastion's ssh key to known_hosts |
| 39 | + run: cat environments/.stackhpc/bastion_fingerprints >> ~/.ssh/known_hosts |
| 40 | + shell: bash |
| 41 | + |
| 42 | + - name: setup environment |
| 43 | + run: | |
| 44 | + python3 -m venv venv |
| 45 | + . venv/bin/activate |
| 46 | + pip install -U pip |
| 47 | + pip install $(grep -o 'python-openstackclient[><=0-9\.]*' requirements.txt) |
| 48 | + shell: bash |
| 49 | + |
| 50 | + - name: Write clouds.yaml |
| 51 | + run: | |
| 52 | + mkdir -p ~/.config/openstack/ |
| 53 | + echo "${{ secrets[format('{0}_CLOUDS_YAML', env.CI_CLOUD)] }}" > ~/.config/openstack/clouds.yaml |
| 54 | + shell: bash |
34 | 55 |
|
35 |
| - - name: Use the downloaded artifact |
| 56 | + - name: Parse image name json |
36 | 57 | id: manifest
|
37 | 58 | run: |
|
38 |
| - IMAGE_ID=$(cat image-id.txt) |
39 |
| - IMAGE_NAME=$(cat image-name.txt) |
| 59 | + IMAGE_NAME=$(jq --arg version "${{ matrix.build }}" -r '.[$version]' "${{ env.JSON_PATH }}") |
40 | 60 | echo "image-name=${IMAGE_NAME}" >> "$GITHUB_OUTPUT"
|
41 |
| - echo "image-id=${IMAGE_ID}" >> "$GITHUB_OUTPUT" |
42 | 61 |
|
43 | 62 | - name: Download image
|
44 | 63 | run: |
|
|
70 | 89 | format: sarif
|
71 | 90 | output: "${{ steps.manifest.outputs.image-name }}.sarif"
|
72 | 91 | # turn off secret scanning to speed things up
|
| 92 | + env: |
| 93 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
73 | 94 |
|
74 | 95 | - name: Upload Trivy scan results to GitHub Security tab
|
75 | 96 | uses: github/codeql-action/upload-sarif@v3
|
|
87 | 108 | exit-code: '1'
|
88 | 109 | severity: 'CRITICAL'
|
89 | 110 | ignore-unfixed: true
|
| 111 | + env: |
| 112 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
0 commit comments