Skip to content

Commit

Permalink
chore: add basic GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
ashishb committed Mar 9, 2024
1 parent 12f2345 commit 33a11cf
Show file tree
Hide file tree
Showing 4 changed files with 218 additions and 0 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/build-go.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Generated by Gabo (https://github.com/ashishb/gabo)
---
name: Lint Go

on: # yamllint disable-line rule:truthy
push:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/build-go.yaml"
pull_request:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/build-go.yaml"


concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

# Run it locally with https://github.com/nektos/act
# act -j buildGo
buildGo:
runs-on: ubuntu-latest
timeout-minutes: 15

strategy:
matrix:
# Without quotes, 1.20 becomes 1.2!
go-version: ["1.22"]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}

# Ref: https://github.com/actions/cache/blob/main/examples.md#go---modules
# Warning: This is Linux specific
- uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Build
working-directory: src/wp2hugo
run: make build_debug build_prod
55 changes: 55 additions & 0 deletions .github/workflows/format-go.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Generated by Gabo (https://github.com/ashishb/gabo)
---
name: Validate Go code formatting

on: # yamllint disable-line rule:truthy
push:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/format-go.yaml"
pull_request:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/format-go.yaml"


concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

validateCodeFormatGo:
runs-on: ubuntu-latest
timeout-minutes: 15

strategy:
matrix:
# Without quotes, 1.20 becomes 1.2!
go-version: ["1.22"]
steps:
- name: checkout
uses: actions/checkout@v4

- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}

# Ref: https://github.com/actions/cache/blob/main/examples.md#go---modules
# Warning: This is Linux specific
- uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Validate code formatting
run: |
gofmt -l .
test -z $(gofmt -l .)
61 changes: 61 additions & 0 deletions .github/workflows/lint-go.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Generated by Gabo (https://github.com/ashishb/gabo)
---
name: Lint Go

on: # yamllint disable-line rule:truthy
push:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/lint-go.yaml"
pull_request:
branches: [main, master]
paths:
- "**.go"
- ".github/workflows/lint-go.yaml"


concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

# Run it locally with https://github.com/nektos/act
# act -j lintGo
lintGo:
runs-on: ubuntu-latest
timeout-minutes: 15

strategy:
matrix:
# Without quotes, 1.20 becomes 1.2!
go-version: ["1.22"]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}

# Ref: https://github.com/actions/cache/blob/main/examples.md#go---modules
# Warning: This is Linux specific
- uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Run golangci-lint on src/wp2hugo
uses: golangci/golangci-lint-action@v3
with:
# We use cache provided by "actions/setup-go@v4"
skip-cache: true
# Directory containing go.mod file
working-directory: "src/wp2hugo"
45 changes: 45 additions & 0 deletions .github/workflows/lint-markdown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Generated by Gabo (https://github.com/ashishb/gabo)
---
# Run this locally with act - https://github.com/nektos/act
# act -j lintMarkdown
name: Lint Markdown

on: # yamllint disable-line rule:truthy
push:
branches: [main, master]
paths:
- '**.md'
- '.github/workflows/lint-markdown.yaml'
pull_request:
branches: [main, master]
paths:
- '**.md'
- '.github/workflows/lint-markdown.yaml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lintMarkdown:
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Ruby
# See https://github.com/ruby/setup-ruby#versioning
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0

- name: Install dependencies
run: gem install mdl

- name: Run tests
# Rule list: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md
# Don't check for line length (MD013)
# Don't care about list ordering (MD029)
run: mdl --git-recurse --rules ~MD013,~MD029 .

0 comments on commit 33a11cf

Please sign in to comment.