chore: revert changelog and fix release to stable #77
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: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- 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: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Run Linter | |
run: | | |
./gradlew --quiet --console=plain spotlessApply | |
unit-tests: | |
name: 'Unit Tests' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Run Test Suite | |
run: | | |
./gradlew --quiet --console=plain "clean" "cleanTest" "unitTest" | |
- 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' | |
- name: Generate Coverage Report | |
run: | | |
./gradlew --quiet --console=plain "jacocoTestReport" -x "packages:jetbrains-plugin:uiTest" | |
- uses: actions/upload-artifact@v4 | |
name: Upload Unit Test Coverage | |
with: | |
name: unit-test-coverage | |
path: "**/jacocoTestReport.xml" | |
functional-tests: | |
name: 'Functional & 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: 'zulu' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Integration Tests | |
run: | | |
./gradlew --quiet --console=plain "clean" ":packages:jetbrains-plugin:cleanTest" ":packages:jetbrains-plugin:test" | |
- 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 | |
**/video/**/*.avi | |
- 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' | |
- name: Generate Coverage Report | |
run: | | |
./gradlew --quiet --console=plain "jacocoTestReport" | |
- uses: actions/upload-artifact@v4 | |
name: Upload Functional Test Coverage | |
with: | |
name: functional-test-coverage | |
path: "**/jacocoTestReport.xml" | |
test-coverage: | |
name: 'Test Coverage' | |
runs-on: ubuntu-latest | |
needs: | |
- unit-tests | |
- functional-tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- uses: madrapps/[email protected] | |
with: | |
paths: "**/jacocoTestReport.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: "🚫" | |
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: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- 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 | |
- test-coverage | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Verify Plugin | |
run: | | |
./gradlew ":packages:jetbrains-plugin:verifyPlugin" |