name: Quarkus CI - Istio 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@v4 - uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - name: Install artifacts run: ./mvnw ${MAVEN_ARGS} -DskipTests -DskipITs -Dinvoker.skip clean install -pl :quarkus-integration-test-istio-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@v4 with: name: maven-repo path: maven-repo.tgz retention-days: 1 kubernetes: name: Istio + 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@v4 - uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - name: Download Maven repository uses: actions/download-artifact@v4 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.11.0 with: minikube version: v1.16.0 kubernetes version: ${{ matrix.kubernetes }} github token: ${{ secrets.GITHUB_TOKEN }} start args: '--embed-certs --addons=metrics-server --force' - name: Quay login uses: docker/login-action@v3 with: registry: quay.io username: ${{ secrets.QUAY_QUARKUSCI_USERNAME }} password: ${{ secrets.QUAY_QUARKUSCI_PASSWORD }} - name: Get kubeconfig id: kubeconfig run: a="$(cat ~/.kube/config)"; a="${a//'%'/'%25'}"; a="${a//$'\n'/'%0A'}"; a="${a//$'\r'/'%0D'}"; echo "config=$a" >> $GITHUB_OUTPUT - name: Install Istio uses: huang195/actions-install-istio@v1.0.0 with: kubeconfig: "${{steps.kubeconfig.outputs.config}}" istio version: '1.15.2' - name: Run Istio 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-istio-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=29536 \ runId=${{ github.run_id }} \ status=${{ job.status }} \ token=${{ secrets.GITHUB_API_TOKEN }} \ issueRepo=${{ github.repository }} \ thisRepo=${{ github.repository }}