11name : Microsoft CodeQL Pack Publish
2- description : Fetches the latest version of CodeQL
32
4- # on:
5- # push:
6- # branches:
7- # - dilan/publish-opensource-packs
3+ on :
4+ push :
5+ branches :
6+ - dilan/publish-opensource-packs
87
98jobs :
109 codeqlversion :
@@ -25,12 +24,12 @@ jobs:
2524 CURRENT_TAG=$(git describe --tags --abbrev=0 --match 'codeql-cli/v*' $CURRENT_COMMIT)
2625 CODEQL_VERSION="${CURRENT_TAG#codeql-cli/}"
2726 echo "CODEQL_VERSION=$CODEQL_VERSION" >> $GITHUB_OUTPUT
28- publish :
27+ publishlibs :
2928 needs : codeqlversion
3029 runs-on : ubuntu-latest
3130 strategy :
3231 matrix :
33- language : ['csharp', 'cpp', 'java', 'javascript', 'python', 'ruby', 'go', 'rust', 'swift', ' powershell']
32+ language : ['powershell']
3433 steps :
3534 - name : Checkout repository
3635 uses : actions/checkout@v4
@@ -42,12 +41,12 @@ jobs:
4241 gh codeql set-version "${{ needs.codeqlversion.outputs.codeql_version }}"
4342 env :
4443 GITHUB_TOKEN : ${{ github.token }}
45- - name : Publish OS Microsoft CodeQL Pack
44+ - name : Publish OS Microsoft CodeQL Lib Pack
4645 shell : bash
4746 run : |
4847 # Download latest qlpack
49- gh codeql pack download "microsoft/$LANGUAGE-queries "
50- PACK_DIR="$HOME/.codeql/packages/microsoft/$LANGUAGE-queries "
48+ gh codeql pack download "microsoft/$LANGUAGE-all "
49+ PACK_DIR="$HOME/.codeql/packages/microsoft/$LANGUAGE-all "
5150 VERSION_COUNT=$(ls -d "$PACK_DIR"/*/ | wc -l)
5251 [[ "$VERSION_COUNT" -ne 1 ]] && { echo "Expected exactly one version in $PACK_DIR, but found $VERSION_COUNT. Exiting."; exit 1; }
5352
@@ -59,26 +58,85 @@ jobs:
5958 NEXT_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
6059
6160 # Extract dependencies from the existing qlpack.yml before deleting
62- DEPENDENCIES=$(yq 'select(has("dependencies")) | .dependencies | {"dependencies": .}' "$LANGUAGE/ql/src/qlpack.yml" 2>/dev/null)
63- rm -f "$LANGUAGE/ql/src/qlpack.yml" "$LANGUAGE/ql/src/qlpack.lock"
61+ DEPENDENCIES=$(yq 'select(has("dependencies")) | .dependencies | {"dependencies": .}' "$LANGUAGE/ql/lib/qlpack.yml" 2>/dev/null)
62+ DATAEXTENSIONS=$(yq 'select(has("dataExtensions")) | .dataExtensions | {"dataExtensions": .}' "$LANGUAGE/ql/lib/qlpack.yml" 2>/dev/null)
63+ rm -f "$LANGUAGE/ql/lib/qlpack.yml" "$LANGUAGE/ql/lib/qlpack.lock"
6464
6565 # Create new qlpack.yml with modified content
66- cat <<EOF > "$LANGUAGE/ql/src /qlpack.yml"
67- name: microsoft/$LANGUAGE-queries
66+ cat <<EOF > "$LANGUAGE/ql/lib /qlpack.yml"
67+ name: microsoft/$LANGUAGE-all
6868 version: $NEXT_VERSION
6969 extractor: $LANGUAGE
7070 groups:
7171 - $LANGUAGE
72- - queries
73- suites: microsoft-suites
74- defaultSuiteFile: codeql-suites/csharp-code-scanning.qls
72+ - microsoft-all
73+ dbscheme: semmlecode.$LANGUAGE.dbscheme
74+ extractor: $LANGUAGE
75+ library: true
76+ upgrades: upgrades
7577 $DEPENDENCIES
78+ $DATAEXTENSIONS
79+ warnOnImplicitThis: true
7680 EOF
7781
7882 # Publish pack
79- cat "$LANGUAGE/ql/src /qlpack.yml"
80- gh codeql pack publish "$LANGUAGE/ql/src "
83+ cat "$LANGUAGE/ql/lib /qlpack.yml"
84+ gh codeql pack publish "$LANGUAGE/ql/lib "
8185 env :
8286 LANGUAGE : ${{ matrix.language }}
8387 GITHUB_TOKEN : ${{ secrets.PACKAGE_PUBLISH }}
88+ # publish:
89+ # needs: codeqlversion
90+ # runs-on: ubuntu-latest
91+ # strategy:
92+ # matrix:
93+ # language: ['csharp', 'cpp', 'java', 'javascript', 'python', 'ruby', 'go', 'rust', 'swift', 'powershell']
94+ # steps:
95+ # - name: Checkout repository
96+ # uses: actions/checkout@v4
97+ # - name: Install CodeQL
98+ # shell: bash
99+ # run: |
100+ # gh extension install github/gh-codeql
101+ # gh codeql download "${{ needs.codeqlversion.outputs.codeql_version }}"
102+ # gh codeql set-version "${{ needs.codeqlversion.outputs.codeql_version }}"
103+ # env:
104+ # GITHUB_TOKEN: ${{ github.token }}
105+ # - name: Publish OS Microsoft CodeQL Pack
106+ # shell: bash
107+ # run: |
108+ # # Download latest qlpack
109+ # gh codeql pack download "microsoft/$LANGUAGE-queries"
110+ # PACK_DIR="$HOME/.codeql/packages/microsoft/$LANGUAGE-queries"
111+ # VERSION_COUNT=$(ls -d "$PACK_DIR"/*/ | wc -l)
112+ # [[ "$VERSION_COUNT" -ne 1 ]] && { echo "Expected exactly one version in $PACK_DIR, but found $VERSION_COUNT. Exiting."; exit 1; }
113+
114+ # # Increment version
115+ # CURRENT_VERSION=$(ls -v "$PACK_DIR" | tail -n 1)
116+ # MAJOR=$(echo "$CURRENT_VERSION" | cut -d. -f1)
117+ # MINOR=$(echo "$CURRENT_VERSION" | cut -d. -f2)
118+ # PATCH=$(echo "$CURRENT_VERSION" | cut -d. -f3)
119+ # NEXT_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
120+
121+ # # Extract dependencies from the existing qlpack.yml before deleting
122+ # DEPENDENCIES=$(yq 'select(has("dependencies")) | .dependencies | {"dependencies": .}' "$LANGUAGE/ql/src/qlpack.yml" 2>/dev/null)
123+ # rm -f "$LANGUAGE/ql/src/qlpack.yml" "$LANGUAGE/ql/src/qlpack.lock"
124+
125+ # # Create new qlpack.yml with modified content
126+ # cat <<EOF > "$LANGUAGE/ql/src/qlpack.yml"
127+ # name: microsoft/$LANGUAGE-queries
128+ # version: $NEXT_VERSION
129+ # extractor: $LANGUAGE
130+ # groups:
131+ # - $LANGUAGE
132+ # - queries
133+ # $DEPENDENCIES
134+ # EOF
135+
136+ # # Publish pack
137+ # cat "$LANGUAGE/ql/src/qlpack.yml"
138+ # gh codeql pack publish "$LANGUAGE/ql/src"
139+ # env:
140+ # LANGUAGE: ${{ matrix.language }}
141+ # GITHUB_TOKEN: ${{ secrets.PACKAGE_PUBLISH }}
84142
0 commit comments