Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding linters in makefile and gha #99

Closed
wants to merge 12 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
130 changes: 130 additions & 0 deletions .github/workflows/terraform-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# 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


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.20'

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
golangci:
name: Check Go formatting, linting, vetting using golangci-lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: v1.54
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: ./redfish/... # TBD ./...
sanitize:
name: Check for forbidden words
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
- name: Run the forbidden words scan
uses: dell/common-github-actions/code-sanitizer@main
with:
args: /github/workspace/redfish # TBD /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 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: ./...

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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ override.tf.json
# Ignore CLI configuration files
.terraformrc
terraform.rc
terraform
*.terraform.lock.hcl

.idea/
Expand All @@ -65,3 +64,7 @@ website/.bundle
website/build
website/node_modules
website/vendor

redfish/provider/redfish_test.env
test
vendor/
Loading
Loading