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

Reusable workflows #23

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions .github/workflows/analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Copyright 2020 Wayback Archiver. All rights reserved.
# Use of this source code is governed by the GNU GPL v3
# license that can be found in the LICENSE file.

name: "Analysis"

on:
push:
branches:
- main
- develop
pull_request:
branches: [ main ]
schedule:
- cron: '33 23 * * 4'

# Declare default permissions as read only.
permissions: read-all

jobs:
analysis:
name: Scorecards
uses: wabarc/.github/.github/workflows/reusable-scorecards.yml@main
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write

Check failure

Code scanning / Scorecard

Token-Permissions

score is 0: jobLevel 'security-events' permission set to 'write' Click Remediation section below to solve this issue
# Used to receive a badge. (Upcoming feature)
id-token: write
actions: read
contents: read

codeql:
name: CodeQL
permissions:
security-events: write

Check failure

Code scanning / Scorecard

Token-Permissions

score is 0: jobLevel 'security-events' permission set to 'write' Click Remediation section below to solve this issue
actions: read
contents: read
strategy:
fail-fast: false
matrix:
language: [ 'go' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
uses: wabarc/.github/.github/workflows/reusable-codeql.yml@main
with:
language: ${{ matrix.language }}
config-file: './.github/codeql/codeql-config.yml'

nancy:
name: Sonatype Nancy
uses: wabarc/.github/.github/workflows/reusable-nancy.yml@main

semgrep:
name: Semgrep Scan
if: github.actor != 'dependabot[bot]'
uses: wabarc/.github/.github/workflows/reusable-semgrep.yml@main

fossa:
name: FOSSA
uses: wabarc/.github/.github/workflows/reusable-fossa.yml@main
secrets:
fossa-apikey: ${{ secrets.FOSSA_APIKEY }}

dependency-review:
name: Dependency Review
uses: wabarc/.github/.github/workflows/reusable-dependency-review.yml@main
69 changes: 0 additions & 69 deletions .github/workflows/codeql-analysis.yml

This file was deleted.

63 changes: 34 additions & 29 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Copyright 2022 Wayback Archiver. All rights reserved.
# Use of this source code is governed by the GNU GPL v3
# license that can be found in the LICENSE file.
#
name: Linter

on:
Expand All @@ -9,33 +13,34 @@ on:
- '**'
types: [ opened, synchronize, reopened ]

permissions:
contents: read

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout default branch
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Lint Code Base
uses: github/super-linter@v4
env:
DEFAULT_BRANCH: 'main'
VALIDATE_MARKDOWN: true
VALIDATE_SHELL_SHFMT: true
VALIDATE_DOCKERFILE: true
VALIDATE_BASH: true
VALIDATE_BASH_EXEC: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

go:
runs-on: ubuntu-latest
steps:
- name: Checkout default branch
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Golang linter
uses: golangci/golangci-lint-action@v2
super-linter:
name: Super Linter
uses: wabarc/.github/.github/workflows/reusable-super-linter.yml@main

golangci:
name: golangci-lint
uses: wabarc/.github/.github/workflows/reusable-golangci.yml@main

shellcheck:
name: ShellCheck
uses: wabarc/.github/.github/workflows/reusable-shellcheck.yml@main

misspell:
name: Misspell
uses: wabarc/.github/.github/workflows/reusable-misspell.yml@main

alex:
name: Alex
uses: wabarc/.github/.github/workflows/reusable-alex.yml@main

urlcheck:
name: URLCheck
uses: wabarc/.github/.github/workflows/reusable-urlcheck.yml@main

goreportcard:
name: Go Report Card
uses: wabarc/.github/.github/workflows/reusable-goreportcard.yml@main
20 changes: 10 additions & 10 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Copyright 2020 Wayback Archiver. All rights reserved.
# Use of this source code is governed by the GNU GPL v3
# license that can be found in the LICENSE file.
#
name: Stale

on:
schedule:
- cron: "0 3 * * 6"
workflow_dispatch:

permissions:
issues: write
pull-requests: write

jobs:
stale:
name: Stale
runs-on: ubuntu-latest
steps:
- name: Mark stale issues and pull requests
uses: actions/stale@v4
with:
repo-token: ${{ github.token }}
stale-issue-message: "This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days"
stale-pr-message: 'It has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days'
days-before-stale: 120
days-before-close: 5
uses: wabarc/.github/.github/workflows/reusable-stale.yml@main
80 changes: 53 additions & 27 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,56 @@ jobs:
os: [ ubuntu-latest, macos-latest, windows-latest ]
go: [ "1.13", "1.14", "1.15", "1.16", "1.17", "1.18", "1.19" ]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}

- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Get dependencies
run: |
go get -v -t -d ./...

- name: Run test
run: |
make test
make test-cover

- name: Upload coverage
uses: actions/upload-artifact@v2
with:
name: coverage
path: coverage.*

- name: Run integration test
run: make test-integration
- name: Harden Runner
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34 # v1.5.0
with:
egress-policy: audit
disable-telemetry: true

- name: Set up Go ${{ matrix.go }}.x
uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # v3.3.1
with:
go-version: ${{ matrix.go }}

- name: Check out code base
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
with:
fetch-depth: 0

- name: Check out code base
if: github.event_name == 'pull_request'
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- name: Cache go module
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11
with:
path: |
~/.cache/go-build
~/go/pkg/mod
~/Library/Caches/go-build
~\AppData\Local\go-build
~\go\pkg\mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Get dependencies
run: |
go get -v -t -d ./...

- name: Run test
run: |
make test
make test-cover

- name: Upload coverage
uses: actions/upload-artifact@v2

Check warning

Code scanning / Scorecard

Pinned-Dependencies

score is 7: GitHub-owned GitHubAction not pinned by hash Click Remediation section below to solve this issue
with:
name: coverage
path: coverage.*

- name: Run integration test
run: make test-integration