feat: adds support for parsing Aggregates.sort stage INTELLIJ-127 #734
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Quality Check | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
permissions: | |
contents: write | |
pull-requests: write | |
checks: write | |
jobs: | |
changelog-check: | |
name: 'Changelog Check' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: remove label not matching title - fix | |
if: | | |
startsWith(github.event.pull_request.title, 'fix:') || | |
startsWith(github.event.pull_request.title, 'fix(') | |
uses: actions-ecosystem/action-remove-labels@v1 | |
with: | |
labels: feat | |
- name: remove label not matching title - feat | |
if: | | |
startsWith(github.event.pull_request.title, 'feat:') || | |
startsWith(github.event.pull_request.title, 'feat(') | |
uses: actions-ecosystem/action-remove-labels@v1 | |
with: | |
labels: fix | |
- name: add label based on title - fix | |
if: | | |
startsWith(github.event.pull_request.title, 'fix:') || | |
startsWith(github.event.pull_request.title, 'fix(') | |
uses: actions-ecosystem/action-add-labels@v1 | |
with: | |
labels: fix | |
- name: add label based on title - feat | |
if: | | |
startsWith(github.event.pull_request.title, 'feat:') || | |
startsWith(github.event.pull_request.title, 'feat(') | |
uses: actions-ecosystem/action-add-labels@v1 | |
with: | |
labels: feature | |
- name: add label based on title - chore | |
if: | | |
startsWith(github.event.pull_request.title, 'chore:') || | |
startsWith(github.event.pull_request.title, 'chore(') | |
uses: actions-ecosystem/action-add-labels@v1 | |
with: | |
labels: no release notes | |
- name: Verify Changed files | |
uses: tj-actions/verify-changed-files@v20 | |
id: verify-changelog-files | |
with: | |
files: | | |
CHANGELOG.md | |
- uses: mheap/github-action-required-labels@v1 | |
if: steps.verify-changed-files.outputs.files_changed == 'false' | |
with: | |
mode: minimum | |
count: 1 | |
labels: "no release notes" | |
catalog-check: | |
name: 'Catalog Updates Check' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
dependency-graph: 'generate-and-submit' | |
dependency-graph-continue-on-failure: false | |
gradle-home-cache-cleanup: true | |
- name: Run Dependency Updates | |
run: | | |
./gradlew --quiet --console=plain dependencyUpdates | |
style-check: | |
name: 'Style Check' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-home-cache-cleanup: true | |
- name: Run Linter | |
run: | | |
./gradlew --quiet --console=plain ktlintCheck | |
- name: Push Checkstyle report | |
uses: jwgmeligmeyling/[email protected] | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
path: '**/*Check.xml' | |
unit-tests: | |
name: 'Unit and Integration Tests' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-home-cache-cleanup: true | |
- name: Setup Docker (for Test Containers) | |
run: | | |
sudo apt update -y | |
sudo apt install -y docker docker-compose | |
- name: Run Test Suite | |
run: | | |
./gradlew --stacktrace --console=plain check | |
- name: Publish Test Report | |
uses: mikepenz/action-junit-report@v4 | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
report_paths: '**/build/test-results/test/TEST-*.xml' | |
- uses: madrapps/[email protected] | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
paths: "**/testCodeCoverageReport.xml" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
min-coverage-overall: 70 | |
min-coverage-changed-files: 70 | |
title: "Coverage Report" | |
update-comment: true | |
continue-on-error: true | |
pass-emoji: "✅" | |
fail-emoji: "🚫" | |
functional-tests: | |
name: 'UI Tests' | |
runs-on: ubuntu-latest | |
needs: | |
- catalog-check | |
- style-check | |
- unit-tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-home-cache-cleanup: true | |
- name: Restore IDEA Cached Indexes | |
uses: actions/cache/restore@v4 | |
with: | |
key: 'intellij-indexes-cache' | |
path: | | |
packages/jetbrains-plugin/build/idea-sandbox/system-test/index | |
packages/jetbrains-plugin/build/idea-sandbox/system/index | |
- name: Prepare License Key | |
env: | |
JB_TEST_KEY: ${{ secrets.JB_TEST_KEY }} | |
run: | | |
mkdir -p packages/jetbrains-plugin/build/idea-sandbox/config-uiTest | |
echo "$JB_TEST_KEY" | base64 -d > packages/jetbrains-plugin/build/idea-sandbox/config-uiTest/idea.key | |
- name: Start UI Test Environment | |
run: | | |
export DISPLAY=:99.0 | |
Xvfb -ac :99 -screen 0 1920x1080x24 & | |
sleep 10 | |
mkdir -p packages/jetbrains-plugin/build/reports | |
./gradlew :packages:jetbrains-plugin:runIdeForUiTests > packages/jetbrains-plugin/build/reports/idea.log & | |
- name: Wait for IDE to start | |
uses: jtalk/url-health-check-action@v3 | |
with: | |
url: "http://127.0.0.1:8082" | |
max-attempts: 15 | |
retry-delay: 30s | |
- name: Run UI Tests | |
run: | | |
export DISPLAY=:99.0 | |
./gradlew --quiet --console=plain :packages:jetbrains-plugin:uiTest | |
- uses: actions/upload-artifact@v4 | |
name: Upload UI Test Failures | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
name: ui-test-failures | |
path: | | |
**/build/reports/**/*.html | |
**/build/reports/**/*.log | |
**/build/reports/**/*.png | |
**/build/idea-sandbox/system/**/*.log | |
**/build/idea-sandbox/system-test/**/*.log | |
**/video/**/*.avi | |
- name: Cache IDEA Indexes | |
uses: actions/cache/save@v4 | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
key: 'intellij-indexes-cache' | |
path: | | |
packages/jetbrains-plugin/build/idea-sandbox/system-test/index | |
packages/jetbrains-plugin/build/idea-sandbox/system/index | |
- name: Publish Test Report | |
uses: mikepenz/action-junit-report@v4 | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
report_paths: '**/build/test-results/test/TEST-*.xml' | |
fitness-check: | |
name: "Fitness Check" | |
runs-on: ubuntu-latest | |
needs: | |
- unit-tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-home-cache-cleanup: true | |
- name: Performance Tests | |
run: | | |
./gradlew --quiet --console=plain ":packages:jetbrains-plugin:jmh" | |
- name: JMH Benchmark Action | |
uses: kitlangton/jmh-benchmark-action@main | |
with: | |
jmh-output-path: build/reports/jmh/results.json | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
fail-on-regression: true | |
# the typo is on purpose, it's like this in the plugin | |
failue-threshold: -5 | |
verify-plugin: | |
name: "Verify Plugin" | |
runs-on: ubuntu-latest | |
needs: | |
- fitness-check | |
- functional-tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
gradle-home-cache-cleanup: true | |
- name: Verify Plugin | |
run: | | |
./gradlew ":packages:jetbrains-plugin:verifyPlugin" |