Skip to content

Bump version to 2.3.1-dev (#165) #921

Bump version to 2.3.1-dev (#165)

Bump version to 2.3.1-dev (#165) #921

Workflow file for this run

name: Build
on:
push:
branches: [main]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: πŸ“¦ Build
runs-on: ubuntu-latest
steps:
- name: 🧹 Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main
with:
tool-cache: false
large-packages: false
- name: πŸ“₯ Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: β˜• Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: zulu
java-version: 21
- name: 🐘 Set up Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6
- name: πŸ”¨ Build plugin
run: ./gradlew --console=plain buildPlugin
- name: πŸ“ Prepare artifact
id: artifact
run: |
cd ${{ github.workspace }}/build/distributions
FILENAME=`ls *.zip`
unzip "$FILENAME" -d content
echo "filename=${FILENAME:0:-4}" >> $GITHUB_OUTPUT
- name: πŸ“€ Upload artifact
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: ${{ steps.artifact.outputs.filename }}
path: ./build/distributions/content/*/*
verify:
name: πŸ” Verify (${{ matrix.ide }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ide: ${{ github.event_name == 'pull_request' && fromJson('["PY"]') || fromJson('["PY"]') }}
steps:
- name: 🧹 Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main
with:
tool-cache: false
large-packages: false
android: true
dotnet: true
haskell: true
docker-images: true
- name: πŸ“₯ Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: β˜• Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: zulu
java-version: 21
- name: 🐘 Set up Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6
- name: πŸ’Ύ Cache verifier IDEs
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: ~/.pluginVerifier/ides
key: plugin-verifier-ides-${{ matrix.ide }}-${{ hashFiles('gradle.properties') }}
- name: βœ… Run verification
run: ./gradlew verifyPlugin -PverifyIde=${MATRIX_IDE}
env:
MATRIX_IDE: ${{ matrix.ide }}
- name: πŸ“€ Upload results
if: ${{ always() }}
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: pluginVerifier-result-${{ matrix.ide }}
path: ${{ github.workspace }}/build/reports/pluginVerifier
lint:
name: 🧹 Lint
runs-on: ubuntu-latest
steps:
- name: 🧹 Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main
with:
tool-cache: false
large-packages: false
- name: πŸ“₯ Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: β˜• Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: zulu
java-version: 21
- name: 🐘 Set up Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6
- name: πŸ” Run linter
run: ./gradlew ktlintCheck
test:
name: πŸ§ͺ Unit tests
runs-on: ubuntu-latest
steps:
- name: 🧹 Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main
with:
tool-cache: false
large-packages: false
- name: πŸ“₯ Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: β˜• Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: zulu
java-version: 21
- name: 🐘 Set up Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6
- name: βœ… Run tests with coverage
run: ./gradlew test koverVerify
ui-test:
name: πŸ–₯️ UI tests
runs-on: ubuntu-latest
steps:
- name: 🧹 Free disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # main
with:
tool-cache: false
large-packages: false
- name: πŸ“₯ Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: β˜• Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: zulu
java-version: 21
- name: 🐘 Set up Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6
- name: πŸ–₯️ Run UI tests
run: |
export DISPLAY=:99.0
Xvfb :99 -screen 0 1920x1080x24 &
./gradlew runIdeForUiTests &
echo "Waiting for IDE to start..."
timeout 180 bash -c 'until curl -s http://127.0.0.1:8082 > /dev/null 2>&1; do sleep 2; done' || { echo "IDE failed to start"; exit 1; }
echo "IDE is ready"
./gradlew uiTest
kill %1 %2 || true