Skip to content

Commit

Permalink
Merge branch 'spring-cloud:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
wind57 authored Jul 13, 2022
2 parents 9580444 + 797af02 commit 6613f78
Show file tree
Hide file tree
Showing 599 changed files with 21,904 additions and 5,428 deletions.
107 changes: 67 additions & 40 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,58 +22,65 @@ workflows:
build-then-test:
jobs:
- build
- test:
- fabric8_istio:
requires:
- build
- test:
requires:
- fabric8_istio
jobs:
test:
parallelism: 5 # parallel containers to split the tests among
machine:
image: ubuntu-2004:202201-02
image: ubuntu-2204:2022.04.1
environment:
_JAVA_OPTIONS: "-Xms1024m -Xmx2048m"
_SERVICE_OCCURENCE: 5
steps:
- run:
name: Install OpenJDK 17
name: testcontainers reuse support
command: |
wget -qO - https://adoptium.jfrog.io/adoptium/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptium.jfrog.io/adoptium/deb/
sudo apt-get update && sudo apt-get install temurin-17-jdk
sudo update-alternatives --set java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/temurin-17-jdk-amd64/bin/javac
java -version
# needed for .withReuse(true) to work
echo "testcontainers.reuse.enable=true" > ~/.testcontainers.properties
- checkout
- attach_workspace:
at: /tmp/docker
- run:
name: Load Controller Images From Workspace
command: |
VIEW=$(ls -l /tmp/docker/images)
echo "${VIEW}"
docker load -i /tmp/docker/images/spring-cloud-kubernetes-configuration-watcher.tar
docker load -i /tmp/docker/images/spring-cloud-kubernetes-discoveryserver.tar
docker load -i /tmp/docker/images/spring-cloud-kubernetes-configserver.tar
- run:
name: Run regular tests
command: |
CLASSNAMES=$(circleci tests glob "**/src/test/**/**.java" | grep -v 'spring-cloud-kubernetes-integration-tests' \
###########################################################################################################################
################################################# Build test support dependency ###########################################
cd spring-cloud-kubernetes-test-support
.././mvnw clean install
cd ..
###########################################################################################################################
##################################################### Split and run tests #################################################
CLASSNAMES=$(circleci tests glob "**/src/test/**/**.java" | grep -v 'Fabric8IstioIT' \
| xargs grep -l '@Test' \
| sed 's/.*src.test.java.//g' | sed 's@/@.@g' \
| sed 's/.\{5\}$//' \
| circleci tests split --split-by=timings)
echo $CLASSNAMES
TEST_ARG=$(echo $CLASSNAMES | sed 's/ /,/g')
echo $TEST_ARG
./mvnw -s .settings.xml -DfailIfNoTests=false -DtestsToRun=$TEST_ARG -e clean org.jacoco:jacoco-maven-plugin:prepare-agent test -U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
./mvnw -s .settings.xml -DfailIfNoTests=false -DtestsToRun=$TEST_ARG -e clean org.jacoco:jacoco-maven-plugin:prepare-agent install \
-U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
mkdir -p $HOME/artifacts/junit/
find . -type f -regex ".*/spring-cloud-*.*/target/*.*" -exec cp {} $HOME/artifacts/ \;
find . -type f -regex ".*/target/.*-reports/.*" -exec cp {} $HOME/artifacts/junit/ \;
bash <(curl -s https://codecov.io/bash)
- kube-orb/install-kubectl
- attach_workspace:
at: ./
- run:
name: Load Controller Images From Workspace
command: |
docker load -i ./docker-images/spring-cloud-kubernetes-configuration-watcher.tar
docker load -i ./docker-images/spring-cloud-kubernetes-discoveryserver.tar
docker load -i ./docker-images/spring-cloud-kubernetes-configserver.tar
- run:
name: Run Kind Integration Tests
command: |
cd spring-cloud-kubernetes-integration-tests
./run.sh
- run:
name: "Aggregate test results"
when: always
Expand All @@ -89,20 +96,11 @@ jobs:
destination: testartifacts
build:
machine:
image: ubuntu-2004:202201-02
image: ubuntu-2204:2022.04.1
environment:
_JAVA_OPTIONS: "-Xms2g -Xmx2g"
_SERVICE_OCCURENCE: 5
steps:
- run:
name: Install OpenJDK 17
command: |
wget -qO - https://adoptium.jfrog.io/adoptium/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptium.jfrog.io/adoptium/deb/
sudo apt-get update && sudo apt-get install temurin-17-jdk
sudo update-alternatives --set java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/temurin-17-jdk-amd64/bin/javac
java -version
- checkout
- restore_cache:
keys:
Expand All @@ -122,17 +120,46 @@ jobs:
command: |
TAG=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
echo $TAG
mkdir docker-images
docker save -o docker-images/spring-cloud-kubernetes-configuration-watcher.tar docker.io/springcloud/spring-cloud-kubernetes-configuration-watcher:${TAG}
docker save -o docker-images/spring-cloud-kubernetes-discoveryserver.tar docker.io/springcloud/spring-cloud-kubernetes-discoveryserver:${TAG}
docker save -o docker-images/spring-cloud-kubernetes-configserver.tar docker.io/springcloud/spring-cloud-kubernetes-configserver:${TAG}
mkdir -p /tmp/docker/images/
docker save -o /tmp/docker/images/spring-cloud-kubernetes-configuration-watcher.tar docker.io/springcloud/spring-cloud-kubernetes-configuration-watcher:${TAG}
docker save -o /tmp/docker/images/spring-cloud-kubernetes-discoveryserver.tar docker.io/springcloud/spring-cloud-kubernetes-discoveryserver:${TAG}
docker save -o /tmp/docker/images/spring-cloud-kubernetes-configserver.tar docker.io/springcloud/spring-cloud-kubernetes-configserver:${TAG}
VIEW=$(ls -l /tmp/docker/images)
echo "${VIEW}"
- persist_to_workspace:
root: ./
paths: docker-images
root: /tmp/docker/
paths:
- images
- save_cache:
paths:
- ~/.m2
key: spring-cloud-kubernetes-{{ .Branch }}-{{ checksum "pom.xml" }}
fabric8_istio:
machine:
image: ubuntu-2204:2022.04.1
steps:
- checkout
- restore_cache:
keys:
- spring-cloud-kubernetes-{{ .Branch }}-{{ checksum "pom.xml" }}
- spring-cloud-kubernetes-{{ .Branch }}
- spring-cloud-kubernetes
- run:
name: Run fabric8 istio test
command: |
# we need to run some test, so that K3s container is started and then all other instances will re-use this one.
# otherwise (since we use static ports) there might be two instances starting at the same time, and ports might conflict
###########################################################################################################################
######################################## Build test support dependency and Run test #######################################
cd spring-cloud-kubernetes-test-support
.././mvnw clean install
cd ..
cd spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-istio-it/
../.././mvnw clean install
cd ../..
notify:
webhooks:
- url: https://webhooks.gitter.im/e/22e6bb4eb945dd61ba54
6 changes: 0 additions & 6 deletions .circleci/istio-test-namespace.yml

This file was deleted.

42 changes: 42 additions & 0 deletions .github/workflows/maven.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Build

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '17'
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Build with Maven
run: ./mvnw -s .settings.xml clean org.jacoco:jacoco-maven-plugin:prepare-agent install -U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Publish Test Report
uses: mikepenz/action-junit-report@v2
if: always() # always run even if the previous step fails
with:
report_paths: '**/surefire-reports/TEST-*.xml'
- name: Archive code coverage results
uses: actions/upload-artifact@v2
with:
name: surefire-reports
path: '**/surefire-reports/*'
Loading

0 comments on commit 6613f78

Please sign in to comment.