krkn-lib update to v1.4.5 #573
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
on: issue_comment | |
jobs: | |
check_user: | |
# This job only runs for pull request comments | |
name: Check User Authorization | |
env: | |
USERS: ${{vars.USERS}} | |
if: contains(github.event.comment.body, '/funtest') && contains(github.event.comment.html_url, '/pull/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check User | |
run: | | |
for name in `echo $USERS` | |
do | |
name="${name//$'\r'/}" | |
name="${name//$'\n'/}" | |
if [ $name == "${{github.event.sender.login}}" ] | |
then | |
echo "user ${{github.event.sender.login}} authorized, action started..." | |
exit 0 | |
fi | |
done | |
echo "user ${{github.event.sender.login}} is not allowed to run functional tests Action" | |
exit 1 | |
pr_commented: | |
# This job only runs for pull request comments containing /functional | |
name: Functional Tests | |
if: contains(github.event.comment.body, '/funtest') && contains(github.event.comment.html_url, '/pull/') | |
runs-on: ubuntu-latest | |
needs: | |
- check_user | |
steps: | |
- name: Check out Kraken | |
uses: actions/checkout@v3 | |
- name: Checkout Pull Request | |
run: gh pr checkout ${{ github.event.issue.number }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install OC CLI | |
uses: redhat-actions/oc-installer@v1 | |
with: | |
oc_version: latest | |
- name: Install python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- name: Setup kraken dependencies | |
run: pip install -r requirements.txt | |
- name: Create Workdir & export the path | |
run: | | |
mkdir workdir | |
echo "WORKDIR_PATH=`pwd`/workdir" >> $GITHUB_ENV | |
- name: Generate run id | |
run: | | |
echo "RUN_ID=`date +%s`" > $GITHUB_ENV | |
echo "Run Id: ${RUN_ID}" | |
- name: Write Pull Secret | |
env: | |
PULLSECRET_BASE64: ${{ secrets.PS_64 }} | |
run: | | |
echo "$PULLSECRET_BASE64" | base64 --decode > pullsecret.txt | |
- name: Write Boot Private Key | |
env: | |
BOOT_KEY: ${{ secrets.CRC_KEY_FILE }} | |
run: | | |
echo -n "$BOOT_KEY" > key.txt | |
- name: Teardown CRC (Post Action) | |
uses: webiny/[email protected] | |
id: post-run-command | |
with: | |
run: podman run --rm -v "${{ github.workspace }}:/workspace:z" -e AWS_ACCESS_KEY_ID="${{ secrets.AWS_ACCESS_KEY_ID }}" -e AWS_SECRET_ACCESS_KEY="${{ secrets.AWS_SECRET_ACCESS_KEY }}" -e AWS_DEFAULT_REGION=us-west-2 quay.io/crcont/crc-cloud:v0.0.2 destroy --project-name "chaos-funtest-${{ env.RUN_ID }}" --backed-url "s3://krkn-crc-state/${{ env.RUN_ID }}" --provider "aws" | |
- name: Create cluster | |
run: | | |
podman run --name crc-cloud-create --rm \ | |
-v ${PWD}:/workspace:z \ | |
-e AWS_ACCESS_KEY_ID="${{ secrets.AWS_ACCESS_KEY_ID }}" \ | |
-e AWS_SECRET_ACCESS_KEY="${{ secrets.AWS_SECRET_ACCESS_KEY }}" \ | |
-e AWS_DEFAULT_REGION="us-west-2" \ | |
quay.io/crcont/crc-cloud:v0.0.2 \ | |
create aws \ | |
--project-name "chaos-funtest-${RUN_ID}" \ | |
--backed-url "s3://krkn-crc-state/${RUN_ID}" \ | |
--output "/workspace" \ | |
--aws-ami-id "ami-00f5eaf98cf42ef9f" \ | |
--pullsecret-filepath /workspace/pullsecret.txt \ | |
--key-filepath /workspace/key.txt | |
- name: Setup kubeconfig | |
continue-on-error: true | |
run: | | |
ssh -o StrictHostKeyChecking=no -i id_rsa core@$(cat host) "cat /opt/kubeconfig" > kubeconfig | |
sed -i "s/https:\/\/api.crc.testing:6443/https:\/\/`cat host`.nip.io:6443/g" kubeconfig | |
echo "KUBECONFIG=${PWD}/kubeconfig" > $GITHUB_ENV | |
- name: Example deployment, GitHub Action env init | |
env: | |
NAMESPACE: test-namespace | |
DEPLOYMENT_NAME: test-nginx | |
run: ./CI/CRC/init_github_action.sh | |
- name: Setup test suite | |
run: | | |
yq -i '.kraken.port="8081"' CI/config/common_test_config.yaml | |
yq -i '.kraken.signal_address="0.0.0.0"' CI/config/common_test_config.yaml | |
yq -i '.kraken.kubeconfig_path="'${KUBECONFIG}'"' CI/config/common_test_config.yaml | |
echo "test_app_outages_gh" > ./CI/tests/my_tests | |
echo "test_container" >> ./CI/tests/my_tests | |
echo "test_namespace" >> ./CI/tests/my_tests | |
echo "test_net_chaos" >> ./CI/tests/my_tests | |
echo "test_time" >> ./CI/tests/my_tests | |
- name: Print affected config files | |
run: | | |
echo -e "## CI/config/common_test_config.yaml\n\n" | |
cat CI/config/common_test_config.yaml | |
- name: Running test suite | |
run: | | |
./CI/run.sh | |
- name: Print test output | |
run: cat CI/out/* | |
- name: Create coverage report | |
run: | | |
echo "# Test results" > $GITHUB_STEP_SUMMARY | |
cat CI/results.markdown >> $GITHUB_STEP_SUMMARY | |
echo "# Test coverage" >> $GITHUB_STEP_SUMMARY | |
python -m coverage report --format=markdown >> $GITHUB_STEP_SUMMARY | |