From a6f48ad0f1fa046e78a057fa128b7344c5501ea9 Mon Sep 17 00:00:00 2001 From: Gilbert Kwan Date: Tue, 1 Oct 2024 16:52:36 -0400 Subject: [PATCH] Trigger gm container test (#1081) * Update manual-docker-build-test.yml * Update manual-docker-build-test-java17.yml * Create manual-gm-candidate-container-test.yml * Create manual-gm-candidate-container-test-java17.yml --- .../manual-docker-build-test-java17.yml | 2 +- .../workflows/manual-docker-build-test.yml | 2 +- ...ual-gm-candidate-container-test-java17.yml | 127 +++++++++++++++++ .../manual-gm-candidate-container-test.yml | 132 ++++++++++++++++++ 4 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/manual-gm-candidate-container-test-java17.yml create mode 100644 .github/workflows/manual-gm-candidate-container-test.yml diff --git a/.github/workflows/manual-docker-build-test-java17.yml b/.github/workflows/manual-docker-build-test-java17.yml index 3a3df6c..85e544d 100644 --- a/.github/workflows/manual-docker-build-test-java17.yml +++ b/.github/workflows/manual-docker-build-test-java17.yml @@ -1,4 +1,4 @@ -name: Manual docker build test - Java 17 +name: (Deprecated) Manual docker build test - Java 17 on: repository_dispatch: diff --git a/.github/workflows/manual-docker-build-test.yml b/.github/workflows/manual-docker-build-test.yml index d08368a..e95bfed 100644 --- a/.github/workflows/manual-docker-build-test.yml +++ b/.github/workflows/manual-docker-build-test.yml @@ -1,4 +1,4 @@ -name: Manual docker build test +name: (Deprecated) Manual docker build test on: repository_dispatch: diff --git a/.github/workflows/manual-gm-candidate-container-test-java17.yml b/.github/workflows/manual-gm-candidate-container-test-java17.yml new file mode 100644 index 0000000..3cb62bc --- /dev/null +++ b/.github/workflows/manual-gm-candidate-container-test-java17.yml @@ -0,0 +1,127 @@ +name: Manual GM candidate container test - Java 17 + +on: + workflow_dispatch: + inputs: + build: + description: Build level as cl241020240923-1638 + required: true + date: + description: Dev date as 2024-09-23_1638 + required: true + ol_version: + description: OL version as 24.0.0.10 + required: true + guide: + description: Guide to build + default: "all" + required: true + branch: + description: Branch to test + required: false + +env: + DOCKER_USERNAME: ${{ secrets.CP_STG_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.CP_STG_PASSWORD }} + CHANGE_MINIKUBE_NONE_USER: true + +jobs: + get-guide-repos: + runs-on: ubuntu-latest + outputs: + repos: ${{ steps.create-list.outputs.repos }}${{ steps.input-guide.outputs.repo }} + steps: + - uses: actions/checkout@v2 + - name: Get repos + if: ${{ github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' && github.event.inputs.guide == 'all' }} + id: create-list + run: echo "repos=[ 'guide-spring-boot', 'guide-liberty-deep-dive' ]" >> $GITHUB_OUTPUT + - name: Set repo + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.guide != 'all' }} + id: input-guide + run: echo "::set-output name=repo::[ '${{ github.event.inputs.guide }}' ]" + build-level: + runs-on: ubuntu-latest + steps: + - name: Starting GM candidate container tests for ${{ github.event.inputs.build }} + run: | + echo "Inputs: " + echo build: ${{ github.event.inputs.build }} + echo date: ${{ github.event.inputs.date }} + echo ol_version: ${{ github.event.inputs.ol_version }} + echo driver: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + echo guide: ${{ github.event.inputs.guide }} + echo branch: ${{ github.event.inputs.branch }} + test-guide: + needs: [ get-guide-repos ] + runs-on: ubuntu-latest + strategy: + fail-fast: false + max-parallel: 5 + matrix: + repos: ${{ fromJson(needs.get-guide-repos.outputs.repos) }} + jdk: [ "17" ] + steps: + - name: Setup JDK ${{ matrix.jdk }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.jdk }} + - name: Clone ${{ matrix.repos }} + uses: actions/checkout@v2 + with: + repository: OpenLiberty/${{ matrix.repos }} + ref: ${{ github.event.inputs.branch }} + path: ${{ matrix.repos }} + - name: Set permissions + run: chmod +x ${{ matrix.repos }}/scripts/*.sh + - name: Docker login + run: echo $DOCKER_PASSWORD | sudo docker login -u $DOCKER_USERNAME --password-stdin cp.stg.icr.io + - name: Run tests for ${{ matrix.repos }} + working-directory: ${{ matrix.repos }}/finish + env: + DEVDATE: ${{ github.event.inputs.date }} + DRIVER: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + OL_VERSION: ${{ github.event.inputs.ol_version }} + run: sudo -E ../scripts/dockerImageTest.sh -t $DEVDATE -d $DRIVER -v $OL_VERSION + - name: Post tests + working-directory: ${{ matrix.repos }} + if: always() + run: | + mvn -version + sudo chmod -R 777 . + logsPath=$(sudo find . -name "console.log"); + if [ -z "$logsPath" ] + then + logsPath=$(sudo find . -name "messages.log"); + if [ -z "$logsPath" ] + then sudo docker images + else + sudo cat $logsPath | grep product + sudo cat $logsPath | grep java.runtime + fi + else sudo cat $logsPath | grep Launching + fi + - name: Archive server logs if failed + if: failure() + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.repos }}-logs + path: | + ${{ matrix.repos }}/finish/target/liberty/wlp/usr/servers/defaultServer/logs/ + ${{ matrix.repos }}/finish/**/target/liberty/wlp/usr/servers/defaultServer/logs/ + if-no-files-found: ignore + slack-alert: + needs: [test-guide] + if: failure() + runs-on: ubuntu-latest + env: + BUILDLEVEL: ${{ github.event.inputs.build }} + DEVDATE: ${{ github.event.inputs.date }} + DRIVER: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + steps: + - uses: actions/checkout@v2 + - name: send-status + run: | + python3 .github/workflows/slack-alert.py ${{ env.BUILDLEVEL }} ${{ env.DRIVER }} ${{ env.DEVDATE }} ${{ needs.test-guide.result }} \ + ${{ github.repository }} ${{ github.run_id }} ${{ secrets.SLACK_HOOK }} + echo ${{ needs.test-guide.result }} diff --git a/.github/workflows/manual-gm-candidate-container-test.yml b/.github/workflows/manual-gm-candidate-container-test.yml new file mode 100644 index 0000000..d97a78b --- /dev/null +++ b/.github/workflows/manual-gm-candidate-container-test.yml @@ -0,0 +1,132 @@ +name: Manual GM candidate container test + +on: + workflow_dispatch: + inputs: + build: + description: Build level as cl241020240923-1638 + required: true + date: + description: Dev date as 2024-09-23_1638 + required: true + ol_version: + description: OL version as 24.0.0.10 + required: true + guide: + description: Guide to build + default: "all" + required: true + branch: + description: Branch to test + required: false + jdk_level: + description: JDK level to test + default: "11" + required: true + +env: + DOCKER_USERNAME: ${{ secrets.CP_STG_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.CP_STG_PASSWORD }} + CHANGE_MINIKUBE_NONE_USER: true + +jobs: + get-guide-repos: + runs-on: ubuntu-latest + outputs: + repos: ${{ steps.create-list.outputs.repos }}${{ steps.input-guide.outputs.repo }} + steps: + - uses: actions/checkout@v2 + - name: Get repos + if: ${{ github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' && github.event.inputs.guide == 'all' }} + id: create-list + run: echo "::set-output name=repos::$(python3 .github/workflows/get-docker-guides.py)" + - name: Set repo + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.guide != 'all' }} + id: input-guide + run: echo "::set-output name=repo::[ '${{ github.event.inputs.guide }}' ]" + build-level: + runs-on: ubuntu-latest + steps: + - name: Starting GM candidate container tests for ${{ github.event.inputs.build }} + run: | + echo "Inputs: " + echo build: ${{ github.event.inputs.build }} + echo date: ${{ github.event.inputs.date }} + echo ol_version: ${{ github.event.inputs.ol_version }} + echo driver: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + echo guide: ${{ github.event.inputs.guide }} + echo branch: ${{ github.event.inputs.branch }} + echo jdk_level: ${{ github.event.inputs.jdk_level }} + test-guide: + needs: [ get-guide-repos ] + runs-on: ubuntu-latest + strategy: + fail-fast: false + max-parallel: 5 + matrix: + repos: ${{ fromJson(needs.get-guide-repos.outputs.repos) }} + jdk: [ "${{ github.event.inputs.jdk_level }}" ] + steps: + - name: Setup JDK ${{ matrix.jdk }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.jdk }} + - name: Clone ${{ matrix.repos }} + uses: actions/checkout@v2 + with: + repository: OpenLiberty/${{ matrix.repos }} + ref: ${{ github.event.inputs.branch }} + path: ${{ matrix.repos }} + - name: Set permissions + run: chmod +x ${{ matrix.repos }}/scripts/*.sh + - name: Docker login + run: echo $DOCKER_PASSWORD | sudo docker login -u $DOCKER_USERNAME --password-stdin cp.stg.icr.io + - name: Run tests for ${{ matrix.repos }} + working-directory: ${{ matrix.repos }}/finish + env: + DEVDATE: ${{ github.event.inputs.date }} + DRIVER: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + OL_VERSION: ${{ github.event.inputs.ol_version }} + run: sudo -E ../scripts/dockerImageTest.sh -t $DEVDATE -d $DRIVER -v $OL_VERSION + - name: Post tests + working-directory: ${{ matrix.repos }} + if: always() + run: | + mvn -version + sudo chmod -R 777 . + logsPath=$(sudo find . -name "console.log"); + if [ -z "$logsPath" ] + then + logsPath=$(sudo find . -name "messages.log"); + if [ -z "$logsPath" ] + then sudo docker images + else + sudo cat $logsPath | grep product + sudo cat $logsPath | grep java.runtime + fi + else sudo cat $logsPath | grep Launching + fi + - name: Archive server logs if failed + if: failure() + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.repos }}-logs + path: | + ${{ matrix.repos }}/finish/target/liberty/wlp/usr/servers/defaultServer/logs/ + ${{ matrix.repos }}/finish/**/target/liberty/wlp/usr/servers/defaultServer/logs/ + if-no-files-found: ignore + slack-alert: + needs: [test-guide] + if: failure() + runs-on: ubuntu-latest + env: + BUILDLEVEL: ${{ github.event.inputs.build }} + DEVDATE: ${{ github.event.inputs.date }} + DRIVER: openliberty-all-${{ github.event.inputs.ol_version }}-${{ github.event.inputs.build }}.zip + steps: + - uses: actions/checkout@v2 + - name: send-status + run: | + python3 .github/workflows/slack-alert.py ${{ env.BUILDLEVEL }} ${{ env.DRIVER }} ${{ env.DEVDATE }} ${{ needs.test-guide.result }} \ + ${{ github.repository }} ${{ github.run_id }} ${{ secrets.SLACK_HOOK }} + echo ${{ needs.test-guide.result }}