1
1
name : Microsoft CodeQL Pack Publish
2
- description : Fetches the latest version of CodeQL
3
2
4
- # on:
5
- # push:
6
- # branches:
7
- # - dilan/publish-opensource-packs
3
+ on :
4
+ push :
5
+ branches :
6
+ - dilan/publish-opensource-packs
8
7
9
8
jobs :
10
9
codeqlversion :
@@ -25,12 +24,12 @@ jobs:
25
24
CURRENT_TAG=$(git describe --tags --abbrev=0 --match 'codeql-cli/v*' $CURRENT_COMMIT)
26
25
CODEQL_VERSION="${CURRENT_TAG#codeql-cli/}"
27
26
echo "CODEQL_VERSION=$CODEQL_VERSION" >> $GITHUB_OUTPUT
28
- publish :
27
+ publishlibs :
29
28
needs : codeqlversion
30
29
runs-on : ubuntu-latest
31
30
strategy :
32
31
matrix :
33
- language : ['csharp', 'cpp', 'java', 'javascript', 'python', 'ruby', 'go', 'rust', 'swift', ' powershell']
32
+ language : ['powershell']
34
33
steps :
35
34
- name : Checkout repository
36
35
uses : actions/checkout@v4
@@ -42,12 +41,12 @@ jobs:
42
41
gh codeql set-version "${{ needs.codeqlversion.outputs.codeql_version }}"
43
42
env :
44
43
GITHUB_TOKEN : ${{ github.token }}
45
- - name : Publish OS Microsoft CodeQL Pack
44
+ - name : Publish OS Microsoft CodeQL Lib Pack
46
45
shell : bash
47
46
run : |
48
47
# 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 "
51
50
VERSION_COUNT=$(ls -d "$PACK_DIR"/*/ | wc -l)
52
51
[[ "$VERSION_COUNT" -ne 1 ]] && { echo "Expected exactly one version in $PACK_DIR, but found $VERSION_COUNT. Exiting."; exit 1; }
53
52
@@ -59,26 +58,85 @@ jobs:
59
58
NEXT_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
60
59
61
60
# 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"
64
64
65
65
# 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
68
68
version: $NEXT_VERSION
69
69
extractor: $LANGUAGE
70
70
groups:
71
71
- $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
75
77
$DEPENDENCIES
78
+ $DATAEXTENSIONS
79
+ warnOnImplicitThis: true
76
80
EOF
77
81
78
82
# 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 "
81
85
env :
82
86
LANGUAGE : ${{ matrix.language }}
83
87
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 }}
84
142
0 commit comments