Skip to content

CI: improve fmt and validate check #702

CI: improve fmt and validate check

CI: improve fmt and validate check #702

Workflow file for this run

name: E2E Test Check
on:
pull_request:
branches:
- master
- main
types: [ 'opened', 'synchronize' ]
paths:
- '.github/**'
- '.github/workflows/**'
- 'quickstarts/**'
jobs:
terraform-fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- name: Terraform fmt
id: fmt
run: terraform -chdir=quickstarts fmt -check -recursive
terraform-validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v34
with:
dir_names: "true"
separator: ","
files: "quickstarts/*"
dir_names_max_depth: 3
- name: pr-check
run: |
CHANGED_FOLDERS="${{ steps.changed-files.outputs.all_changed_files }}"
if [ -z "$CHANGED_FOLDERS" ]; then
echo "No changed quickstarts found"
exit 0
fi
error=false
for f in ${CHANGED_FOLDERS//,/ }
do
f=$(echo $f | xargs echo -n)
echo "===> Terraform validating in" $f
terraform -chdir=$f init -upgrade
terraform -chdir=$f validate
if [[ $? -ne 0 ]]; then
echo -e "\033[31m[ERROR]\033[0m: Some quickstarts codes contain errors, and please running terraform validate command before pushing."
exit 1
fi
done
# e2e-check:
# needs: [terraform-fmt, terraform-validate]
# runs-on: ubuntu-latest
# name: 'e2e check'
# steps:
# - name: checkout
# uses: actions/checkout@v3
# - name: Checking the max commits number
# run: |
# commitNum=${{ github.event.pull_request.commits }}
# if [[ ${commitNum} -gt 1 ]]; then
# echo -e "\nERROR: The PR has ${commitNum} commits, and please rebase it to 1.\n"
# exit 1
# fi
# - name: Get changed files
# id: changed-files
# uses: tj-actions/changed-files@v34
# with:
# dir_names: "true"
# separator: ","
# files: "quickstarts/*"
# dir_names_max_depth: 3
# - name: set id
# id: set-job-id
# uses: ayachensiyuan/get-action-job-id@v1.6
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# job-name: 'e2e check'
# - name: get pull request info
# run: |
# echo "repo name is" ${{github.event.pull_request.head.repo.full_name}}
# echo "branch is" ${{github.event.pull_request.head.ref}}
# echo "the current job id is ${{ steps.set-job-id.outputs.jobId }}"
# - name: e2e test
# run: |
# CHANGED_FOLDERS="${{ steps.changed-files.outputs.all_changed_files }}"
# if [ -z "$CHANGED_FOLDERS" ]; then
# echo "No changed quickstarts found"
# exit 0
# fi
# objectPath="github-action/${{github.repository}}/e2e/Action-${{github.run_number}}-${{github.run_id}}-${{ steps.set-job-id.outputs.jobId }}"
# curl -H "X-Fc-Invocation-Type:Async" -s https://example-ci-terrafoodule-ci-svrrwvrpnj.ap-southeast-1.fcapp.run/?branch=${{github.event.pull_request.head.ref}}\&repo_name=${{github.event.pull_request.head.repo.full_name}}\&oss_object_path=${objectPath}
# go run scripts/e2e_check.go ${objectPath}