Skip to content

feat(ci): add comprehensive GitHub Actions workflows for CI/CD #6

feat(ci): add comprehensive GitHub Actions workflows for CI/CD

feat(ci): add comprehensive GitHub Actions workflows for CI/CD #6

Workflow file for this run

name: Security
on:
push:
branches: [main, master, develop]
pull_request:
branches: [main, master, develop]
schedule:
- cron: '0 0 * * 0' # Weekly on Sunday at midnight
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
security-events: write
pull-requests: write
jobs:
govulncheck:
name: Vulnerability Scanning
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true
- name: Download dependencies
run: go mod download
- name: Run govulncheck
uses: golang/govulncheck-action@v1
with:
args: ./...
gosec:
name: Security Analysis (Gosec)
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true
- name: Download dependencies
run: go mod download
- name: Install gosec
run: go install github.com/securego/gosec/v2/cmd/gosec@latest
- name: Run gosec
run: gosec -no-fail ./...
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
timeout-minutes: 2
permissions:
contents: read
if: github.event_name == 'pull_request'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run dependency review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: high
license-check: true
codeql:
name: CodeQL Analysis
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
security-events: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: go
queries: security-extended
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:go"
actionlint:
name: Workflow Security Check
runs-on: ubuntu-latest
timeout-minutes: 2
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true
- name: Install actionlint
run: go install github.com/rhysd/actionlint/cmd/actionlint@latest
- name: Run actionlint
run: actionlint
shell: bash