|
1 |
| -name: Build |
| 1 | +name: Build with Kubernetes |
2 | 2 |
|
3 | 3 | env:
|
4 | 4 | MAVEN_ARGS: -V -ntp -e
|
5 | 5 |
|
6 | 6 | on:
|
7 | 7 | workflow_call:
|
| 8 | + inputs: |
| 9 | + kube-version: |
| 10 | + type: string |
| 11 | + required: true |
8 | 12 |
|
9 | 13 | jobs:
|
| 14 | + set_up_kubernetes: |
| 15 | + name: Set up Kubernetes ${{ inputs.kube-version }} |
| 16 | + runs-on: ubuntu-latest |
| 17 | + steps: |
| 18 | + - uses: actions/checkout@v4 |
| 19 | + |
| 20 | + - name: Set up Minikube |
| 21 | + uses: manusa/actions-setup-minikube@v2.13.1 |
| 22 | + with: |
| 23 | + minikube version: 'v1.34.0' |
| 24 | + kubernetes version: '${{ inputs.kube-version }}' |
| 25 | + driver: 'docker' |
| 26 | + github token: ${{ secrets.GITHUB_TOKEN }} |
| 27 | + |
| 28 | + - name: Save minikube directory |
| 29 | + id: minikube |
| 30 | + run: | |
| 31 | + echo "minikube-dir=$MINIKUBE_HOME" >> $GITHUB_OUTPUT |
| 32 | +
|
| 33 | + - name: Upload minikube |
| 34 | + uses: actions/upload-artifact@v4 |
| 35 | + with: |
| 36 | + name: minikube-${{ inputs.kube-version }} |
| 37 | + path: ${{ steps.minikube.outputs.minikube-dir }} |
| 38 | + include-hidden-files: true |
| 39 | + |
10 | 40 | integration_tests:
|
| 41 | + name: "JDK: ${{ matrix.java }}, IT category: ${{ matrix.it-category }}" |
| 42 | + needs: set_up_kubernetes |
11 | 43 | strategy:
|
12 | 44 | matrix:
|
13 | 45 | java: [ 17, 21 ]
|
14 |
| - kubernetes: [ 'v1.29.12','1.30.8', '1.31.4', '1.32.0' ] |
15 | 46 | it-category: [ 'baseapi', 'dependent', 'workflow' ]
|
16 | 47 | uses: ./.github/workflows/integration-tests.yml
|
17 | 48 | with:
|
| 49 | + kube-version: ${{ inputs.kube-version }} |
18 | 50 | java-version: ${{ matrix.java }}
|
19 |
| - kube-version: ${{ matrix.kubernetes }} |
20 | 51 | it-category: ${{ matrix.it-category }}
|
21 | 52 |
|
22 | 53 | http_client_tests:
|
| 54 | + name: "JDK: ${{ matrix.java }}, IT category: ${{ matrix.it-category }}, HTTP client: ${{ matrix.httpclient }}" |
| 55 | + needs: set_up_kubernetes |
23 | 56 | strategy:
|
24 | 57 | matrix:
|
25 | 58 | java: [ 17, 21 ]
|
26 |
| - kubernetes: [ 'v1.29.12','1.30.8', '1.31.4', '1.32.0' ] |
27 | 59 | it-category: [ 'baseapi' ]
|
28 | 60 | httpclient: [ 'vertx', 'jdk', 'jetty' ]
|
29 | 61 | uses: ./.github/workflows/integration-tests.yml
|
30 | 62 | with:
|
| 63 | + kube-version: ${{ inputs.kube-version }} |
31 | 64 | java-version: ${{ matrix.java }}
|
32 |
| - kube-version: ${{ matrix.kubernetes }} |
33 | 65 | it-category: ${{ matrix.it-category }}
|
34 | 66 | http-client: ${{ matrix.httpclient }}
|
35 | 67 |
|
36 | 68 | special_integration_tests:
|
| 69 | + name: "Special integration tests (${{ matrix.java }})" |
| 70 | + needs: set_up_kubernetes |
37 | 71 | runs-on: ubuntu-latest
|
38 | 72 | strategy:
|
39 | 73 | matrix:
|
|
47 | 81 | java-version: ${{ matrix.java }}
|
48 | 82 | - name: Run Special Integration Tests
|
49 | 83 | run: ./mvnw ${MAVEN_ARGS} -B package -P minimal-watch-timeout-dependent-it --file pom.xml
|
| 84 | + |
| 85 | + delete_kubernetes: |
| 86 | + needs: [ integration_tests, http_client_tests, special_integration_tests ] |
| 87 | + if: always() |
| 88 | + name: Delete Kubernetes ${{ inputs.kube-version }} artifact |
| 89 | + runs-on: ubuntu-latest |
| 90 | + steps: |
| 91 | + - uses: geekyeggo/delete-artifact@v5 |
| 92 | + with: |
| 93 | + name: minikube-${{ inputs.kube-version }} |
0 commit comments