Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
354 changes: 354 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,354 @@
# Main CI
name: Java CI with Gradle

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:

configure_sonar:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'

steps:
- name: Save Sonar config on PR
run: |
mkdir -p ./prInfo
echo ${{ github.event.number }} > ./prInfo/PR
echo ${{ github.base_ref }} > ./prInfo/base_ref
echo ${{ github.head_ref }} > ./prInfo/head_ref
- uses: actions/upload-artifact@v4
with:
name: prInfo
path: prInfo/

mainidewindow_idestatusbar_screenshot:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
sleep 10
cd src/test-project
mkdir -p build/reports
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.idestatusbar.*
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.mainidewindow.idestatusbar.*
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.mainidewindow.idestatusbar.*
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-mainidewindow-idestatusbar-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-mainidewindow-idestatusbar-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-mainidewindow-idestatusbar-steplogger-logs
path: src/test-project/build/test-results/*
if: always()

dialogs_information_settings:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.*
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.*
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.*
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-information-settings-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-information-settings-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-information-settings-steplogger-logs
path: src/test-project/build/test-results/*
if: always()

dialogs_project_manipulation:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11 # Java 11 is only used for test NewProjectDialogTest/setProjectSdkIfAvailableTest
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
cache: 'gradle'
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.*
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.*
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.*
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-project-manipulation-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-project-manipulation-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-dialogs-project-manipulation-steplogger-logs
path: src/test-project/build/test-results/*
if: always()

dialogs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-dialogs-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-dialogs-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-dialogs-steplogger-logs
path: src/test-project/build/test-results/*
if: always()

mainidewindow-menubar:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.*
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.*
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.*
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-menubar-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-menubar-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-menubar-steplogger-logs
path: src/test-project/build/test-results/*
if: always()


mainidewindow-toolwindowspane:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
cache: 'gradle'
- name: Run integration tests on Linux
run: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x24 &
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.*
if: runner.os == 'Linux'
- name: Run integration tests on Windows
run: |
cd src\test-project
chmod +x gradlew.bat
.\gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.*
if: runner.os == 'Windows'
- name: Run integration tests on MacOS
run: |
cd src/test-project
chmod +x gradlew
./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.*
if: runner.os == 'macOS'
- name: Archiving tests reports
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-toolwindowspane-test-reports
path: src/test-project/build/reports/tests/*
if: always()
- name: Archiving screenshots
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-toolwindowspane-screenshots
path: src/test-project/build/screenshots/*
if: always()
- name: Archiving StepLogger logs
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-mainidewindow-toolwindowspane-steplogger-logs
path: src/test-project/build/test-results/*
if: always()
Loading
Loading