Skip to content

chore: prepare for 4.0.0 #202

chore: prepare for 4.0.0

chore: prepare for 4.0.0 #202

# Copyright 2018 The original authors.
#
# Licensed 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: Downstream projects compatibility check
env:
MAVEN_ARGS: -B -e
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
types: [ labeled ]
jobs:
dekorate:
name: Build Latest Dekorate
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'downstream-check') || github.event_name == 'push' && github.ref == 'refs/heads/main' }}
outputs:
dekorate-version: ${{ steps.dekorate-version-step.outputs.dekorate-version }}
strategy:
matrix:
java: [ 11 ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
- name: Build Dekorate
run: ./mvnw ${MAVEN_ARGS} clean install
- id: dekorate-version-step
name: Export Dekorate Version
run: echo "::set-output name=dekorate-version::$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)"
quarkus-main:
name: Quarkus Main
runs-on: ubuntu-latest
needs: dekorate
strategy:
matrix:
java: [11]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
- name: Build Quarkus
run: |
git clone https://github.com/quarkusio/quarkus
cd quarkus
./mvnw ${MAVEN_ARGS} clean install -Dquickly -Ddekorate.version=${{needs.dekorate.outputs.dekorate-version}}
- name: Tests Quarkus Kubernetes Tests
run: |
cd quarkus/extensions/kubernetes
mvn ${MAVEN_ARGS} clean install -Ddekorate.version=${{needs.dekorate.outputs.dekorate-version}}
- name: Tests Quarkus Kubernetes Integration Tests
run: |
cd quarkus/integration-tests/kubernetes
mvn ${MAVEN_ARGS} clean verify -Ddekorate.version=${{needs.dekorate.outputs.dekorate-version}}
snowdrop-examples-in-k8s:
name: Snowdrop Examples in Kubernetes
runs-on: ubuntu-latest
needs: dekorate
strategy:
matrix:
java: [11]
example: [ rest-http-example, crud-example, cache-example ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
- name: Kubernetes KinD Cluster
uses: container-tools/kind-action@v2
with:
version: v0.11.1
registry: true
- name: Run
run: |
K8S_NAMESPACE=${{ matrix.example }}-k8s
kubectl create namespace $K8S_NAMESPACE
git clone https://github.com/snowdrop/${{ matrix.example }}
cd ${{ matrix.example }}
./run_tests_with_dekorate_in_k8s.sh $KIND_REGISTRY $K8S_NAMESPACE -Ddekorate.version=${{needs.dekorate.outputs.dekorate-version}}
kubectl delete namespace $K8S_NAMESPACE
snowdrop-examples-with-helm-in-k8s:
name: Snowdrop Examples with Helm in Kubernetes
runs-on: ubuntu-latest
needs: dekorate
if: ${{ false }} # disable until we can upgrade these snowdrop examples to the latest Dekorate version
strategy:
matrix:
java: [11]
example: [ rest-http-example, crud-example, cache-example ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
- name: Kubernetes KinD Cluster
uses: container-tools/kind-action@v2
with:
version: v0.11.1
registry: true
- name: Run
run: |
K8S_NAMESPACE=${{ matrix.example }}-helm
kubectl create namespace $K8S_NAMESPACE
git clone https://github.com/snowdrop/${{ matrix.example }}
cd ${{ matrix.example }}
./run_tests_with_generated_helm_in_k8s.sh $KIND_REGISTRY $K8S_NAMESPACE -Ddekorate.version=${{needs.dekorate.outputs.dekorate-version}}
kubectl delete namespace $K8S_NAMESPACE