-
Notifications
You must be signed in to change notification settings - Fork 9
feat: 提交workflow配置 #13
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
Changes from 5 commits
99f784a
2da3918
3a1b8fe
ba57e0c
3c31380
9712449
76d6cd3
3236129
a3de613
929ef3b
fb6c0ee
cdfcf6d
e9cd6bb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# To use, store as .git/hooks/pre-commit inside your repository and make sure | ||
# it has execute permissions. | ||
# | ||
# This script does not handle file names that contain spaces. | ||
|
||
# Pre-commit configuration | ||
|
||
exit 0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/bin/sh | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# git test pre-push hook | ||
# | ||
# To use, store as .git/hooks/pre-push inside your repository and make sure | ||
# it has execute permissions. | ||
# | ||
# This script does not handle file names that contain spaces. | ||
|
||
# Pre-push configuration | ||
remote=$1 | ||
url=$2 | ||
echo >&2 "Try pushing $2 to $1" | ||
|
||
TEST="go test ./... -race -cover -failfast" | ||
LINTER="golangci-lint run -c .golangci.yml" | ||
|
||
# Run test and return if failed | ||
printf "Running go test..." | ||
$TEST | ||
RESULT=$? | ||
if [ $RESULT -ne 0 ]; then | ||
echo >&2 "$TEST" | ||
echo >&2 "Check code to pass test." | ||
exit 1 | ||
fi | ||
|
||
# Run linter and return if failed | ||
printf "Running go linter..." | ||
$LINTER | ||
RESULT=$? | ||
if [ $RESULT -ne 0 ]; then | ||
echo >&2 "$LINTER" | ||
echo >&2 "Check code to pass linter." | ||
exit 1 | ||
fi | ||
|
||
exit 0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: Post Coverage by Codecov | ||
|
||
on: | ||
push: | ||
branches: [main,dev] | ||
paths-ignore: | ||
- 'docs/**' | ||
- '**.md' | ||
|
||
# pull_request: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 合理也打开,同样是针对 main 和 dev 分支 |
||
# branches: [ dev ] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 2 | ||
|
||
- name: Set up Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: "1.24.2" | ||
|
||
- name: Install Docker Compose | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y docker-compose | ||
|
||
- name: Start Docker service | ||
run: sudo service docker start | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 这些都不需要,action 内部本身就是支持 docker 的 |
||
|
||
- name: Start Docker Compose | ||
run: | | ||
docker-compose -f ./docker-compose.yaml up -d | ||
|
||
- name: Wait for MySQL | ||
run: | | ||
until nc -z 127.0.0.1 13306; do | ||
echo "Waiting for MySQL..." | ||
sleep 2 | ||
done | ||
|
||
until nc -z 127.0.0.1 13316; do | ||
echo "Waiting for MySQL..." | ||
sleep 2 | ||
done | ||
|
||
- name: Build | ||
run: go build -v ./... | ||
|
||
- name: Test | ||
run: go test -race -coverprofile=cover.out -v ./... | ||
|
||
- name: Stop Docker Compose | ||
run: docker-compose -f ./docker-compose.yaml down | ||
|
||
- name: Upload coverage reports to Codecov | ||
uses: codecov/codecov-action@v5 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: Format Go code | ||
|
||
on: | ||
push: | ||
branches: [ main,dev ] | ||
pull_request: | ||
branches: [ main,dev ] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 用 v4 了 |
||
- name: Set up Go | ||
uses: actions/setup-go@v3 | ||
with: | ||
go-version: "1.24.2" | ||
|
||
- name: Install goimports | ||
run: | | ||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest && \ | ||
go install golang.org/x/tools/cmd/goimports@latest | ||
|
||
- name: Check | ||
run: | | ||
make check | ||
if [ -n "$(git status --porcelain)" ]; then | ||
echo >&2 "错误: 请在本地运行命令'make check'后再提交." | ||
exit 1 | ||
fi |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: golangci-lint | ||
on: | ||
push: | ||
tags: | ||
- v* | ||
branches: [main,dev] | ||
pull_request: | ||
branches: [main,dev] | ||
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/setup-go@v3 | ||
with: | ||
go-version: "1.24.2" | ||
- uses: actions/checkout@v4 | ||
- name: golangci-lint | ||
uses: golangci/golangci-lint-action@v3 | ||
with: | ||
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version | ||
version: latest | ||
|
||
args: --timeout=10m | ||
# Optional: working directory, useful for monorepos | ||
# working-directory: somedir | ||
|
||
# Optional: golangci-lint command line arguments. | ||
# args: -c .golangci.yml | ||
|
||
# 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 the all caching functionality will be complete disabled, | ||
# takes precedence over all other caching options. | ||
# skip-cache: true | ||
|
||
# Optional: if set to true then the action don't cache or restore ~/go/pkg. | ||
# skip-pkg-cache: true | ||
|
||
# Optional: if set to true then the action don't cache or restore ~/.cache/go-build. | ||
# skip-build-cache: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: Check License Lines | ||
on: | ||
pull_request: | ||
types: [opened, synchronize, reopened, labeled, unlabeled] | ||
branches: | ||
- main | ||
#- dev | ||
jobs: | ||
check-license-lines: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@master | ||
- name: Check License Lines | ||
uses: kt3k/[email protected] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Copyright 2021 ecodeclub | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
run: | ||
go: '1.24.2' | ||
skip-dirs: | ||
- .idea |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"**/*.go": "// Copyright 2021 ecodeclub", | ||
"**/*.{yml,yaml,sql}": "# Copyright 2021 ecodeclub", | ||
"**/*.sh": "# Copyright 2021 ecodeclub", | ||
|
||
"ignore": [ | ||
"mocks","*.pb.go", "*.pb.gw.go" | ||
] | ||
} |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
.PHONY: bench | ||
bench: | ||
@go test -bench=. -benchmem ./... | ||
|
||
#.PHONY: ut | ||
#ut: | ||
# @go test -race -v ./... -failfast | ||
|
||
.PHONY: e2e | ||
e2e: | ||
@docker compose -f docker-compose.yaml up -d | ||
@go test -race -v -failfast ./... | ||
@docker compose -f docker-compose.yaml down | ||
|
||
.PHONY: fmt | ||
fmt: | ||
@goimports -l -w $$(find . -type f -name '*.go' -not -path "./.idea/*") | ||
|
||
.PHONY: lint | ||
lint: | ||
@golangci-lint run -c .golangci.yml | ||
|
||
.PHONY: tidy | ||
tidy: | ||
@go mod tidy -v | ||
|
||
.PHONY: check | ||
check: | ||
@$(MAKE) fmt | ||
@$(MAKE) tidy | ||
@$(MAKE) lint |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.