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
29 changes: 29 additions & 0 deletions .github/actions/setup-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

name: Read environment

description: |
Reads the file .github/workflows/.env and registers all entries in ${GITHUB_ENV}

runs:
using: composite

steps:
- name: read-env
shell: bash
run: cat .github/workflows/.env >> ${GITHUB_ENV}
9 changes: 9 additions & 0 deletions .github/workflows/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
JAR_ARTIFACT_NAME=jars

JAVA_DISTRIBUTION=temurin
JAVA_VERSION=17

PR_NUMBER_ARTIFACT_NAME=pr-number

TEST_REPORTS_ARTIFACT_NAME=test-reports
TEST_REPORTS_NAME=Citrus Tests
80 changes: 66 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# limitations under the License.
# ---------------------------------------------------------------------------

name: build
name: Build

on:
pull_request:
Expand All @@ -36,28 +36,80 @@ on:
- 'KEYS'
- 'LICENSE'
- 'NOTICE'
env:
JAVA_DISTRIBUTION: will-be-read-from-env-file
JAVA_VERSION: will-be-read-from-env-file
JAR_ARTIFACT_NAME: will-be-read-from-env-file
TEST_REPORTS_ARTIFACT_NAME: will-be-read-from-env-file
PR_NUMBER_ARTIFACT_NAME: will-be-read-from-env-file

permissions:
actions: write
checks: write
pull-requests: write

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- name: Set up JDK 17
uses: AdoptOpenJDK/install-jdk@v1
with:
version: '17'
- name: Checkout code
uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
uses: actions/checkout@v4

- name: Setup environment variables
uses: ./.github/actions/setup-env

- name: Set up JDK ${{ env.JAVA_DISTRIBUTION}} ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
cache: 'maven'
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.JAVA_VERSION }}

- name: Info
run: |
java -version
mvn -version
./mvnw -version
docker --version

- name: Build
run: |
mvn --no-transfer-progress install
./mvnw \
--activate-profiles docker,skip-docker-stop \
--batch-mode \
--no-transfer-progress \
verify

- name: Upload JARs
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
if-no-files-found: error
name: ${{ env.JAR_ARTIFACT_NAME }}
path: |
**/*.jar
retention-days: 2

- name: Upload test report
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
if-no-files-found: error
name: ${{ env.TEST_REPORTS_ARTIFACT_NAME }}
path: |
**/target/failsafe-reports/TEST*.xml
**/target/citrus-remote/junitreports/TEST*.xml
retention-days: 2

- name: Get PR number
id: get-pr-number
if: ${{ always() && github.event_name == 'pull_request' }}
run: |
echo "${{ github.event.number }}" > "pr-number.txt"

- name: Upload PR number
uses: actions/upload-artifact@v4
if: ${{ always() && github.event_name == 'pull_request' }}
with:
name: ${{ env.PR_NUMBER_ARTIFACT_NAME }}
path: pr-number.txt
47 changes: 47 additions & 0 deletions .github/workflows/pr-comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

name: Comment on PR

on:
pull_request_target:
branches:
- main
paths-ignore:
- '**.adoc'
- '**.md'
- 'KEYS'
- 'LICENSE'
- 'NOTICE'

permissions:
pull-requests: write

jobs:
comment:
runs-on: ubuntu-latest

steps:
- name: (Re)create comment
uses: turing85/publish-report@v2
with:
github-token: ${{ github.token }}
comment-message-recreate: |
## 🚦Reports 🚦
Reports will be posted here as they get available.
comment-message-pr-number: ${{ github.event.number }}
recreate-comment: true
69 changes: 69 additions & 0 deletions .github/workflows/pr-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

name: Build report

on:
workflow_run:
workflows:
- "build"
types:
- completed

permissions:
actions: write
checks: write
pull-requests: write

env:
TEST_REPORTS_ARTIFACT_NAME: will-be-read-from-env-file
PR_NUMBER_ARTIFACT_NAME: will-be-read-from-env-file
TEST_REPORTS_NAME: will-be-read-from-env-file

jobs:
report:
if: ${{ github.event.workflow_run.event == 'pull_request' }}
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup environment variables
uses: ./.github/actions/setup-env

- name: Download ${{ env.PR_NUMBER_ARTIFACT_NAME }}
uses: actions/download-artifact@v4
with:
github-token: ${{ github.token }}
name: ${{ env.PR_NUMBER_ARTIFACT_NAME }}
run-id: ${{ github.event.workflow_run.id }}

- name: Set PR number
id: set-pr-number
run: |
echo "pr-number=$(cat pr-number.txt)" >> "${GITHUB_OUTPUT}"
rm -rf pr-number.txt

- name: Publish reports
uses: turing85/publish-report@v2
with:
comment-message-pr-number: ${{ steps.set-pr-number.outputs.pr-number }}
download-artifact-name: ${{ env.TEST_REPORTS_ARTIFACT_NAME }}
download-artifact-run-id: ${{ github.event.workflow_run.id }}
report-name: ${{ env.TEST_REPORTS_NAME }}
report-path: '**/target/**/TEST*.xml'
Loading