Skip to content

Commit a6fe1b5

Browse files
author
Dilan Bhalla
committed
open source package publish
1 parent a88f3ce commit a6fe1b5

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Fetch CodeQL
2+
description: Fetches the latest version of CodeQL
3+
4+
on:
5+
push:
6+
branches:
7+
- dilan/publish-opensource-packs
8+
9+
jobs:
10+
codeqlversion:
11+
runs-on: ubuntu-latest
12+
outputs:
13+
codeql_version: ${{ steps.set_codeql_version.outputs.codeql_version }}
14+
steps:
15+
- name: Set CodeQL Version
16+
id: set_codeql_version
17+
run: |
18+
CURRENT_COMMIT=$(git rev-list -1 HEAD)
19+
CURRENT_TAG=$(git describe --tags --abbrev=0 --match 'codeql-cli/v*' $CURRENT_COMMIT)
20+
CURRENT_VERSION="${CURRENT_TAG#codeql-cli/}"
21+
echo "CODEQL_VERSION=$CURRENT_TAG" >> $GITHUB_OUTPUT
22+
publish:
23+
needs: codeqlversion
24+
runs-on: ubuntu-latest
25+
strategy:
26+
matrix:
27+
language: ['csharp', 'cpp', 'java', 'javascript', 'python', 'ruby', 'go', 'rust', 'swift', 'powershell']
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v2
31+
- name: Prepare Publish
32+
shell: bash
33+
run: |
34+
# Download latest qlpack
35+
gh codeql pack download "microsoft/$LANGUAGE-queries"
36+
PACK_DIR="$HOME/.codeql/packages/microsoft/$LANGUAGE"
37+
VERSION_COUNT=$(ls -d "$PACK_DIR"/*/ | wc -l)
38+
[[ "$VERSION_COUNT" -ne 1 ]] && { echo "Expected exactly one version in $PACK_DIR, but found $VERSION_COUNT. Exiting."; exit 1; }
39+
40+
# Increment version
41+
CURRENT_VERSION=$(ls -v "$PACK_DIR" | tail -n 1)
42+
MAJOR=$(echo "$CURRENT_VERSION" | cut -d. -f1)
43+
MINOR=$(echo "$CURRENT_VERSION" | cut -d. -f2)
44+
PATCH=$(echo "$CURRENT_VERSION" | cut -d. -f3)
45+
NEXT_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
46+
47+
# Extract dependencies from the existing qlpack.yml before deleting
48+
DEPENDENCIES=$(yq '.dependencies' "$LANGUAGE/ql/src/qlpack.yml" 2>/dev/null || echo "")
49+
rm -f "$LANGUAGE/ql/src/qlpack.yml" "$LANGUAGE/ql/src/qlpack.lock"
50+
51+
# Create new qlpack.yml with modified content
52+
cat <<EOF > "$LANGUAGE/ql/src/qlpack.yml"
53+
name: microsoft/$LANGUAGE-queries
54+
version: $NEXT_VERSION
55+
groups:
56+
- $LANGUAGE
57+
- queries
58+
suites: microsoft-suites
59+
defaultSuiteFile: microsoft-suites/sdl-required.qls
60+
$DEPENDENCIES
61+
EOF
62+
63+
cat "$LANGUAGE/ql/src/qlpack.yml"
64+
env:
65+
LANGUAGE: ${{ matrix.language }}
66+
- name: Prepare Publish
67+
shell: bash
68+
run: |
69+
echo "___________________________________________________________"
70+
cat "$LANGUAGE/ql/src/qlpack.yml"
71+
echo "___________________________________________________________"
72+
gh pack publish --dry-run "$LANGUAGE/ql/src"
73+
env:
74+
GITHUB_TOKEN: ${{ secrets.PACKAGE_PUBLISH }}
75+
LANGUAGE: ${{ matrix.language }}

0 commit comments

Comments
 (0)