39
39
echo "release=true" >> "$GITHUB_OUTPUT"
40
40
fi
41
41
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
42
101
43
102
queries :
44
103
runs-on : ubuntu-latest
@@ -61,32 +120,24 @@ jobs:
61
120
- name : " Check and Publish CodeQL Packs"
62
121
env :
63
122
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
123
+ PACKS : ${{ matrix.packs }}
124
+ ORG : ${{ github.repository_owner }}
64
125
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
+
66
131
CURRENT_VERSION=$(grep version $PACK_PATH | awk '{print $2}')
67
132
PACK_FULLNAME=$(cat $PACK_PATH | grep "name:" | awk '{print $2}')
68
133
PACK_NAME=$(echo $PACK_FULLNAME | awk -F '/' '{print $2}')
134
+ echo "[+] Pack Name :: $PACK_NAME ($PACK_FULLNAME)"
69
135
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]')
71
137
echo "Packs :: ${CURRENT_VERSION} -> ${PUBLISHED_VERSION}"
72
138
73
139
if [ "$PUBLISHED_VERSION" != "$CURRENT_VERSION" ]; then
74
140
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 }"
77
143
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