-
Notifications
You must be signed in to change notification settings - Fork 3
132 lines (116 loc) · 3.23 KB
/
go.yml
File metadata and controls
132 lines (116 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Go
on:
push:
branches:
- v2
pull_request:
branches:
- v2
workflow_dispatch:
schedule:
- cron: "0 0 1 * *"
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: ./go.mod
id: go
- name: Download dependencies
run: go mod download
- name: Build
run: |
go build -v
go build -o ./migration -v cmd/migration/main.go
lint:
name: Lint
runs-on: ubuntu-latest
needs:
- build
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version-file: ./go.mod
- uses: golangci/golangci-lint-action@v9
with:
version: latest
test:
name: Test
runs-on: ubuntu-latest
needs: [build]
services:
mariadb:
image: mariadb:10.11.4
ports:
- 50000:3306
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: jomon
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: ./go.mod
id: go
- name: Download dependencies
run: go mod download
- name: Create uploads directory
run: mkdir -p $GITHUB_WORKSPACE/uploads
- name: Set UPLOAD_DIR env
run: echo "UPLOAD_DIR=$GITHUB_WORKSPACE/uploads" >> $GITHUB_ENV
- name: Test
run: go test -race -coverprofile=coverage.out -covermode=atomic ./...
env:
MARIADB_USERNAME: root
MARIADB_PASSWORD: password
MARIADB_DATABASE: jomon
MARIADB_HOSTNAME: "localhost"
MARIADB_PORT: 50000
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.out
token: ${{ secrets.CODECOV_TOKEN }}
migrations:
runs-on: ubuntu-latest
needs:
- build
services:
mariadb:
image: mariadb:10.11.4
ports:
- 50000:3306
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: jomon
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: ariga/setup-atlas@v0
- run: |
go run cmd/migration/main.go diff
git diff --quiet --exit-code -- migrations || {
echo 'ERROR: uncommitted schema changes found' 1>&2
echo ' please run cmd/migration/main.go locally' 1>&2
echo ' for more information, see commit e45f8ad' 1>&2
exit $?
}
env:
MARIADB_HOSTNAME: 'localhost'
MARIADB_PORT: '50000'
MARIADB_USERNAME: 'root'
MARIADB_PASSWORD: 'password'
MARIADB_DATABASE: 'jomon'
# TODO: atlas migrate lint
# NOTE: atlas migrate test, atlas schema test はやらない
# どちらも Atlas Proユーザー向けの機能で使えないため