59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
name: CI
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- edited
|
|
- synchronize
|
|
- reopened
|
|
|
|
jobs:
|
|
ci:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4.2.2
|
|
|
|
- name: Setup OpenTofu
|
|
uses: opentofu/setup-opentofu@v1
|
|
|
|
- name: OpenTofu fmt
|
|
id: fmt
|
|
run: tofu fmt -check
|
|
continue-on-error: true
|
|
|
|
- name: OpenTofu init
|
|
id: init
|
|
run: tofu init
|
|
|
|
- name: OpenTofu validate
|
|
id: validate
|
|
run: tofu validate -no-color
|
|
|
|
- name: OpenTofu refresh
|
|
id: validate
|
|
run: tofu refresh
|
|
continue-on-error: true
|
|
|
|
- name: OpenTofu plan
|
|
id: plan
|
|
run: tofu plan -no-color
|
|
continue-on-error: true
|
|
|
|
- name: Post comment to PR
|
|
if: gitea.event_name == 'pull_request'
|
|
env:
|
|
PLAN: "tofu\n${{ steps.plan.outputs.stdout }}"
|
|
run: |
|
|
export PR_NUMBER="${{ gitea.event.number }}"
|
|
sed -i "s+[FMT_OUTCOME]+${{ steps.fmt.outcome }}+g" pr_comment.md
|
|
sed -i "s+[INIT_OUTCOME]+${{ steps.init.outcome }}+g" pr_comment.md
|
|
sed -i "s+[VALIDATE_OUTCOME]+${{ steps.validate.outcome }}+g" pr_comment.md
|
|
sed -i "s+[VALIDATE_OUTPUT]+${{ steps.validate.outputs.stdout }}+g" pr_comment.md
|
|
sed -i "s+[PLAN_OUTCOME]+${{ steps.plan.outcome }}+g" pr_comment.md
|
|
curl -X POST \
|
|
-H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"body\": \"$(cat pr_comment.md)\"}" \
|
|
"https://${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/$PR_NUMBER/comments"
|