diff --git a/.github/workflows/ci-kubernetes.yml b/.github/workflows/ci-kubernetes.yml new file mode 100644 index 0000000000000..15420d7dd0e7f --- /dev/null +++ b/.github/workflows/ci-kubernetes.yml @@ -0,0 +1,143 @@ +name: Quarkus CI - Kubernetes + +on: + workflow_dispatch: + schedule: + # 2am every weekday + saturday + - cron: '0 2 * * 1-6' + +env: + MAVEN_ARGS: -B -e + +jobs: + cache: + name: Build and save artifacts + runs-on: ubuntu-latest + if: "github.repository == 'quarkusio/quarkus' || github.event_name == 'workflow_dispatch'" + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Install artifacts + run: ./mvnw ${MAVEN_ARGS} -DskipTests -DskipITs -Dinvoker.skip clean install -pl :quarkus-integration-test-kubernetes-invoker -am + - name: Tar Maven repository + shell: bash + run: tar -I 'pigz -9' -cf maven-repo.tgz -C ~ .m2/repository + - name: Persist Maven repository + uses: actions/upload-artifact@v3 + with: + name: maven-repo + path: maven-repo.tgz + retention-days: 1 + + kubernetes: + name: Kubernetes Integration Tests + needs: cache + runs-on: ubuntu-latest + if: "github.repository == 'quarkusio/quarkus' || github.event_name == 'workflow_dispatch'" + strategy: + fail-fast: false + matrix: + kubernetes: [v1.20.1] + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Download Maven repository + uses: actions/download-artifact@v3 + with: + name: maven-repo + path: . + - name: Extract Maven repository + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Set up Minikube-Kubernetes + uses: manusa/actions-setup-minikube@v2.4.1 + with: + minikube version: v1.16.0 + kubernetes version: ${{ matrix.kubernetes }} + github token: ${{ secrets.GITHUB_TOKEN }} + start args: '--addons=metrics-server --force' + - name: Quay login + uses: docker/login-action@v2 + with: + registry: quay.io + username: ${{ secrets.QUAY_QUARKUSCI_USERNAME }} + password: ${{ secrets.QUAY_QUARKUSCI_PASSWORD }} + - name: Run Kubernetes Invoker Tests + run: | + export QUARKUS_CONTAINER_IMAGE_GROUP=quarkustesting + export QUARKUS_CONTAINER_IMAGE_TAG=${{ github.sha }} + export QUARKUS_CONTAINER_IMAGE_REGISTRY=quay.io + ./mvnw ${MAVEN_ARGS} clean install -pl :quarkus-integration-test-kubernetes-invoker -De2e-tests -Dkubernetes-e2e-tests + - name: Report status + if: "always() && github.repository == 'quarkusio/quarkus'" + shell: bash + run: | + curl -Ls https://sh.jbang.dev | bash -s - app setup + ~/.jbang/bin/jbang .github/NativeBuildReport.java \ + issueNumber=26581 \ + runId=${{ github.run_id }} \ + status=${{ job.status }} \ + token=${{ secrets.GITHUB_API_TOKEN }} \ + issueRepo=${{ github.repository }} \ + thisRepo=${{ github.repository }} + + openshift: + name: OpenShift Integration Tests + needs: cache + runs-on: ubuntu-latest + if: "github.repository == 'quarkusio/quarkus' || github.event_name == 'workflow_dispatch'" + strategy: + fail-fast: false + matrix: + openshift: [v3.11.0] + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Download Maven repository + uses: actions/download-artifact@v3 + with: + name: maven-repo + path: . + - name: Extract Maven repository + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Set up OpenShift + uses: manusa/actions-setup-openshift@v1.1.3 + with: + oc version: ${{ matrix.openshift }} + github token: ${{ secrets.GITHUB_TOKEN }} + - name: Quay login + uses: docker/login-action@v2 + with: + registry: quay.io + username: ${{ secrets.QUAY_QUARKUSCI_USERNAME }} + password: ${{ secrets.QUAY_QUARKUSCI_PASSWORD }} + - name: Run OpenShift Invoker Tests + run: | + export QUARKUS_CONTAINER_IMAGE_GROUP=quarkustesting + export QUARKUS_CONTAINER_IMAGE_TAG=${{ github.sha }} + export QUARKUS_CONTAINER_IMAGE_REGISTRY=quay.io + ./mvnw ${MAVEN_ARGS} clean install -pl :quarkus-integration-test-kubernetes-invoker -De2e-tests -Dopenshift-e2e-tests + - name: Report status + if: "always() && github.repository == 'quarkusio/quarkus'" + shell: bash + run: | + curl -Ls https://sh.jbang.dev | bash -s - app setup + ~/.jbang/bin/jbang .github/NativeBuildReport.java \ + issueNumber=26582 \ + runId=${{ github.run_id }} \ + status=${{ job.status }} \ + token=${{ secrets.GITHUB_API_TOKEN }} \ + issueRepo=${{ github.repository }} \ + thisRepo=${{ github.repository }} diff --git a/devtools/gradle/build.gradle b/devtools/gradle/build.gradle index 385d7ae265bf4..42b5d5ff6c7af 100644 --- a/devtools/gradle/build.gradle +++ b/devtools/gradle/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.gradle.plugin-publish' version '1.0.0' apply false + id 'com.gradle.plugin-publish' version '1.1.0' apply false } subprojects {