Skip to content

[JEWEL-1058] Improve DefaultImageSourceResolver #362

[JEWEL-1058] Improve DefaultImageSourceResolver

[JEWEL-1058] Improve DefaultImageSourceResolver #362

Workflow file for this run

name: Jewel Checks
on:
pull_request:
paths:
- "platform/jewel/**"
defaults:
run:
working-directory: platform/jewel
jobs:
checks:
name: CI code checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Check out repository
- name: Set up JBR 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: jetbrains
cache: gradle
- name: Grant execute permission to gradlew
run: chmod +x gradlew
- name: Run :check task
# Run checks for all modules except the IDE plugin sample, as that is bound to have missing APIs issues
run: ./gradlew check --continue --no-daemon
- name: Annotate JUnit test failures
uses: mikepenz/action-junit-report@v5
if: failure()
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
annotate_only: true # A forked repo cannot write comments, so just do annotations
- name: Upload JUnit test reports
uses: actions/upload-artifact@v4
if: failure()
with:
name: junit-test-results
path: '**/build/test-results/test/TEST-*.xml'
retention-days: 7
- name: Run detekt tasks
# Run detekt checks for all modules except the IDE plugin sample, as that is bound to have missing APIs issues
run: ./gradlew detekt detektMain detektTest --continue --no-daemon
check_paths:
name: Check changed files
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
run_formalities: ${{ steps.filter.outputs.run_formalities }}
steps:
- uses: actions/checkout@v4
name: Check out repository
- uses: dorny/paths-filter@v3
name: Check which files are changed
id: filter
with:
filters: |
run_formalities:
- '!all(platform/jewel/ui/generated/org/jetbrains/jewel/ui/icons/AllIconsKeys.java)'
formalities:
name: PR formalities
runs-on: ubuntu-latest
needs: check_paths
if: needs.check_paths.outputs.run_formalities == 'true'
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
name: Check out repository
- name: Grant execute permission to validation scripts
run: chmod +x ./scripts/validate-commit-message.sh && chmod +x ./scripts/validate-pr-commits.sh
- name: Validate PR has single commit
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: ./scripts/validate-pr-commits.sh
- name: Validate commit message
env:
GH_TOKEN: ${{ github.token }}
JEWEL_YT_TOKEN: ${{ secrets.JEWEL_YT_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: ./scripts/validate-commit-message.sh
annotate_breaking_api_changes:
name: Annotate breaking API changes with IJP dumps
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# We need fetch-depth: '2' so we get HEAD~1 in case this is missing the PR token
fetch-depth: '2'
name: Check out repository
- name: Grant execute permission to the validation script
run: chmod +x ./scripts/annotate-api-dump-changes.main.kts
- name: Annotate breaking API changes
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GH_TOKEN: ${{ github.token }}
run: ./scripts/annotate-api-dump-changes.main.kts
check_ij_api_dumps:
name: Check that IJP API dumps are up-to-date
runs-on: ubuntu-latest
defaults:
run:
working-directory: .
steps:
- uses: actions/checkout@v4
name: Check out repository
- uses: actions/cache@v4
name: Cache for jps-bootstrap
with:
key: ${{ runner.os }}-jps-bootstrap-${{ hashFiles('platform/jps-bootstrap/**') }}
path: |
out
build/jps-bootstrap-work
build/download
- name: Grant execute permission to the validation script
run: chmod +x platform/jewel/scripts/check-api-dumps.main.kts
- name: Check that IJP API dumps are up-to-date
run: ./scripts/check-api-dumps.main.kts
working-directory: platform/jewel
metalava:
name: Check for breaking API changes with Metalava
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Check out repository
- name: Set up JBR 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: jetbrains
cache: gradle
- name: Grant execute permission to the Metalava script
run: chmod +x ./scripts/metalava-signatures.main.kts
- name: Grant execute permission to gradlew
run: chmod +x gradlew
- name: Annotate breaking API changes
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GH_TOKEN: ${{ github.token }}
run: ./scripts/metalava-signatures.main.kts validate