3939 echo "release=true" >> "$GITHUB_OUTPUT"
4040 fi
4141
42+ compile :
43+ name : " Compile Extractor Pack for ${{ matrix.os }}"
44+ needs : [release-check]
45+
46+ runs-on : ${{ matrix.os }}
47+ strategy :
48+ fail-fast : false
49+ matrix :
50+ # TODO: Add windows-latest
51+ os : [ubuntu-latest, macos-latest]
52+
53+ if : ${{ needs.release-check.outputs.release == 'true' }}
54+ steps :
55+ - name : " Checkout"
56+ uses : actions/checkout@v5
57+ with :
58+ submodules : true
59+
60+ - name : " Set up Rust"
61+ uses : dtolnay/rust-toolchain@nightly
62+ if : ${{ matrix.os != 'windows-latest' }}
63+
64+ - name : " Build Extractor"
65+ if : ${{ matrix.os != 'windows-latest' }}
66+ env :
67+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
68+ run : ./scripts/create-extractor-pack.sh
69+
70+ - name : " Upload bundle artifact"
71+ uses : actions/upload-artifact@v4
72+ with :
73+ name : " extractor-bundle-${{ matrix.os }}"
74+ path : " ./extractor-pack"
75+
76+ bundle :
77+ name : " Bundle Extractor Pack"
78+ runs-on : ubuntu-latest
79+ needs : [compile]
80+ if : ${{ needs.release-check.outputs.release == 'true' }}
81+
82+ steps :
83+ - name : " Checkout"
84+ uses : actions/checkout@v5
85+ with :
86+ submodules : true
87+
88+ - name : " Downloadd all artifacts"
89+ uses : actions/download-artifact@v4
90+ with :
91+ path : " ./extractor-pack"
92+ merge-multiple : true
93+
94+ - name : " Publish Extractor Pack"
95+ if : github.ref == 'refs/heads/main'
96+ env :
97+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
98+ EXTRACTOR_NAME : " iac"
99+ run : |
100+ ./scripts/publish-extractor-pack.sh
42101
43102 queries :
44103 runs-on : ubuntu-latest
@@ -61,32 +120,24 @@ jobs:
61120 - name : " Check and Publish CodeQL Packs"
62121 env :
63122 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
123+ PACKS : ${{ matrix.packs }}
124+ ORG : ${{ github.repository_owner }}
64125 run : |
65- PACK_PATH=ql/${{ matrix.packs }}/qlpack.yml
126+ set -e
127+
128+ PACK_PATH="ql/${PACKS}/qlpack.yml"
129+ echo "[+] Pack Path :: $PACK_PATH"
130+
66131 CURRENT_VERSION=$(grep version $PACK_PATH | awk '{print $2}')
67132 PACK_FULLNAME=$(cat $PACK_PATH | grep "name:" | awk '{print $2}')
68133 PACK_NAME=$(echo $PACK_FULLNAME | awk -F '/' '{print $2}')
134+ echo "[+] Pack Name :: $PACK_NAME ($PACK_FULLNAME)"
69135
70- PUBLISHED_VERSION=$(gh api /orgs/advanced-security /packages/container/$PACK_NAME/versions --jq '.[0].metadata.container.tags[0]')
136+ PUBLISHED_VERSION=$(gh api /orgs/${ORG} /packages/container/$PACK_NAME/versions --jq '.[0].metadata.container.tags[0]')
71137 echo "Packs :: ${CURRENT_VERSION} -> ${PUBLISHED_VERSION}"
72138
73139 if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
74140 gh extension install github/gh-codeql
75- gh codeql pack install "ql/${{ matrix.packs } }"
76- gh codeql pack publish "ql/${{ matrix.packs } }"
141+ gh codeql pack install "ql/${PACKS }"
142+ gh codeql pack publish "ql/${PACKS }"
77143 fi
78-
79- compile :
80- runs-on : ubuntu-latest
81- needs : [release-check]
82- if : ${{ needs.release-check.outputs.release == 'true' }}
83-
84- steps :
85- - uses : actions/checkout@v5
86-
87- - name : " Publish Extractor Pack"
88- if : github.ref == 'refs/heads/main'
89- env :
90- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
91- run : |
92- ./scripts/publish-extractor-pack.sh
0 commit comments