| name: "Build" |
| |
| on: |
| push: |
| pull_request: |
| workflow_dispatch: |
| inputs: |
| examplesRepo: |
| description: 'The examples repo to use' |
| required: true |
| default: 'apache/activemq-artemis-examples' |
| type: string |
| examplesRepoBranch: |
| description: 'Branch in examples repo' |
| required: true |
| default: 'development' |
| type: string |
| |
| env: |
| EXAMPLES_REPO: ${{ inputs.examplesRepo || 'apache/activemq-artemis-examples' }} |
| EXAMPLES_BRANCH: ${{ inputs.examplesRepoBranch || 'development' }} |
| |
| |
| jobs: |
| test: |
| name: Test (${{ matrix.java }}) |
| runs-on: ubuntu-22.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [ 11, 17, 21 ] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| path: activemq-artemis |
| |
| - name: Cache Maven Local Repo |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.m2/repository/ |
| key: ${{ runner.os }}-mvn-${{ hashFiles('activemq-artemis/**/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-mvn- |
| |
| - name: Install JDK ${{ matrix.java }} |
| uses: actions/setup-java@v4 |
| with: |
| java-version: ${{ matrix.java }} |
| distribution: 'temurin' |
| |
| # use 'install' so smoke-tests will work |
| # By setting anything to org.apache.activemq.artemis.core.io.aio.AIOSequentialFileFactory.DISABLED we are disabling libaio loading on the testsuite |
| - name: Fast Tests |
| run: | |
| cd activemq-artemis |
| mvn -s .github/maven-settings.xml -Dorg.apache.activemq.artemis.core.io.aio.AIOSequentialFileFactory.DISABLED=AnythingNotNull -Pfast-tests -Pcompatibility-tests install |
| |
| - name: Clean Up Before Caching |
| run: | |
| rm -rf ~/.m2/repository/org/apache/activemq/tests |
| rm -rf ~/.m2/repository/org/apache/activemq/examples |
| if [ -d ~/.m2/repository/org/apache/activemq ]; then find ~/.m2/repository/org/apache/activemq -name "*-SNAPSHOT" -type d -prune -exec rm -r '{}' \; ; fi |
| |
| checks: |
| name: Checks (${{ matrix.java }}) |
| runs-on: ubuntu-22.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [ 11, 17, 21 ] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| path: activemq-artemis |
| |
| - name: Cache Maven Local Repo |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.m2/repository/ |
| key: ${{ runner.os }}-mvn-${{ hashFiles('activemq-artemis/**/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-mvn- |
| |
| - name: Install JDK ${{ matrix.java }} |
| uses: actions/setup-java@v4 |
| with: |
| java-version: ${{ matrix.java }} |
| distribution: 'temurin' |
| |
| - name: Checkout Artemis Examples Repo |
| uses: actions/checkout@v4 |
| with: |
| repository: ${{ env.EXAMPLES_REPO }} |
| ref: ${{ env.EXAMPLES_BRANCH }} |
| path: activemq-artemis-examples |
| |
| - name: Build Main |
| run: | |
| cd activemq-artemis |
| mvn -s .github/maven-settings.xml -DskipTests -Derrorprone -Pdev -Pjmh install |
| |
| - name: Set Examples Version to Artemis Version |
| run: | |
| cd activemq-artemis |
| CURRENT_ARTEMIS_BUILD_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) |
| echo "Current Artemis version: ${CURRENT_ARTEMIS_BUILD_VERSION}" |
| cd ../activemq-artemis-examples |
| ./scripts/update-examples-version.sh ${CURRENT_ARTEMIS_BUILD_VERSION} |
| |
| - name: Build Examples (JDK11 / -Prelease) |
| if: matrix.java == '11' |
| run: | |
| cd activemq-artemis-examples |
| mvn -s ../activemq-artemis/.github/maven-settings.xml install -Prelease |
| |
| - name: Build Examples (JDK >11 / -Pexamples,noRun) |
| if: matrix.java != '11' |
| run: | |
| cd activemq-artemis-examples |
| mvn -s ../activemq-artemis/.github/maven-settings.xml install -Pexamples,noRun |
| |
| - name: Javadoc Check (JDK11 / -Prelease) |
| if: matrix.java == '11' |
| run: | |
| cd activemq-artemis |
| mvn -s .github/maven-settings.xml javadoc:javadoc -Prelease -DskipWebsiteDocGeneration=true -DskipWebsiteJavadocGeneration=true |
| |
| - name: Javadoc Check (JDK >11) |
| if: matrix.java != '11' |
| run: | |
| cd activemq-artemis |
| mvn -s .github/maven-settings.xml javadoc:javadoc |
| |
| - name: Website Content Check (JDK11 only / -Prelease) |
| if: matrix.java == '11' |
| run: | |
| cd activemq-artemis |
| mvn -s .github/maven-settings.xml clean install -DskipTests -Prelease -am -pl "artemis-website" |
| |
| - name: Clean Up Before Caching |
| run: | |
| rm -rf ~/.m2/repository/org/apache/activemq/tests |
| rm -rf ~/.m2/repository/org/apache/activemq/examples |
| if [ -d ~/.m2/repository/org/apache/activemq ]; then find ~/.m2/repository/org/apache/activemq -name "*-SNAPSHOT" -type d -prune -exec rm -r '{}' \; ; fi |