完成初步可运行环境

This commit is contained in:
2024-08-06 09:24:09 +08:00
parent 2cd1b05037
commit d07025a2ea
32 changed files with 3724 additions and 314 deletions
+50
View File
@@ -0,0 +1,50 @@
name: Go
on:
push:
branches:
- main
paths:
- '**.go'
pull_request:
branches:
- main
paths:
- '**.go'
workflow_dispatch: { }
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '^1.20'
cache: true
- uses: bazelbuild/setup-bazelisk@v2
- name: Mount bazel cache
id: cache-bazel
uses: actions/cache@v3
with:
path: "/home/runner/.cache/bazel"
key: bazel
- name: Build
run: make build
- name: Test
run: make test
- name: coverage
run: make coverage
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+63
View File
@@ -0,0 +1,63 @@
name: golangci-lint
on:
push:
branches:
- main
paths:
- '**.go'
pull_request:
branches:
- main
paths:
- '**.go'
workflow_dispatch: { }
permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '^1.21'
cache: true
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: v1.54
# Optional: working directory, useful for monorepos
# working-directory: somedir
# Optional: golangci-lint command line arguments.
#
# Note: By default, the `.golangci.yml` file should be at the root of the repository.
# The location of the configuration file can be changed by using `--config=`
# args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0
# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true
# Optional: if set to true, then all caching functionality will be completely disabled,
# takes precedence over all other caching options.
# skip-cache: true
# Optional: if set to true, then the action won't cache or restore ~/go/pkg.
# skip-pkg-cache: true
# Optional: if set to true, then the action won't cache or restore ~/.cache/go-build.
# skip-build-cache: true
# Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'.
# install-mode: "goinstall"
+20
View File
@@ -0,0 +1,20 @@
name: Code Review GPT
on:
pull_request:
branches: [main]
jobs:
run_code_review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Code Review GPT
uses: mattzcarey/code-review-gpt@v0.1.8
with:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
MODEL: 'gpt-4o'
GITHUB_TOKEN: ${{ github.token }}
+58
View File
@@ -0,0 +1,58 @@
name: Release
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '^1.20'
cache: true
- uses: bazelbuild/setup-bazelisk@v2
- name: Mount bazel cache
id: cache-bazel
uses: actions/cache@v3
with:
path: "/home/runner/.cache/bazel"
key: bazel
- name: Build
run: make build
- name: Test
run: make test
- name: Docker Login
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
run: |
make docker-push
create-release:
runs-on: ubuntu-latest
permissions:
contents: write
needs:
- build
steps:
- name: Create Release
uses: ncipollo/release-action@v1.12.0
with:
generateReleaseNotes: true
prerelease: false
makeLatest: true