This commit is contained in:
@@ -12,6 +12,7 @@ on:
|
|||||||
env:
|
env:
|
||||||
CLUSTERS: cl01tl
|
CLUSTERS: cl01tl
|
||||||
BASE_BRANCH: manifests
|
BASE_BRANCH: manifests
|
||||||
|
ASSIGNEE: alexlebens
|
||||||
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
|
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
|
||||||
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
|
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
|
||||||
|
|
||||||
@@ -109,7 +110,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd ${MANIFEST_DIR}
|
cd ${MANIFEST_DIR}
|
||||||
|
|
||||||
BRANCH_NAME="auto/update-manifests-$(date +%s)"
|
BRANCH_NAME="auto/update-manifests"
|
||||||
|
|
||||||
# Configure Git
|
# Configure Git
|
||||||
echo ">> Configure git to use gitea-bot as user ..."
|
echo ">> Configure git to use gitea-bot as user ..."
|
||||||
@@ -130,9 +131,57 @@ jobs:
|
|||||||
echo "HEAD_BRANCH=$BRANCH_NAME" >> $GITEA_OUTPUT
|
echo "HEAD_BRANCH=$BRANCH_NAME" >> $GITEA_OUTPUT
|
||||||
echo "push=true" >> $GITEA_OUTPUT
|
echo "push=true" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Check for Pull Request
|
||||||
|
id: check-for-pull-requst
|
||||||
|
if: steps.commit-push.outputs.push == 'true'
|
||||||
|
env:
|
||||||
|
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
GITEA_URL: ${{ secrets.REPO_URL }}
|
||||||
|
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
|
||||||
|
run: |
|
||||||
|
cd ${MANIFEST_DIR}
|
||||||
|
|
||||||
|
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls/${BASE_BRANCH}/${HEAD_BRANCH}"
|
||||||
|
|
||||||
|
echo ">> Checking if PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
|
||||||
|
echo ">> With Endpoint of:"
|
||||||
|
echo "$API_ENDPOINT"
|
||||||
|
|
||||||
|
HTTP_STATUS=$(
|
||||||
|
curl -X GET \
|
||||||
|
--silent \
|
||||||
|
--write-out '%{http_code}' \
|
||||||
|
--output response_body.json \
|
||||||
|
--dump-header response_headers.txt \
|
||||||
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
"$API_ENDPOINT" 2> response_errors.txt
|
||||||
|
)
|
||||||
|
|
||||||
|
echo ">> HTTP Status Code: $HTTP_STATUS"
|
||||||
|
echo ">> Response Output ..."
|
||||||
|
echo "----"
|
||||||
|
cat response_body.json
|
||||||
|
echo "----"
|
||||||
|
cat response_headers.txt
|
||||||
|
echo "----"
|
||||||
|
cat response_errors.txt
|
||||||
|
echo "----"
|
||||||
|
|
||||||
|
if [ "$HTTP_STATUS" == "200" ]; then
|
||||||
|
echo ">> Pull Request has been found"
|
||||||
|
PR_INDEX=$(cat response_body.json | jq -r .number)
|
||||||
|
echo "pull-request-exists=${PR_INDEX}" >> $GITEA_OUTPUT
|
||||||
|
echo "pull-request-index=true" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
else
|
||||||
|
echo ">> Pull Request not found"
|
||||||
|
echo "pull-request-exists=false" >> $GITEA_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
id: create-pull-request
|
id: create-pull-request
|
||||||
if: steps.commit-push.outputs.push == 'true'
|
if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-requst.outputs.exists == 'false'
|
||||||
env:
|
env:
|
||||||
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
GITEA_URL: ${{ secrets.REPO_URL }}
|
GITEA_URL: ${{ secrets.REPO_URL }}
|
||||||
@@ -145,7 +194,8 @@ jobs:
|
|||||||
PAYLOAD=$( jq -n \
|
PAYLOAD=$( jq -n \
|
||||||
--arg head "${HEAD_BRANCH}" \
|
--arg head "${HEAD_BRANCH}" \
|
||||||
--arg base "${BASE_BRANCH}" \
|
--arg base "${BASE_BRANCH}" \
|
||||||
--arg title "Automated Manifest Update: $(date +%F)" \
|
--arg assignee "${ASSIGNEE}" \
|
||||||
|
--arg title "Automated Manifest Update" \
|
||||||
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." \
|
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." \
|
||||||
'{head: $head, base: $base, title: $title, body: $body'} )
|
'{head: $head, base: $base, title: $title, body: $body'} )
|
||||||
|
|
||||||
@@ -179,13 +229,13 @@ jobs:
|
|||||||
|
|
||||||
if [ "$HTTP_STATUS" == "201" ]; then
|
if [ "$HTTP_STATUS" == "201" ]; then
|
||||||
echo ">> Pull Request created successfully!"
|
echo ">> Pull Request created successfully!"
|
||||||
|
|
||||||
PR_URL=$(cat response_body.json | jq -r .html_url)
|
PR_URL=$(cat response_body.json | jq -r .html_url)
|
||||||
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
|
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
|
||||||
echo "pull-request-operation=created" >> $GITEA_OUTPUT
|
echo "pull-request-operation=created" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
elif [ "$HTTP_STATUS" == "422" ]; then
|
elif [ "$HTTP_STATUS" == "422" ]; then
|
||||||
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
|
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
|
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user