This repository has been archived by the owner on Dec 13, 2023. It is now read-only.
Update ob-frontend-pr.yaml #29
Workflow file for this run
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: 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 | |
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 pr-${{ github.event.number }} \ | |
--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 |