Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: GH actions revert to use less Minikube downloads #2713

Merged
merged 1 commit into from
Feb 28, 2025
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
60 changes: 6 additions & 54 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,69 +5,31 @@ env:

on:
workflow_call:
inputs:
kube-version:
type: string
required: true

jobs:
set_up_kubernetes:
name: Set up Kubernetes ${{ inputs.kube-version }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Minikube
uses: manusa/[email protected]
with:
minikube version: 'v1.34.0'
kubernetes version: '${{ inputs.kube-version }}'
driver: 'docker'
github token: ${{ secrets.GITHUB_TOKEN }}

- name: Save minikube directory
id: minikube
run: |
echo "minikube-dir=$MINIKUBE_HOME" >> $GITHUB_OUTPUT

- name: Upload minikube
uses: actions/upload-artifact@v4
with:
name: minikube-${{ inputs.kube-version }}
path: ${{ steps.minikube.outputs.minikube-dir }}
include-hidden-files: true

integration_tests:
name: "JDK: ${{ matrix.java }}, IT category: ${{ matrix.it-category }}"
needs: set_up_kubernetes
strategy:
matrix:
java: [ 17, 21 ]
it-category: [ 'baseapi', 'dependent', 'workflow' ]
kubernetes: [ 'v1.29.12','1.30.8', '1.31.4', '1.32.0' ]
uses: ./.github/workflows/integration-tests.yml
with:
kube-version: ${{ inputs.kube-version }}
java-version: ${{ matrix.java }}
it-category: ${{ matrix.it-category }}
kube-version: ${{ matrix.kubernetes }}

http_client_tests:
name: "JDK: ${{ matrix.java }}, IT category: ${{ matrix.it-category }}, HTTP client: ${{ matrix.httpclient }}"
needs: set_up_kubernetes
httpclient-tests:
strategy:
matrix:
java: [ 17, 21 ]
it-category: [ 'baseapi' ]
httpclient: [ 'vertx', 'jdk', 'jetty' ]
uses: ./.github/workflows/integration-tests.yml
with:
kube-version: ${{ inputs.kube-version }}
java-version: ${{ matrix.java }}
it-category: ${{ matrix.it-category }}
java-version: 21
kube-version: '1.32.0'
http-client: ${{ matrix.httpclient }}
experimental: true

special_integration_tests:
name: "Special integration tests (${{ matrix.java }})"
needs: set_up_kubernetes
runs-on: ubuntu-latest
strategy:
matrix:
Expand All @@ -81,13 +43,3 @@ jobs:
java-version: ${{ matrix.java }}
- name: Run Special Integration Tests
run: ./mvnw ${MAVEN_ARGS} -B package -P minimal-watch-timeout-dependent-it --file pom.xml

delete_kubernetes:
needs: [ integration_tests, http_client_tests, special_integration_tests ]
if: always()
name: Delete Kubernetes ${{ inputs.kube-version }} artifact
runs-on: ubuntu-latest
steps:
- uses: geekyeggo/delete-artifact@v5
with:
name: minikube-${{ inputs.kube-version }}
25 changes: 7 additions & 18 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,14 @@ on:
type: string
required: false
default: ''
it-category:
type: string
required: false
default: ''

jobs:
integration_tests:
name: "Experimental: ${{ inputs.experimental }}, Checkout ref: ${{ inputs.checkout-ref }}"
name: Integration tests (${{ inputs.java-version }}, ${{ inputs.kube-version }}, ${{ inputs.http-client }})
runs-on: ubuntu-latest
continue-on-error: ${{ inputs.experimental }}
timeout-minutes: 40
steps:
- name: Output test information
run: echo "Running ITs with ${{ inputs.http-client }}, ${{ inputs.kube-version }}, ${{ inputs.java-version }}"
- uses: actions/checkout@v4
with:
ref: ${{ inputs.checkout-ref }}
Expand All @@ -44,18 +38,13 @@ jobs:
distribution: temurin
java-version: ${{ inputs.java-version }}
cache: 'maven'
- name: Download minikube artifact for Kubernetes ${{ inputs.kube-version }}
uses: actions/download-artifact@v4
- name: Set up Minikube
uses: manusa/[email protected]
with:
name: minikube-${{inputs.kube-version}}
path: minikube
- name: Start minikube with Kubernetes ${{ inputs.kube-version }}
run: |
# wait for docker
docker version -f '{{.Server.Version}} - {{.Client.Version}}'
export MINIKUBE_HOME=$PWD/minikube
minikube start --driver=docker
kubectl version
minikube version: 'v1.34.0'
kubernetes version: '${{ inputs.kube-version }}'
driver: 'docker'
github token: ${{ secrets.GITHUB_TOKEN }}
- name: "${{inputs.it-category}} integration tests (kube: ${{ inputs.kube-version }} / java: ${{ inputs.java-version }} / client: ${{ inputs.http-client }})"
run: |
if [ -z "${{inputs.it-category}}" ]; then
Expand Down
6 changes: 0 additions & 6 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,4 @@ jobs:
run: ./mvnw ${MAVEN_ARGS} clean install -Pno-apt --file pom.xml

build:
name: Integration tests with Kubernetes ${{ matrix.kubernetes }}
strategy:
matrix:
kubernetes: [ 'v1.29.12','1.30.8', '1.31.4', '1.32.0' ]
uses: ./.github/workflows/build.yml
with:
kube-version: ${{ matrix.kubernetes }}