From d014e9662e6f846d21a3c50f81ba6dbfb4e8dfff Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Fri, 7 Jun 2024 13:17:50 -0400 Subject: [PATCH 1/9] Post charts to PR --- .github/workflows/deploy-pm4.yml | 3 ++- .../workflows/scripts/post_comment_to_pr.sh | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 .github/workflows/scripts/post_comment_to_pr.sh diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index f21da3e3fb..568335d2a9 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -278,7 +278,8 @@ jobs: else exit 1 fi' - kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" && break || true + kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" > /tmp/comment.md && break || true + bash .github/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" done deleteEKS: name: Delete Instance diff --git a/.github/workflows/scripts/post_comment_to_pr.sh b/.github/workflows/scripts/post_comment_to_pr.sh new file mode 100755 index 0000000000..271e95d1cf --- /dev/null +++ b/.github/workflows/scripts/post_comment_to_pr.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Abort if any error occurs +set -e + +MESSAGE=$1 + +GITHUB_TOKEN=${GITHUB_TOKEN} +GITHUB_REPOSITORY=${GITHUB_REPOSITORY} +PR_NUMBER=${GITHUB_EVENT_PULL_REQUEST_NUMBER} + +# Check there is a PR number available +if [ -z "$PR_NUMBER" ]; then + echo "The PR number is not available. Make sure this script is executed in a context of Pull Request." + exit 1 +fi + +URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/comments" +json_payload=$(jq -n --arg message "$MESSAGE" '{"body": $message}') + +# Send the message {body: MESSAGE} in json encoded +curl -s \ + -H "Authorization: token ${GITHUB_TOKEN}" \ + -H "Accept: application/vnd.github.v3+json" \ + -d "$json_payload" \ + "${URL}" \ No newline at end of file From a4510cd5de75ba5e89d24a376531c531e60bd910 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 08:37:43 -0400 Subject: [PATCH 2/9] Absolute path of script --- .github/workflows/deploy-pm4.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 568335d2a9..2ed37c1109 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -260,6 +260,7 @@ jobs: run: aws eks update-kubeconfig --region us-east-1 --name pm4-eng - name: Run the API tests run: | + cwd=$(pwd) cd argocd deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) namespace="ci-$deploy-ns-pm4" @@ -279,8 +280,8 @@ jobs: exit 1 fi' kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" > /tmp/comment.md && break || true - bash .github/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" done + bash $cwd/.github/workflows/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" deleteEKS: name: Delete Instance if: github.event.action == 'closed' From 92137eabf432ab8b01f3f568dca111aaf32ea4e8 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 08:41:37 -0400 Subject: [PATCH 3/9] test --- .github/workflows/deploy-pm4.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 2ed37c1109..a7f7270dfd 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -261,6 +261,7 @@ jobs: - name: Run the API tests run: | cwd=$(pwd) + ls -l cd argocd deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) namespace="ci-$deploy-ns-pm4" From 833891279dca642aacc0e6e2381700a3296b1c56 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 08:44:41 -0400 Subject: [PATCH 4/9] test --- .github/workflows/deploy-pm4.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index a7f7270dfd..30f9375056 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -261,7 +261,7 @@ jobs: - name: Run the API tests run: | cwd=$(pwd) - ls -l + ls -l pm4-k8s-distribution/ cd argocd deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) namespace="ci-$deploy-ns-pm4" From ed6b24d3e42d1438d9d772e81efdd030f7fda7a6 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 08:49:46 -0400 Subject: [PATCH 5/9] find script --- .github/workflows/deploy-pm4.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 30f9375056..5abe225d9d 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -262,6 +262,7 @@ jobs: run: | cwd=$(pwd) ls -l pm4-k8s-distribution/ + find / -name "post_comment_to_pr.sh" cd argocd deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) namespace="ci-$deploy-ns-pm4" From b0280ca8a3cf06c9136c4551a6c54c0b090bf08f Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 09:00:39 -0400 Subject: [PATCH 6/9] Post comment from docker --- .github/workflows/deploy-pm4.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 5abe225d9d..35dabd8db8 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -260,9 +260,6 @@ jobs: run: aws eks update-kubeconfig --region us-east-1 --name pm4-eng - name: Run the API tests run: | - cwd=$(pwd) - ls -l pm4-k8s-distribution/ - find / -name "post_comment_to_pr.sh" cd argocd deploy=$(echo -n ${{env.IMAGE_TAG}} | md5sum | head -c 10) namespace="ci-$deploy-ns-pm4" @@ -277,13 +274,13 @@ jobs: if [ ! -z "$has_processmaker" ] && [ ! -z "$has_sudo" ] && [ ! -z "$has_php" ]; then echo $pr_body | base64 -d > /tmp/pr_body cd /opt/processmaker - sudo -u nginx php artisan pm4-api-testing:run + sudo -u nginx php artisan pm4-api-testing:run > /tmp.comment.md + .github/workflows/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" else exit 1 fi' - kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" > /tmp/comment.md && break || true + kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';GITHUB_TOKEN='${GITHUB_TOKEN}';GITHUB_REPOSITORY='${GITHUB_REPOSITORY}';GITHUB_EVENT_PULL_REQUEST_NUMBER='${GITHUB_EVENT_PULL_REQUEST_NUMBER}';${code}" > /tmp/comment.md && break || true done - bash $cwd/.github/workflows/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" deleteEKS: name: Delete Instance if: github.event.action == 'closed' From 585eb94310a723a60e61578e8476ebfa4b4dd057 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 09:07:08 -0400 Subject: [PATCH 7/9] Fix --- .github/workflows/deploy-pm4.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 35dabd8db8..838a38fe6d 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -274,7 +274,8 @@ jobs: if [ ! -z "$has_processmaker" ] && [ ! -z "$has_sudo" ] && [ ! -z "$has_php" ]; then echo $pr_body | base64 -d > /tmp/pr_body cd /opt/processmaker - sudo -u nginx php artisan pm4-api-testing:run > /tmp.comment.md + ls -l .github/ + sudo -u nginx php artisan pm4-api-testing:run > /tmp/comment.md .github/workflows/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" else exit 1 From b2f10730cdde25cb27adb87e09d0d8240ea72734 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 09:38:43 -0400 Subject: [PATCH 8/9] Move script to job --- .github/workflows/deploy-pm4.yml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 838a38fe6d..2c3ce98f45 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -274,14 +274,31 @@ jobs: if [ ! -z "$has_processmaker" ] && [ ! -z "$has_sudo" ] && [ ! -z "$has_php" ]; then echo $pr_body | base64 -d > /tmp/pr_body cd /opt/processmaker - ls -l .github/ - sudo -u nginx php artisan pm4-api-testing:run > /tmp/comment.md - .github/workflows/scripts/post_comment_to_pr.sh "$(cat /tmp/comment.md)" + sudo -u nginx php artisan pm4-api-testing:run else exit 1 fi' - kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';GITHUB_TOKEN='${GITHUB_TOKEN}';GITHUB_REPOSITORY='${GITHUB_REPOSITORY}';GITHUB_EVENT_PULL_REQUEST_NUMBER='${GITHUB_EVENT_PULL_REQUEST_NUMBER}';${code}" > /tmp/comment.md && break || true + kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" > /tmp/comment.md && break || true done + # Send the content of /tmp/comment.md as a PR comment + MESSAGE=$(cat /tmp/comment.md) + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY=${{ github.repository }} + PR_NUMBER=$(jq -r .number < "$GITHUB_EVENT_PATH") + + if [ -z "$PR_NUMBER" ]; then + echo "The PR number is not available. Make sure this script is executed in a context of Pull Request." + exit 1 + fi + + URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/comments" + json_payload=$(jq -n --arg message "$MESSAGE" '{"body": $message}') + + curl -s \ + -H "Authorization: token ${GITHUB_TOKEN}" \ + -H "Accept: application/vnd.github.v3+json" \ + -d "$json_payload" \ + "${URL}" deleteEKS: name: Delete Instance if: github.event.action == 'closed' From b0995e4533ee63f2cb637db994d458480ef8f265 Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Sat, 8 Jun 2024 09:47:41 -0400 Subject: [PATCH 9/9] Use tee to show output in runtime --- .github/workflows/deploy-pm4.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pm4.yml b/.github/workflows/deploy-pm4.yml index 2c3ce98f45..f75e161801 100644 --- a/.github/workflows/deploy-pm4.yml +++ b/.github/workflows/deploy-pm4.yml @@ -278,7 +278,7 @@ jobs: else exit 1 fi' - kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" > /tmp/comment.md && break || true + kubectl exec -n $namespace $pod -- /bin/sh -c "pr_body='${pr_body}';${code}" | tee /tmp/comment.md && break || true done # Send the content of /tmp/comment.md as a PR comment MESSAGE=$(cat /tmp/comment.md)