-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (115 loc) · 4.4 KB
/
main.yml
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
133
134
135
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: CI
on:
push:
branches: [develop, master, next, beta, alpha]
pull_request:
types: [ opened, synchronize ]
env:
NODE_VERSION: 18
NODE_REGISTRY: 'https://registry.npmjs.org'
jobs:
build:
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_HOST: "%"
MYSQL_ROOT_PASSWORD: start123
ports:
- 3306:3306
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
minio:
image: lazybit/minio:latest
env:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: start123
ports:
- 9000:9000
vault:
image: vault:1.12.0
env:
VAULT_DEV_ROOT_TOKEN_ID: start123
VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8090
ports:
- 8090:8090
redis:
image: docker.io/bitnami/redis:latest
env:
ALLOW_EMPTY_PASSWORD: yes
ports:
- 6379:6379
authup:
image: tada5hi/authup
env:
NODE_ENV: test
ROBOT_ENABLED: true
VAULT: start123@http://127.0.0.1:8090/v1/
HOST: 0.0.0.0
ports:
- 3000:3000
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
with:
node-version: ${{ env.PRIMARY_NODE_VERSION }}
- name: Build
uses: ./.github/actions/build
- name: Test API
env:
PORT: 4000
TYPEORM_CONNECTION: mysql
TYPEORM_HOST: 127.0.0.1
TYPEORM_USERNAME: root
TYPEORM_PASSWORD: start123
TYPEORM_DATABASE: app
SKIP_PROPOSAL_APPROVAL_OPERATION: true
SKIP_TRAIN_APPROVAL_OPERATION: true
AUTHUP_API_URL: http://localhost:3000/
VAULT_CONNECTION_STRING: start123@http://127.0.0.1:8090/v1/
run: |
npm run test --workspace=packages/server-api
- name: Test Train-Manager
run: |
npm run test --workspace=packages/server-train-manager
release:
name: Release
if: |
!startsWith(github.event.head_commit.message , 'chore(release):') &&
github.event_name == 'push' &&
github.ref_name != 'develop'
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install
uses: ./.github/actions/install
with:
node-version: ${{ env.NODE_VERSION }}
node-registry: ${{ env.NODE_REGISTRY }}
- name: Build
uses: ./.github/actions/build
- name: Publish
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor}}@users.noreply.github.com"
if [ ${{ github.ref_name }} = master ]; then
npx lerna version --conventional-commits --conventional-graduate --yes
else
npx lerna version --conventional-commits --conventional-prerelease --preid ${{ github.ref_name }} --yes
fi
npx lerna publish from-git --yes
exit 0