Fault tolerant test for kruize local #557
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Kruize Remote monitoring functional tests | |
on: | |
issue_comment: | |
types: [created] | |
issue_type: [pull_request] | |
jobs: | |
functest: | |
if: contains(github.event.comment.body, 'run functional tests') | |
outputs: | |
workflow_url: ${{ steps.workflow_run_info.outputs.url }} | |
workflow_id: ${{ steps.workflow_run_info.outputs.id }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Get workflow run info | |
run: | | |
echo "url=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT | |
echo "id=$GITHUB_RUN_ID" >> $GITHUB_OUTPUT | |
echo "url=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" | |
echo "id=$GITHUB_RUN_ID" | |
id: workflow_run_info | |
- name: Debug Comment Content | |
run: echo "Comment :${{ github.event.comment.body }}" | |
- uses: actions/github-script@v6 | |
id: get-pr | |
with: | |
script: | | |
const request = { | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: context.issue.number | |
} | |
core.info(`Getting PR #${request.pull_number} from ${request.owner}/${request.repo}`) | |
try { | |
const result = await github.rest.pulls.get(request) | |
return result.data | |
} catch (err) { | |
core.setFailed(`Request failed with error ${err}`) | |
} | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
ref: refs/pull/${{ github.event.issue.number }}/head | |
- name: Setup Minikube | |
uses: manusa/[email protected] | |
with: | |
minikube version: 'v1.16.0' | |
kubernetes version: 'v1.19.2' | |
- name: Build crc | |
run: | | |
echo Build crc | |
./build.sh -i autotune_operator:test_build | |
docker images | grep autotune | |
- name: Install Prometheus on minikube | |
run: | | |
echo Install Prometheus on minikube | |
cd scripts | |
./prometheus_on_minikube.sh -as | |
- name: Run Kruize remote monitoring functional tests on minikube | |
run: | | |
ps -ef | grep python | |
echo Running Kruize remote monitoring tests on minikube | |
cp ./manifests/crc/default-db-included-installation/minikube/kruize-crc-minikube.yaml ./manifests/crc/default-db-included-installation/minikube/kruize-crc-minikube.yaml.old | |
sed -e "s/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/g" ./manifests/crc/default-db-included-installation/minikube/kruize-crc-minikube.yaml.old > ./manifests/crc/default-db-included-installation/minikube/kruize-crc-minikube.yaml | |
cat ./manifests/crc/default-db-included-installation/minikube/kruize-crc-minikube.yaml | |
cd tests | |
./test_autotune.sh -c minikube -i autotune_operator:test_build --testsuite=remote_monitoring_tests --resultsdir=${GITHUB_WORKSPACE} | |
- name: Capture ffdc logs | |
if: always() | |
run: | | |
./scripts/ffdc.sh -m crc -d ${GITHUB_WORKSPACE}/kruize_test_results | |
- name: Archive results | |
if: always() | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
tar cvf kruize_test_results.tgz kruize_test_results | |
- name: Upload results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: kruize_test_results | |
path: ./kruize_test_results.tar | |
retention-days: 2 | |
reportFailure: | |
runs-on: ubuntu-latest | |
needs: [functest] | |
if: failure() | |
steps: | |
- name: Create comment | |
uses: actions/github-script@v6 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
comment_body = ` | |
@${{ github.actor }} Build(s) failed. | |
Workflow Run ID: [${{ needs.functest.outputs.workflow_id }}](${{ needs.functest.outputs.workflow_url }}) | |
`; | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: comment_body | |
}) | |
reportCancelled: | |
runs-on: ubuntu-latest | |
needs: [functest] | |
if: cancelled() | |
steps: | |
- name: Create comment | |
uses: actions/github-script@v6 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
comment_body = ` | |
@${{ github.actor }} Build(s) cancelled. | |
Workflow Run ID: [${{ needs.functest.outputs.workflow_id }}](${{ needs.functest.outputs.workflow_url }}) | |
`; | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: comment_body | |
}) | |
reportSuccess: | |
runs-on: ubuntu-latest | |
needs: [functest] | |
if: success() | |
steps: | |
- name: Create comment | |
uses: actions/github-script@v6 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
comment_body = ` | |
@${{ github.actor }} Build(s) successful. | |
Workflow Run ID: [${{ needs.functest.outputs.workflow_id }}](${{ needs.functest.outputs.workflow_url }}) | |
`; | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: comment_body | |
}) |