From 100822f48dec176a33304f3889e80f04f43fab07 Mon Sep 17 00:00:00 2001 From: Matan Avital Date: Mon, 20 Mar 2023 13:45:31 +0200 Subject: [PATCH] added input to make the binary build and test dynamic Signed-off-by: Matan Avital --- .../b-binary-build-and-e2e-tests.yaml | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/.github/workflows/b-binary-build-and-e2e-tests.yaml b/.github/workflows/b-binary-build-and-e2e-tests.yaml index 31d6142b..a479011c 100644 --- a/.github/workflows/b-binary-build-and-e2e-tests.yaml +++ b/.github/workflows/b-binary-build-and-e2e-tests.yaml @@ -27,6 +27,13 @@ on: required: false type: string # default: kubescape/kubescape + BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI: + description: If true then the wf would build the latest commit from the default branch of Kubescape repo and will run the e2e test. if false then only the e2e would run with the latest release of the Kubescape CLI + type: boolean + required: false + default: true + + jobs: check-secret: @@ -47,6 +54,7 @@ jobs: REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} run: "echo \"is-secret-set=${{ env.CUSTOMER != '' && \n env.USERNAME != '' &&\n env.PASSWORD != '' &&\n env.CLIENT_ID != '' &&\n env.SECRET_KEY != '' &&\n env.REGISTRY_USERNAME != '' &&\n env.REGISTRY_PASSWORD != ''\n }}\" >> $GITHUB_OUTPUT\n" binary-build: + if: ${{ github.event.inputs.BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI == 'true' }} name: Create cross-platform build outputs: TEST_NAMES: ${{ steps.export_tests_to_env.outputs.TEST_NAMES }} @@ -163,16 +171,18 @@ jobs: matrix: TEST: ${{ fromJson(needs.binary-build.outputs.TEST_NAMES) }} needs: [check-secret, binary-build] - if: needs.check-secret.outputs.is-secret-set == 'true' + if: ${{ needs.check-secret.outputs.is-secret-set == 'true' && (always() && (contains(needs.*.result, 'success') || contains(needs.*.result, 'skipped')) && !(contains(needs.*.result, 'failure')) && !(contains(needs.*.result, 'cancelled')) }} runs-on: ubuntu-latest # This cannot change steps: - uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # ratchet:actions/download-artifact@v3.0.2 + if: github.event.inputs.BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI == 'true' id: download-artifact with: name: kubescape-ubuntu-latest path: "~" - run: ls -laR - name: chmod +x + if: github.event.inputs.BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI == 'true' run: chmod +x -R ${{steps.download-artifact.outputs.download-path}}/kubescape-ubuntu-latest - name: Checkout systests repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # ratchet:actions/checkout@v3 @@ -194,7 +204,8 @@ jobs: uses: helm/kind-action@d08cf6ff1575077dee99962540d77ce91c62387d # ratchet:helm/kind-action@v1.3.0 with: cluster_name: ${{ steps.uuid.outputs.RANDOM_UUID }} - - name: run-tests + - name: run-tests-on-local-built-kubescape + if: github.event.inputs.BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI == 'true' env: CUSTOMER: ${{ secrets.CUSTOMER }} USERNAME: ${{ secrets.USERNAME }} @@ -218,6 +229,33 @@ jobs: --kwargs kubescape=${{steps.download-artifact.outputs.download-path}}/kubescape-ubuntu-latest deactivate + + - name: run-tests-on-latest-release-of-kubescape + if: github.event.inputs.BUILD_AND_TEST_LOCAL_KUBESCAPE_CLI == 'false' + env: + CUSTOMER: ${{ secrets.CUSTOMER }} + USERNAME: ${{ secrets.USERNAME }} + PASSWORD: ${{ secrets.PASSWORD }} + CLIENT_ID: ${{ secrets.CLIENT_ID_PROD }} + SECRET_KEY: ${{ secrets.SECRET_KEY_PROD }} + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} + run: | + echo "Test history:" + echo " ${{ matrix.TEST }} " >/tmp/testhistory + cat /tmp/testhistory + source systests_python_env/bin/activate + + python3 systest-cli.py \ + -t ${{ matrix.TEST }} \ + -b production \ + -c CyberArmorTests \ + --duration 3 \ + --logger DEBUG \ + --kwargs ks_branch=latest + + deactivate + - name: Test Report uses: mikepenz/action-junit-report@6e9933f4a97f4d2b99acef4d7b97924466037882 # ratchet:mikepenz/action-junit-report@v3.6.1 if: always() # always run even if the previous step fails