You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2021/03/22 07:21:56 UTC
[camel-quarkus-examples] branch master updated: Speed up the CI
build apache/camel-quarkus#2147
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git
The following commit(s) were added to refs/heads/master by this push:
new 124d345 Speed up the CI build apache/camel-quarkus#2147
124d345 is described below
commit 124d3450a95d90742d7b8e8b68de71d7833f6af8
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Mar 19 13:11:30 2021 +0000
Speed up the CI build apache/camel-quarkus#2147
---
.github/test-categories.yaml | 37 ++++++++++++++++++
.github/workflows/ci-build.yaml | 87 +++++++++++++++++++++++++++++++++++++++--
2 files changed, 120 insertions(+), 4 deletions(-)
diff --git a/.github/test-categories.yaml b/.github/test-categories.yaml
new file mode 100644
index 0000000..67af38c
--- /dev/null
+++ b/.github/test-categories.yaml
@@ -0,0 +1,37 @@
+
+#
+# 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.
+#
+
+# Association of categories and camel-quarkus-examples maven modules. Used by GitHub workflows.
+examples-file:
+ - file-bindy-ftp
+ - file-split-log-xml
+examples-observability:
+ - health
+ - observability
+examples-http:
+ - http-log
+ - rest-json
+examples-timer-log-1:
+ - timer-log
+ - timer-log-cdi
+examples-timer-log-2:
+ - timer-log-kotlin
+ - timer-log-main
+examples-timer-log-3:
+ - timer-log-spring
+ - timer-log-xml
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index d5b2518..24b7d15 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -43,10 +43,14 @@ env:
LANG: en_US.UTF-8
MAVEN_OPTS: -Xmx3000m
MAVEN_ARGS: -V -ntp -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -e
+ TESTCONTAINERS_RYUK_DISABLED: true
jobs:
- mvn-verify:
+ initial-mvn-install:
+ if: github.repository == 'apache/camel-quarkus-examples'
runs-on: ubuntu-latest
+ outputs:
+ matrix: ${{ steps.set-itest-matrix.outputs.matrix }}
steps:
- name: Set up JDK 11
uses: AdoptOpenJDK/install-jdk@v1
@@ -60,7 +64,7 @@ jobs:
git clone --depth 1 --branch master https://github.com/apache/camel-quarkus.git ${{ runner.temp }}/camel-quarkus \
&& cd ${{ runner.temp }}/camel-quarkus \
&& echo "Current Camel Quarkus commit:" $(git rev-parse HEAD) \
- && ./mvnw ${MAVEN_ARGS} clean install -DskipTests -Denforcer.skip -Dquarkus.build.skip
+ && ./mvnw ${MAVEN_ARGS} clean install -Dquickly
- name: mvn license:check formatter:validate impsort:check cq:sync-example-properties
run: |
./mvnw-for-each.sh ${MAVEN_ARGS} \
@@ -68,9 +72,84 @@ jobs:
net.revelc.code.formatter:formatter-maven-plugin:validate \
net.revelc.code:impsort-maven-plugin:check \
org.l2x6.cq:cq-maven-plugin:0.25.0:sync-example-properties
- - name: mvn clean verify -Pnative,docker
+ - name: Validate test categories YAML
run: |
- ./mvnw-for-each.sh ${MAVEN_ARGS} clean verify -Pnative,docker
+ VALID=true
+ for EXAMPLE in $(dirname $(grep -l "camel-quarkus-examples-" $(find . -name pom.xml)) | cut -f2 -d'/'); do
+ if ! grep ${EXAMPLE} .github/test-categories.yaml > /dev/null; then
+ echo "Project ${EXAMPLE} is not listed in .github/test-categories.yaml"
+ VALID=false
+ fi
+ done
+
+ if [[ ${VALID} != "true" ]]; then
+ exit 1
+ fi
+ - name: Build Camel Quarkus Examples
+ run: |
+ ./mvnw-for-each.sh ${MAVEN_ARGS} clean install -DskipTests -Dquarkus.build.skip -Dimpsort.skip -Dformatter.skip
+ - name: Fail if there are uncommitted changes
+ shell: bash
+ run: |
+ [[ -z $(git status --porcelain) ]] || { echo 'There are uncommitted changes'; git status; exit 1; }
+ - name: Tar Maven Repo
+ shell: bash
+ run: |
+ tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
+ - name: Persist Maven Repo
+ uses: actions/upload-artifact@v2
+ with:
+ name: maven-repo
+ path: ${{ runner.temp }}/maven-repo.tgz
+ retention-days: 1
+ - name: Setup Integration Test Matrix
+ id: set-itest-matrix
+ run: |
+ sudo wget -O /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/download/3.2.1/yq_linux_amd64"
+ sudo chmod +x /usr/local/bin/yq
+ CATEGORIES=$(cat .github/test-categories.yaml | yq r - --printMode p "*." | sed "s/\(.*\)/'\1'/" | sed ':a;N;$!ba;s/\n/,/g')
+ echo "::set-output name=matrix::{'category': [${CATEGORIES}]}"
+
+ integration-tests:
+ name: Integration Tests - ${{matrix.category}}
+ needs: initial-mvn-install
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Set up JDK 11
+ uses: AdoptOpenJDK/install-jdk@v1
+ with:
+ version: '11'
+ - name: Download Maven Repo
+ uses: actions/download-artifact@v2
+ with:
+ name: maven-repo
+ path: ..
+ - name: Extract Maven Repo
+ shell: bash
+ run: |
+ tar -xzf ../maven-repo.tgz -C ~
+ - name: Install yq
+ run: |
+ sudo wget -O /usr/local/bin/yq "https://github.com/mikefarah/yq/releases/download/3.2.1/yq_linux_amd64"
+ sudo chmod +x /usr/local/bin/yq
+ - name: Integration Tests
+ run: |
+ EXAMPLE_PROJECTS=""
+ for EXAMPLE in $(cat .github/test-categories.yaml | yq r - "${{ matrix.category }}.*"); do
+ if [ "${EXAMPLE}" == "-" ]; then
+ continue
+ fi
+
+ ./mvnw ${MAVEN_ARGS} clean verify \
+ -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
+ -Pnative,docker \
+ -f "${EXAMPLE}/pom.xml"
+ done
- name: Fail if there are uncommitted changes
shell: bash
run: |