name: Run UI Tests on: workflow_dispatch: schedule: - cron: '0 12 * * *' jobs: build-for-ui-test-mac-os: if: github.repository == 'JetBrains/ideavim' runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: zulu java-version: 17 - name: Setup FFmpeg run: brew install ffmpeg # - name: Setup Gradle # uses: gradle/gradle-build-action@v2.4.2 - name: Build Plugin run: gradle :buildPlugin - name: Run Idea run: | mkdir -p build/reports gradle --no-configuration-cache runIdeForUiTests > build/reports/idea.log & - name: Wait for Idea started uses: jtalk/url-health-check-action@v3 with: url: http://127.0.0.1:8082 max-attempts: 20 retry-delay: 10s - name: Tests run: gradle :tests:ui-ij-tests:testUi - name: Move video if: always() run: mv tests/ui-ij-tests/video build/reports - name: Move sandbox logs if: always() run: mv build/idea-sandbox/IC-2024.1.2/log_runIdeForUiTests idea-sandbox-log - name: Save report if: always() uses: actions/upload-artifact@v4 with: name: ui-test-fails-report-mac path: | build/reports tests/ui-ij-tests/build/reports idea-sandbox-log # build-for-ui-test-linux: # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v2 # - name: Setup Java # uses: actions/setup-java@v2.1.0 # with: # distribution: zulu # java-version: 11 # - name: Build Plugin # run: gradle :buildPlugin # - name: Run Idea # run: | # export DISPLAY=:99.0 # Xvfb -ac :99 -screen 0 1920x1080x16 & # mkdir -p build/reports # gradle :runIdeForUiTests #> build/reports/idea.log # - name: Wait for Idea started # uses: jtalk/url-health-check-action@1.5 # with: # url: http://127.0.0.1:8082 # max-attempts: 15 # retry-delay: 30s # - name: Tests # run: gradle :testUi # - name: Save fails report # if: ${{ failure() }} # uses: actions/upload-artifact@v2 # with: # name: ui-test-fails-report-linux # path: | # ui-test-example/build/reports