Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Update ob-frontend-pr.yaml #30

Update ob-frontend-pr.yaml

Update ob-frontend-pr.yaml #30

Workflow file for this run

name: Pull Request
on:
pull_request:
paths:
- 'samples/onlineboutique/frontend/**'
- '.github/workflows/ob-frontend-pr.yaml'
permissions:
contents: read
pull-requests: write
env:
APP_FOLDER: 'samples/onlineboutique/frontend/'
BASE_ENVIRONMENT: 'development'
ENVIRONMENT_TYPE: 'development'
SCORE_HUMANITEC_VERSION: 0.5.0
ENVIRONMENT_ID: pr-${{ github.event.number }}
jobs:
ob-frontend-pr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Create Humanitec Env
run: |
export HUMANITEC_ORG=${{ secrets.HUMANITEC_ORG }}
export HUMANITEC_TOKEN=${{ secrets.HUMANITEC_TOKEN }}
.github/workflows/bin/humctl create environment env-${{ env.ENVIRONMENT_ID }} \
--context /orgs/${HUMANITEC_ORG}/apps/${{ vars.APP_NAME }} \
--name PR-${{ github.event.number }} \
-t ${{ env.ENVIRONMENT_TYPE }} \
--from ${{ env.BASE_ENVIRONMENT }} \
|| true
- name: Install score-humanitec
run: |
wget https://github.com/score-spec/score-humanitec/releases/download/${{ env.SCORE_HUMANITEC_VERSION }}/score-humanitec_${{ env.SCORE_HUMANITEC_VERSION }}_linux_amd64.tar.gz
tar -xvf score-humanitec_${{ env.SCORE_HUMANITEC_VERSION }}_linux_amd64.tar.gz
chmod +x score-humanitec
mv score-humanitec /usr/local/bin
- name: Run Score
run: |
score-humanitec delta \
--retry \
--deploy \
--token ${{ secrets.HUMANITEC_TOKEN }} \
--org ${{ secrets.HUMANITEC_ORG }} \
--app ${{ vars.APP_NAME }} \
--env pr-${{ github.event.number }} \
-f ${{ env.APP_FOLDER }}/score.yaml \
--extensions ${{ env.APP_FOLDER }}/humanitec.score.yaml \
| tee score_output.json
- name: Wait for deployment
run: |
export HUMANITEC_ORG=${{ secrets.HUMANITEC_ORG }}
export HUMANITEC_TOKEN=${{ secrets.HUMANITEC_TOKEN }}
sleep 1
IS_DONE=false
while [ "$IS_DONE" = false ]; do
CURRENT_STATUS=$(.github/workflows/bin/humctl get environment pr-${{ github.event.number }} -o json \
--context /orgs/${HUMANITEC_ORG}/apps/${{ vars.APP_NAME }} \
| jq -r .object.last_deploy.status)
INPROGRESS="in progress"
if [ "$CURRENT_STATUS" = "$INPROGRESS" ]; then
echo "Deployment still in progress..."
sleep 1
else
echo "Deployment complete!"
IS_DONE=true
fi
done
- name: Build Comment Message
run: |
export HUMANITEC_ORG=${{ secrets.HUMANITEC_ORG }}
export HUMANITEC_TOKEN=${{ secrets.HUMANITEC_TOKEN }}
ENV_URL=$(jq -r ".metadata.url" score_output.json)
DEPLOYMENT_ID=$(jq -r ".id" score_output.json)
DOMAINS=$(.github/workflows/bin/humctl get active-resources \
--context /orgs/${{ secrets.HUMANITEC_ORG }}/apps/${{ vars.APP_NAME }}/envs/pr-${{ github.event.number }} -o json \
| jq -r '. | map(. | select(.object.type == "dns")) | map((.object.res_id | split(".") | .[1]) + ": [" + .object.resource.host + "](https://" + .object.resource.host + ")") | join("\n")')
echo "## Deployment Complete for PR-${{ github.event.number }}! :tada:" >> pr_message.txt
echo "" >> pr_message.txt
echo "### [View in Humanitec]($ENV_URL)" >> pr_message.txt
echo "Deployment ID: $DEPLOYMENT_ID" >> pr_message.txt
echo "" >> pr_message.txt
echo "### Domains:" >> pr_message.txt
echo "" >> pr_message.txt
echo "$DOMAINS" >> pr_message.txt
echo "" >> pr_message.txt
echo "<details><summary>Score Output</summary>" >> pr_message.txt
echo "" >> pr_message.txt
echo "### Score Output:" >> pr_message.txt
echo '```json' >> pr_message.txt
echo "" >> pr_message.txt
cat score_output.json >> pr_message.txt
echo "" >> pr_message.txt
echo '```' >> pr_message.txt
echo "" >> pr_message.txt
echo "</details>" >> pr_message.txt
cat pr_message.txt
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
filePath: pr_message.txt