Skip to content

feat: implement enterprise infrastructure automation platform #2

feat: implement enterprise infrastructure automation platform

feat: implement enterprise infrastructure automation platform #2

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [1.21, 1.22]
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Cache Go modules
uses: actions/cache@v3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Install dependencies
run: make deps
- name: Run tests
run: make test
- name: Run linter
uses: golangci/golangci-lint-action@v3
with:
version: latest
- name: Build
run: make build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./coverage.out
flags: unittests
name: codecov-umbrella
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.21
- name: Run security scan
run: |
go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest
make security
- name: Run vulnerability check
run: |
go install golang.org/x/vuln/cmd/govulncheck@latest
make vuln
build-matrix:
runs-on: ubuntu-latest
needs: test
strategy:
matrix:
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
exclude:
- goos: windows
goarch: arm64
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.21
- name: Build for ${{ matrix.goos }}/${{ matrix.goarch }}
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
mkdir -p bin
go build -ldflags "-X main.version=${GITHUB_SHA}" -o bin/chisel-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }} ./cmd/chisel
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: chisel-${{ matrix.goos }}-${{ matrix.goarch }}
path: bin/chisel-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }}