Forward merge to master #726
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: All Unit and Integration Tests | |
on: | |
push: | |
pull_request: | |
types: [assigned, opened, synchronize, reopened, edited] | |
workflow_dispatch: | |
inputs: | |
ref: | |
description: Branch/tag/hash to use (defaults to master) | |
required: false | |
default: master | |
jobs: | |
description: Jobs to run (comma-separated, defaults to all) | |
required: false | |
jobs: | |
log-params: | |
name: Log Params | |
runs-on: ubuntu-20.04 | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
steps: | |
- run: echo "Github event inputs [${{ toJson(github.event.inputs) }}]." | |
- run: echo "Head commit message [${{ github.event.head_commit.message }}]." | |
# check path to bundled Maven executable; it should be then used in ATLAS_MVN | |
- run: mvn -version | |
prepare: | |
name: Prepare Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
unit-tests-matrix: ${{ steps.set-matrix.outputs.unit-tests-matrix }} | |
jira-it-matrix: ${{ steps.set-matrix.outputs.jira-it-matrix }} | |
confluence-it-matrix: ${{ steps.set-matrix.outputs.confluence-it-matrix }} | |
bitbucket-it-matrix: ${{ steps.set-matrix.outputs.bitbucket-it-matrix }} | |
# TODO: Remove these flags when new major jira (10.x) is released | |
skip-jira-its: ${{ steps.set-matrix.outputs.skip-jira-its }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- id: set-matrix | |
run: bin/build/prepare-matrices.sh | |
unit-tests: | |
name: Unit Tests | |
needs: prepare | |
runs-on: ubuntu-20.04 | |
# around 800 Mb of dependencies need to be loaded; it may take long first time until it's cached | |
timeout-minutes: 30 | |
if: "(github.event.inputs.jobs == '' || contains(github.event.inputs.jobs, 'unit-tests')) && !contains(github.event.head_commit.message, '[skip ci]')" | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.unit-tests-matrix) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: adopt | |
- run: bin/build/install-plugin-sdk.sh | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: maven-unit | |
- run: bin/build/override-plugin-sdk-maven.sh | |
- run: bin/build/run-unit-tests.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: unit-tests-coverage-java-${{ matrix.java-version }} | |
path: '**/target/site/jacoco/**' | |
integration-tests-jira: | |
name: Jira | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 30 | |
if: (github.event.inputs.jobs == '' || contains(github.event.inputs.jobs, 'integration-tests-jira')) && !needs.prepare.outputs.skip-jira-its | |
needs: [prepare, unit-tests] | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.jira-it-matrix) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: adopt | |
- run: bin/build/install-plugin-sdk.sh | |
- run: bin/build/override-plugin-sdk-maven.sh | |
- run: bin/build/install-int-test-libs.sh | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: maven-unit | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository/com/atlassian/jira | |
key: maven-integration-jira-${{ matrix.jira-version }} | |
- run: bin/build/install-common-modules.sh | |
- run: VERSION=${{ matrix.jira-version }} bin/build/run-jira-its.sh | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: webdriver-screenshots-jira-${{ matrix.jira-version }} | |
path: jira-slack-server-integration/jira-slack-server-integration-plugin/target/webdriverTests/** | |
integration-tests-confluence: | |
name: Confluence | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 30 | |
if: github.event.inputs.jobs == '' || contains(github.event.inputs.jobs, 'integration-tests-confluence') | |
needs: [prepare, unit-tests] | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.confluence-it-matrix) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: adopt | |
- run: bin/build/install-plugin-sdk.sh | |
- run: bin/build/override-plugin-sdk-maven.sh | |
- run: bin/build/install-int-test-libs.sh | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: maven-unit | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository/com/atlassian/confluence | |
key: maven-integration-confluence-${{ matrix.confluence-version }} | |
- run: bin/build/install-common-modules.sh | |
- run: VERSION=${{ matrix.confluence-version }} bin/build/run-confluence-its.sh | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: webdriver-screenshots-confluence-${{ matrix.confluence-version }}-java-${{ matrix.java-version }} | |
path: confluence-slack-server-integration-plugin/target/webdriverTests/** | |
integration-tests-bitbucket: | |
name: Bitbucket | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 30 | |
if: github.event.inputs.jobs == '' || contains(github.event.inputs.jobs, 'integration-tests-bitbucket') | |
needs: [prepare, unit-tests] | |
strategy: | |
matrix: ${{ fromJSON(needs.prepare.outputs.bitbucket-it-matrix) }} | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
# Dec 13, 2022 | |
# latest Bitbucket 8.6.1 doesn't support latest git 2.38.1 installed on the Ubuntu 20 image Github provides | |
# install last supported git - 2.37.4; remove this trick once Bitbucket implements support for latest git | |
# https://confluence.atlassian.com/bitbucketserver/supported-platforms-776640981.html#Supportedplatforms-dvcsDVCS | |
- run: bin/build/install-supported-git.sh | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: adopt | |
- run: bin/build/install-plugin-sdk.sh | |
- run: bin/build/override-plugin-sdk-maven.sh | |
- run: bin/build/install-int-test-libs.sh | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: maven-unit | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository/com/atlassian/bitbucket | |
key: maven-integration-bitbucket-${{ matrix.bitbucket-version }} | |
- run: bin/build/install-common-modules.sh | |
- run: VERSION=${{ matrix.bitbucket-version }} bin/build/run-bitbucket-its.sh | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: webdriver-screenshots-bitbucket-${{ matrix.bitbucket-version }}-java-${{ matrix.java-version }} | |
path: bitbucket-slack-server-integration-plugin/target/webdriverTests/** |