| name: "Build" |
| |
| on: |
| push: |
| branches: |
| - "*" |
| pull_request: |
| workflow_dispatch: |
| inputs: |
| examplesRepo: |
| description: '(For non-main Examples) Artemis repo' |
| required: true |
| default: 'apache/artemis' |
| type: string |
| examplesRepoBranch: |
| description: '(For non-main Examples) Artemis branch' |
| required: true |
| default: 'main' |
| type: string |
| |
| env: |
| ARTEMIS_REPO: ${{ inputs.examplesRepo || 'apache/artemis' }} |
| ARTEMIS_BRANCH: ${{ inputs.examplesRepoBranch || 'main' }} |
| |
| jobs: |
| test: |
| name: Verify Examples |
| runs-on: ubuntu-22.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [ 17, 25 ] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| path: artemis-examples |
| |
| - name: Cache Maven Local Repo |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.m2/repository/ |
| key: ${{ runner.os }}-mvn-${{ hashFiles('artemis-examples/**/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 Repo (non-main Examples) |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| uses: actions/checkout@v4 |
| with: |
| repository: ${{ env.ARTEMIS_REPO }} |
| ref: ${{ env.ARTEMIS_BRANCH }} |
| path: artemis |
| |
| - name: Identify Artemis Version (non-main Examples) |
| id: identify-artemis-version |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis |
| CURRENT_ARTEMIS_BUILD_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) |
| echo "Current Artemis version: ${CURRENT_ARTEMIS_BUILD_VERSION}" |
| echo "artemis-build-version=${CURRENT_ARTEMIS_BUILD_VERSION}" >> $GITHUB_OUTPUT |
| |
| - name: Build Artemis (non-main Examples) |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis |
| mvn -s ../artemis-examples/.github/maven-settings.xml install -DskipTests -T1C |
| |
| - name: Identify Examples Version (non-main Examples) |
| id: identify-examples-version |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis-examples |
| CURRENT_EXAMPLES_BUILD_VERSION=$(grep -m 1 -Po '(?<=version>)[^<]+' pom.xml) |
| echo "Current Examples version: ${CURRENT_EXAMPLES_BUILD_VERSION}" |
| echo "examples-build-version=${CURRENT_EXAMPLES_BUILD_VERSION}" >> $GITHUB_OUTPUT |
| |
| - name: Set Examples Version to Artemis Version (non-main Examples) |
| if: ${{ ((github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main')) && steps.identify-artemis-version.outputs.artemis-build-version != steps.identify-examples-version.outputs.examples-build-version }} |
| run: | |
| cd artemis-examples |
| ./scripts/update-examples-version.sh ${{ steps.identify-artemis-version.outputs.artemis-build-version }} |
| git diff -U0 -p --stat |
| |
| - name: Verify Examples |
| run: | |
| cd artemis-examples |
| ./scripts/run-examples.sh |
| |
| - name: Clean Up Before Caching |
| run: | |
| rm -rf ~/.m2/repository/org/apache/activemq/tests |
| rm -rf ~/.m2/repository/org/apache/activemq/examples |
| rm -rf ~/.m2/repository/org/apache/artemis/tests |
| rm -rf ~/.m2/repository/org/apache/artemis/examples |
| if [ -d ~/.m2/repository/org/apache ]; then find ~/.m2/repository/org/apache -name "*-SNAPSHOT" -type d -prune -exec rm -r '{}' \; ; fi |
| |
| checks: |
| name: Compile Check |
| runs-on: ubuntu-22.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [ 17, 25 ] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| path: artemis-examples |
| |
| - name: Cache Maven Local Repo |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.m2/repository/ |
| key: ${{ runner.os }}-mvn-${{ hashFiles('artemis-examples/**/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 Repo (non-main Examples) |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| uses: actions/checkout@v4 |
| with: |
| repository: ${{ env.ARTEMIS_REPO }} |
| ref: ${{ env.ARTEMIS_BRANCH }} |
| path: artemis |
| |
| - name: Identify Artemis Version (non-main Examples) |
| id: identify-artemis-version |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis |
| CURRENT_ARTEMIS_BUILD_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) |
| echo "Current Artemis version: ${CURRENT_ARTEMIS_BUILD_VERSION}" |
| echo "artemis-build-version=${CURRENT_ARTEMIS_BUILD_VERSION}" >> $GITHUB_OUTPUT |
| |
| - name: Build Artemis (non-main Examples) |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis |
| mvn -s ../artemis-examples/.github/maven-settings.xml install -DskipTests -T1C |
| |
| - name: Identify Examples Version (non-main Examples) |
| id: identify-examples-version |
| if: ${{ (github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main') }} |
| run: | |
| cd artemis-examples |
| CURRENT_EXAMPLES_BUILD_VERSION=$(grep -m 1 -Po '(?<=version>)[^<]+' pom.xml) |
| echo "Current Examples version: ${CURRENT_EXAMPLES_BUILD_VERSION}" |
| echo "examples-build-version=${CURRENT_EXAMPLES_BUILD_VERSION}" >> $GITHUB_OUTPUT |
| |
| - name: Set Examples Version to Artemis Version (non-main Examples) |
| if: ${{ ((github.event_name == 'pull_request' && github.base_ref != 'main') || (github.event_name != 'pull_request' && github.ref != 'refs/heads/main')) && steps.identify-artemis-version.outputs.artemis-build-version != steps.identify-examples-version.outputs.examples-build-version }} |
| run: | |
| cd artemis-examples |
| ./scripts/update-examples-version.sh ${{ steps.identify-artemis-version.outputs.artemis-build-version }} |
| git diff -U0 -p --stat |
| |
| - name: Build Examples (JDK 25 / -Prelease) |
| if: matrix.java == '25' |
| run: | |
| cd artemis-examples |
| mvn -s .github/maven-settings.xml package -Prelease |
| |
| - name: Build Examples (JDK <25 / -Pexamples,noRun) |
| if: matrix.java != '25' |
| run: | |
| cd artemis-examples |
| mvn -s .github/maven-settings.xml package -Pexamples,noRun |
| |
| - name: Clean Up Before Caching |
| run: | |
| rm -rf ~/.m2/repository/org/apache/activemq/tests |
| rm -rf ~/.m2/repository/org/apache/activemq/examples |
| rm -rf ~/.m2/repository/org/apache/artemis/tests |
| rm -rf ~/.m2/repository/org/apache/artemis/examples |
| if [ -d ~/.m2/repository/org/apache ]; then find ~/.m2/repository/org/apache -name "*-SNAPSHOT" -type d -prune -exec rm -r '{}' \; ; fi |