Terraform-CI #1248
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
# This is a workflow with the following actions | |
#1. Check Go formatting, linting, vetting | |
#2. Check for forbidden words | |
#3. Build | |
#4. Go security | |
#5. Generate | |
#6. Malware Scanner | |
#7. Acceptance Test | |
name: Terraform-CI | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on pull request events | |
pull_request: | |
# Runs CI on every day (at 06:00 UTC) | |
schedule: | |
- cron: '0 6 * * *' | |
push: | |
branches: [ "main" ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# Testing only needs permissions to read the repository contents. | |
permissions: | |
contents: read | |
env: | |
# Go language version to use for building. This value should also be updated | |
# in the testing workflow if changed. | |
GO_VERSION: '1.22' | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
code-check: | |
name: Check Go formatting, linting, vetting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the code | |
uses: actions/checkout@v3 | |
- name: Run the formatter, linter, and vetter | |
uses: dell/common-github-actions/go-code-formatter-linter-vetter@main | |
with: | |
directories: ./... | |
- uses: WillAbides/[email protected] | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Run the static check | |
uses: dominikh/[email protected] | |
with: | |
# Trying this fix https://github.com/dominikh/staticcheck-action/pull/12 | |
version: "2023.1.3" | |
install-go: false | |
sanitize: | |
name: Check for forbidden words | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the code | |
uses: actions/checkout@v3 | |
- name: Replace "master" with "main" in ATTRIBUTION.md | |
run: sed -i 's/\/master/\/main/g' about/ATTRIBUTION.md | |
- name: Run the forbidden words scan | |
uses: dell/common-github-actions/code-sanitizer@main | |
with: | |
args: /github/workspace | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- uses: actions/checkout@v3 | |
- run: go mod download | |
- run: go build -v . | |
go_security_scan: | |
name: Go security | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the code | |
uses: actions/checkout@v3 | |
- name: Run Go Security | |
uses: dell/common-github-actions/gosec-runner@main | |
with: | |
directories: ./... | |
# Commenting out since the github.com/hashicorp/terraform-plugin-docs v0.19.4 has a vulnerablity | |
# generate: | |
# name: Generate | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: actions/setup-go@v3 | |
# with: | |
# go-version: ${{ env.GO_VERSION }} | |
# - run: go generate ./... | |
# - name: git diff | |
# run: | | |
# git diff --compact-summary --exit-code || \ | |
# (echo; echo "Unexpected difference in directories after code generation. Run 'go generate ./...' command and commit."; exit 1) | |
malware_security_scan: | |
name: Malware Scanner | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the code | |
uses: actions/checkout@v3 | |
- name: Malware Scanner | |
uses: dell/common-github-actions/malware-scanner@main | |
with: | |
directories: . | |
options: -ri | |
test: | |
name: Terraform Provider Unit Tests | |
needs: [build, ] | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- uses: actions/checkout@v3 | |
- run: go mod download | |
- run: go test -v -cover ./clients/ | |
timeout-minutes: 60 | |
- run: go test -v ./utils/ | |
timeout-minutes: 60 |