Skip to content

[MAINT] Create custom golangci-lint to integrate tfproviderlint #1545

[MAINT] Create custom golangci-lint to integrate tfproviderlint

[MAINT] Create custom golangci-lint to integrate tfproviderlint #1545

Workflow file for this run

name: CI
on:
push:
branches:
- main
- release-v*
pull_request:
branches:
- main
- release-v*
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
defaults:
run:
shell: bash
jobs:
ci:
name: Continuous Integration
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set-up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
cache: true
- run: make build -o lintcheck
- run: make test
docs:
name: Documentation
runs-on: ubuntu-latest
permissions:
contents: read
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set-up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
cache: true
- name: Set-up Terraform
uses: hashicorp/setup-terraform@5e8dbf3c6d9deaf4193ca7a8fb23f2ac83bb6c85 # v4.0.0
with:
terraform_version: latest
terraform_wrapper: false
- run: make checkdocs
- run: make validatedocs
- uses: rvben/rumdl@6fd01e7192b3245aad5b6c4e62a1cea73d2e6fae # v0.1.88
with:
path: ./docs
report-type: annotations
golangci:
name: Lint code
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set-up Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version-file: go.mod
cache: true
- name: golangci-lint
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
version: latest
golangci-new:
name: Strict linting of new code
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set-up Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version-file: go.mod
cache: true
cache-dependency-path: |
go.sum
tools/tfproviderlint/go.sum
custom-gcl
- run: make .golangci.new.yml
- name: golangci-lint
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
version: latest
github-token: ${{ secrets.GITHUB_TOKEN }}
only-new-issues: true
args: --config=.golangci.new.yml
check:
name: Check
needs:
- ci
- docs
- golangci
- golangci-new
if: always()
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Check
run: |
set -euo pipefail
results=( ${{ join(needs.*.result, ' ') }} )
for result in "${results[@]}"; do
if [[ "${result}" == "failure" ]] || [[ "${result}" == "cancelled" ]]; then
echo "::error::Workflow failed!"
exit 1
fi
done