.github: separate CI into two workflows build/lint
This adds lots of new linting steps and fixes older ones.
This commit is contained in:
parent
129aac230a
commit
6e2c095ce4
4 changed files with 200 additions and 117 deletions
115
.github/workflows/CI.yaml
vendored
115
.github/workflows/CI.yaml
vendored
|
@ -1,115 +0,0 @@
|
||||||
name: CI
|
|
||||||
on:
|
|
||||||
# See the documentation for more intricate event dispatch here:
|
|
||||||
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#on
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- "!dependabot/*"
|
|
||||||
- "*"
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- "*"
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build & Lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Setup
|
|
||||||
uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: ^1.15
|
|
||||||
- name: Build
|
|
||||||
run: go build -v ./cmd/...
|
|
||||||
- name: Vet
|
|
||||||
run: go vet ./...
|
|
||||||
- name: Imports
|
|
||||||
uses: Jerome1337/goimports-action@v1.0.3
|
|
||||||
- name: Format
|
|
||||||
uses: Jerome1337/gofmt-action@v1.0.4
|
|
||||||
- name: Lint
|
|
||||||
uses: Jerome1337/golint-action@v1.0.2
|
|
||||||
|
|
||||||
unit:
|
|
||||||
name: Unit Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Setup
|
|
||||||
uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: ^1.15
|
|
||||||
- name: Unit Tests
|
|
||||||
run: go test -v -race $(go list ./...)
|
|
||||||
|
|
||||||
e2e-mem:
|
|
||||||
name: E2E Tests (Memory Storage)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Setup
|
|
||||||
uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: ^1.15
|
|
||||||
- name: End-to-End Test
|
|
||||||
run: |
|
|
||||||
go install ./cmd/chihaya
|
|
||||||
cat ./dist/example_config.yaml
|
|
||||||
chihaya --config=./dist/example_config.yaml --debug &
|
|
||||||
pid=$!
|
|
||||||
sleep 2
|
|
||||||
chihaya e2e --debug
|
|
||||||
kill $pid
|
|
||||||
|
|
||||||
e2e-redis:
|
|
||||||
name: E2E Tests (Redis Storage)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
services:
|
|
||||||
redis:
|
|
||||||
image: redis
|
|
||||||
ports: ["6379:6379"]
|
|
||||||
options: --entrypoint redis-server
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Setup
|
|
||||||
uses: actions/setup-go@v2
|
|
||||||
with:
|
|
||||||
go-version: ^1.15
|
|
||||||
- name: Configure redis storage
|
|
||||||
run: |
|
|
||||||
curl -LO https://github.com/jzelinskie/faq/releases/download/0.0.6/faq-linux-amd64
|
|
||||||
chmod +x faq-linux-amd64
|
|
||||||
./faq-linux-amd64 '.chihaya.storage = {"config":{"gc_interval":"3m","peer_lifetime":"31m","prometheus_reporting_interval":"1s","redis_broker":"redis://127.0.0.1:6379/0","redis_connect_timeout":"15s","redis_read_timeout":"15s","redis_write_timeout":"15s"},"name":"redis"}' ./dist/example_config.yaml > ./dist/example_redis_config.yaml
|
|
||||||
cat ./dist/example_redis_config.yaml
|
|
||||||
- name: End-to-End Test
|
|
||||||
run: |
|
|
||||||
go install ./cmd/chihaya
|
|
||||||
chihaya --config=./dist/example_redis_config.yaml --debug &
|
|
||||||
pid=$!
|
|
||||||
sleep 2
|
|
||||||
chihaya e2e --debug
|
|
||||||
kill $pid
|
|
||||||
|
|
||||||
dist:
|
|
||||||
name: Helm Template
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Install Helm
|
|
||||||
uses: engineerd/configurator@v0.0.5
|
|
||||||
with:
|
|
||||||
name: helm
|
|
||||||
pathInArchive: linux-amd64/helm
|
|
||||||
fromGitHubReleases: true
|
|
||||||
repo: helm/helm
|
|
||||||
version: ^v3
|
|
||||||
urlTemplate: https://get.helm.sh/helm-{{version}}-linux-amd64.tar.gz
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Helm Template
|
|
||||||
working-directory: ./dist/helm/chihaya
|
|
||||||
run: helm template . --debug
|
|
112
.github/workflows/build.yaml
vendored
Normal file
112
.github/workflows/build.yaml
vendored
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
---
|
||||||
|
name: "Build & Test"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "!dependabot/*"
|
||||||
|
- "main"
|
||||||
|
pull_request:
|
||||||
|
branches: ["*"]
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: "Go Build"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: "^1.17"
|
||||||
|
- name: "Build"
|
||||||
|
run: "go build ./cmd/..."
|
||||||
|
|
||||||
|
unit:
|
||||||
|
name: "Run Unit Tests"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: "^1.17"
|
||||||
|
- name: "Run `go test`"
|
||||||
|
run: "go test -race ./..."
|
||||||
|
|
||||||
|
e2e-mem:
|
||||||
|
name: "E2E Memory Tests"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: ^1.17
|
||||||
|
- name: "Install and configure chihaya"
|
||||||
|
run: |
|
||||||
|
go install ./cmd/chihaya
|
||||||
|
cat ./dist/example_config.yaml
|
||||||
|
- name: "Run end-to-end tests"
|
||||||
|
run: |
|
||||||
|
chihaya --config=./dist/example_config.yaml --debug &
|
||||||
|
pid=$!
|
||||||
|
sleep 2
|
||||||
|
chihaya e2e --debug
|
||||||
|
kill $pid
|
||||||
|
|
||||||
|
e2e-redis:
|
||||||
|
name: "E2E Redis Tests"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
image: "redis"
|
||||||
|
ports: ["6379:6379"]
|
||||||
|
options: "--entrypoint redis-server"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: ^1.17
|
||||||
|
- name: "Install and configure chihaya"
|
||||||
|
run: |
|
||||||
|
go install ./cmd/chihaya
|
||||||
|
curl -LO https://github.com/jzelinskie/faq/releases/download/0.0.6/faq-linux-amd64
|
||||||
|
chmod +x faq-linux-amd64
|
||||||
|
./faq-linux-amd64 '.chihaya.storage = {"config":{"gc_interval":"3m","peer_lifetime":"31m","prometheus_reporting_interval":"1s","redis_broker":"redis://127.0.0.1:6379/0","redis_connect_timeout":"15s","redis_read_timeout":"15s","redis_write_timeout":"15s"},"name":"redis"}' ./dist/example_config.yaml > ./dist/example_redis_config.yaml
|
||||||
|
cat ./dist/example_redis_config.yaml
|
||||||
|
- name: "Run end-to-end tests"
|
||||||
|
run: |
|
||||||
|
chihaya --config=./dist/example_redis_config.yaml --debug &
|
||||||
|
pid=$!
|
||||||
|
sleep 2
|
||||||
|
chihaya e2e --debug
|
||||||
|
kill $pid
|
||||||
|
|
||||||
|
image-build:
|
||||||
|
name: "Docker Build"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "docker/setup-qemu-action@v1"
|
||||||
|
- uses: "docker/setup-buildx-action@v1"
|
||||||
|
with:
|
||||||
|
driver-opts: "image=moby/buildkit:master"
|
||||||
|
- uses: "docker/build-push-action@v1"
|
||||||
|
with:
|
||||||
|
push: false
|
||||||
|
tags: "latest"
|
||||||
|
|
||||||
|
helm:
|
||||||
|
name: "Helm Template"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- name: "Install Helm"
|
||||||
|
uses: "engineerd/configurator@v0.0.5"
|
||||||
|
with:
|
||||||
|
name: "helm"
|
||||||
|
pathInArchive: "linux-amd64/helm"
|
||||||
|
fromGitHubReleases: true
|
||||||
|
repo: "helm/helm"
|
||||||
|
version: "^v3"
|
||||||
|
urlTemplate: "https://get.helm.sh/helm-{{version}}-linux-amd64.tar.gz"
|
||||||
|
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
- name: "Run `helm template`"
|
||||||
|
working-directory: "./dist/helm/chihaya"
|
||||||
|
run: "helm template . --debug"
|
86
.github/workflows/lint.yaml
vendored
Normal file
86
.github/workflows/lint.yaml
vendored
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
---
|
||||||
|
name: "Lint"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "!dependabot/*"
|
||||||
|
- "main"
|
||||||
|
pull_request:
|
||||||
|
branches: ["*"]
|
||||||
|
jobs:
|
||||||
|
go-mod-tidy:
|
||||||
|
name: "Lint Go Modules"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: "^1.17"
|
||||||
|
- name: "Run `go mod tidy`"
|
||||||
|
run: "go mod tidy && bash -c '[ $(git status --porcelain | tee /dev/fd/2 | wc -c) -eq 0 ]'"
|
||||||
|
|
||||||
|
go-fmt:
|
||||||
|
name: "Format Go"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: "^1.17"
|
||||||
|
- name: "Install gofumpt"
|
||||||
|
run: "go install mvdan.cc/gofumpt@latest"
|
||||||
|
- name: "Run `gofumpt`"
|
||||||
|
run: |
|
||||||
|
GOFUMPT_OUTPUT="$(find . -iname '*.go' -type f | xargs gofumpt -d)"
|
||||||
|
if [ -n "$GOFUMPT_OUTPUT" ]; then
|
||||||
|
echo "The following files are not correctly formatted:"
|
||||||
|
echo "${GOFUMPT_OUTPUT}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
go-lint:
|
||||||
|
name: "Lint Go"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "actions/setup-go@v2"
|
||||||
|
with:
|
||||||
|
go-version: "^1.17"
|
||||||
|
- uses: "golangci/golangci-lint-action@v2"
|
||||||
|
with:
|
||||||
|
version: "v1.43"
|
||||||
|
skip-go-installation: true
|
||||||
|
skip-pkg-cache: true
|
||||||
|
skip-build-cache: false
|
||||||
|
|
||||||
|
extra-lint:
|
||||||
|
name: "Lint YAML & Markdown"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "bewuethr/yamllint-action@v1.1.1"
|
||||||
|
with:
|
||||||
|
config-file: ".yamllint"
|
||||||
|
- uses: "nosborn/github-action-markdown-cli@v2.0.0"
|
||||||
|
with:
|
||||||
|
files: "."
|
||||||
|
config_file: ".markdownlint.yaml"
|
||||||
|
|
||||||
|
codeql:
|
||||||
|
name: "Analyze with CodeQL"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
permissions:
|
||||||
|
actions: "read"
|
||||||
|
contents: "read"
|
||||||
|
security-events: "write"
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: ["go"]
|
||||||
|
steps:
|
||||||
|
- uses: "actions/checkout@v2"
|
||||||
|
- uses: "github/codeql-action/init@v1"
|
||||||
|
with:
|
||||||
|
languages: "${{ matrix.language }}"
|
||||||
|
- uses: "github/codeql-action/autobuild@v1"
|
||||||
|
- uses: "github/codeql-action/analyze@v1"
|
|
@ -1,7 +1,7 @@
|
||||||
# Chihaya
|
# Chihaya
|
||||||
|
|
||||||
[![Build Status](https://github.com/chihaya/chihaya/workflows/CI/badge.svg)](https://github.com/chihaya/chihaya/actions)
|
[![Build Status](https://github.com/chihaya/chihaya/workflows/Build%20&%20Test/badge.svg)](https://github.com/chihaya/chihaya/actions)
|
||||||
[![Docker Repository on Quay.io](https://quay.io/repository/jzelinskie/chihaya/status "Docker Repository on Quay.io")](https://quay.io/repository/jzelinskie/chihaya)
|
[![Container Image](https://img.shields.io/github/v/release/chihaya/chihaya?color=%232496ED&label=container&logo=docker "Container Image")](https://quay.io/repository/jzelinskie/chihaya?tab=tags)
|
||||||
[![GoDoc](https://godoc.org/github.com/chihaya/chihaya?status.svg)](https://godoc.org/github.com/chihaya/chihaya)
|
[![GoDoc](https://godoc.org/github.com/chihaya/chihaya?status.svg)](https://godoc.org/github.com/chihaya/chihaya)
|
||||||
[![License](https://img.shields.io/badge/license-BSD-blue.svg)](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29)
|
[![License](https://img.shields.io/badge/license-BSD-blue.svg)](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29)
|
||||||
[![IRC Channel](https://img.shields.io/badge/IRC-%23chihaya-%235555ff.svg "IRC Channel")](https://web.libera.chat/#chihaya)
|
[![IRC Channel](https://img.shields.io/badge/IRC-%23chihaya-%235555ff.svg "IRC Channel")](https://web.libera.chat/#chihaya)
|
||||||
|
|
Loading…
Reference in a new issue