-
Notifications
You must be signed in to change notification settings - Fork 1
feat: enhance CI and smoke testing with checksum verification and modular job structure #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -13,8 +13,8 @@ env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | ||
|
|
||
| jobs: | ||
| cli-smoke: | ||
| name: CLI smoke (${{ matrix.os }}) | ||
| build-and-test: | ||
| name: Build & test (${{ matrix.os }}) | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
|
|
@@ -25,12 +25,10 @@ jobs: | |
| steps: | ||
| - uses: actions/checkout@v5 | ||
|
|
||
| - uses: graalvm/setup-graalvm@v1 | ||
| - uses: actions/setup-java@v4 | ||
| with: | ||
| distribution: graalvm-community | ||
| distribution: temurin | ||
| java-version: "21" | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| native-image-job-reports: "true" | ||
|
|
||
| - uses: gradle/actions/setup-gradle@v4 | ||
|
|
||
|
|
@@ -39,18 +37,72 @@ jobs: | |
| path: ~/.gradle/kast/intellij-distributions | ||
| key: idea-dist-${{ hashFiles('gradle/libs.versions.toml') }} | ||
|
|
||
| - name: Build and test Kast | ||
| - name: Test and build portable distribution | ||
| run: > | ||
| ./gradlew | ||
| ./gradlew -PjvmOnly | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 JVM-only build breaks smoke-installer.sh: installer expects native binary absent from distribution The CI build step now uses The two failing assertions
if [[ "$jvm_only" != "true" ]]; then
[[ -f "${release_dir}/bin/kast" ]] || die "Installed archive did not contain the kast native binary"
[[ -x "${installed_root}/bin/kast" ]] || die "Installed kast native binary is missing from ${installed_root}/bin"Prompt for agentsWas this helpful? React with 👍 or 👎 to provide feedback. |
||
| :analysis-api:test | ||
| :analysis-server:test | ||
| :backend-standalone:test | ||
| :kast:test | ||
| :kast:portableDistZip | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
|
|
||
| - name: Upload portable distribution | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: kast-portable-${{ matrix.os }} | ||
| path: kast/build/distributions/kast-*-portable.zip | ||
| if-no-files-found: error | ||
| retention-days: 1 | ||
|
|
||
| test-intellij-plugin: | ||
| name: IntelliJ plugin | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
|
|
||
| - uses: actions/setup-java@v4 | ||
| with: | ||
| distribution: temurin | ||
| java-version: "21" | ||
|
|
||
| - uses: gradle/actions/setup-gradle@v4 | ||
|
|
||
| - uses: actions/cache@v4 | ||
| with: | ||
| path: ~/.gradle/kast/intellij-distributions | ||
| key: idea-dist-${{ hashFiles('gradle/libs.versions.toml') }} | ||
|
|
||
| - name: Test and verify IntelliJ plugin | ||
| run: > | ||
| ./gradlew | ||
| :backend-intellij:test | ||
| :backend-intellij:buildPlugin | ||
| :backend-intellij:verifyPluginStructure | ||
| :backend-intellij:verifyPluginXmlPresent | ||
| :kast:test | ||
| :kast:portableDistZip | ||
|
|
||
| smoke-kast-cli: | ||
| name: Smoke CLI (${{ matrix.os }}) | ||
| runs-on: ${{ matrix.os }} | ||
| needs: build-and-test | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: | ||
| - ubuntu-latest | ||
| - macos-latest | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
|
|
||
| - uses: actions/setup-java@v4 | ||
| with: | ||
| distribution: temurin | ||
| java-version: "21" | ||
|
|
||
| - name: Download portable distribution | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: kast-portable-${{ matrix.os }} | ||
| path: kast/build/distributions | ||
|
|
||
| - name: Smoke portable Kast distribution | ||
| shell: bash | ||
|
|
@@ -77,7 +129,7 @@ jobs: | |
| eval-agent-routing: | ||
| name: Eval agent routing | ||
| runs-on: ubuntu-latest | ||
| needs: cli-smoke | ||
| needs: smoke-kast-cli | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
|
|
||
|
|
@@ -86,10 +138,21 @@ jobs: | |
| distribution: temurin | ||
| java-version: "21" | ||
|
|
||
| - uses: gradle/actions/setup-gradle@v4 | ||
| - name: Download portable distribution | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: kast-portable-ubuntu-latest | ||
| path: kast/build/distributions | ||
|
|
||
| - name: Build kast | ||
| run: ./gradlew --no-daemon :kast:installDist | ||
| - name: Prepare kast binary | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| dist_dir="$RUNNER_TEMP/kast-dist" | ||
| rm -rf "$dist_dir" | ||
| mkdir -p "$dist_dir" | ||
| unzip -q kast/build/distributions/kast-*-portable.zip -d "$dist_dir" | ||
| echo "KAST_BIN=$dist_dir/kast/kast" >> "$GITHUB_ENV" | ||
|
devin-ai-integration[bot] marked this conversation as resolved.
|
||
|
|
||
| - name: Run kast-routing evals | ||
| run: bash evals/harness/run-evals.sh --suite=kast-routing --format=json | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This still doesn't prove checksum enforcement.
The digest is computed from the same ZIP the installer later consumes, so this path stays green even if
install.shignoresassets[0].digestcompletely. Please add a negative case that tampers with the digest or asset and asserts the install fails before creating the target install tree.🤖 Prompt for AI Agents