Merge branch 'master' of https://github.com/lxy1151/gf_session #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# The main codes build and unit testing running workflow. | |
name: GoFrame Main CI | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
- personal/** | |
- feature/** | |
- enhance/** | |
- fix/** | |
pull_request: | |
branches: | |
- master | |
- develop | |
- personal/** | |
- feature/** | |
- enhance/** | |
- fix/** | |
# This allows a subsequently queued workflow run to interrupt previous runs | |
concurrency: | |
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' | |
cancel-in-progress: true | |
env: | |
TZ: "Asia/Shanghai" | |
jobs: | |
code-test: | |
runs-on: ubuntu-20.04 | |
# Service containers to run with `code-test` | |
services: | |
# Etcd service. | |
# docker run -d --name etcd -p 2379:2379 -e ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:3.4.24 | |
etcd: | |
image: bitnami/etcd:3.4.24 | |
env: | |
ALLOW_NONE_AUTHENTICATION: yes | |
ports: | |
- 2379:2379 | |
# Redis backend server. | |
redis: | |
image : redis:7.0 | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
# Maps tcp port 6379 on service container to the host | |
- 6379:6379 | |
# MySQL backend server. | |
# docker run -d --name mysql \ | |
# -p 3306:3306 \ | |
# -e MYSQL_DATABASE=test \ | |
# -e MYSQL_ROOT_PASSWORD=12345678 \ | |
# mysql:5.7 | |
mysql: | |
image: mysql:5.7 | |
env: | |
MYSQL_DATABASE : test | |
MYSQL_ROOT_PASSWORD: 12345678 | |
ports: | |
- 3306:3306 | |
# MariaDb backend server. | |
mariadb: | |
image: mariadb:10.4 | |
env: | |
MARIADB_DATABASE: test | |
MARIADB_ROOT_PASSWORD: 12345678 | |
ports: | |
- 3307:3306 | |
# PostgreSQL backend server. | |
# docker run -d --name postgres \ | |
# -p 5432:5432 \ | |
# -e POSTGRES_PASSWORD=12345678 \ | |
# -e POSTGRES_USER=postgres \ | |
# -e POSTGRES_DB=test \ | |
# -v postgres:/Users/john/Temp/postgresql/data \ | |
# postgres:17-alpine | |
postgres: | |
image: postgres:17-alpine | |
env: | |
POSTGRES_PASSWORD: 12345678 | |
POSTGRES_USER: postgres | |
POSTGRES_DB: test | |
TZ: Asia/Shanghai | |
ports: | |
- 5432:5432 | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
# MSSQL backend server. | |
# docker run \ | |
# -p 1433:1433 \ | |
# -e ACCEPT_EULA=Y \ | |
# -e SA_PASSWORD=LoremIpsum86 \ | |
# -e MSSQL_DB=test \ | |
# -e MSSQL_USER=root \ | |
# -e MSSQL_PASSWORD=LoremIpsum86 \ | |
# loads/mssqldocker:14.0.3391.2 | |
mssql: | |
image: loads/mssqldocker:14.0.3391.2 | |
env: | |
ACCEPT_EULA: Y | |
SA_PASSWORD: LoremIpsum86 | |
MSSQL_DB: test | |
MSSQL_USER: root | |
MSSQL_PASSWORD: LoremIpsum86 | |
ports: | |
- 1433:1433 | |
options: >- | |
--health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P LoremIpsum86 -l 30 -Q \"SELECT 1\" || exit 1" | |
--health-start-period 10s | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 10 | |
# ClickHouse backend server. | |
# docker run -d --name clickhouse \ | |
# -p 9000:9000 -p 8123:8123 -p 9001:9001 \ | |
# loads/clickhouse-server:22.1.3.7 | |
clickhouse-server: | |
image: loads/clickhouse-server:22.1.3.7 | |
ports: | |
- 9000:9000 | |
- 8123:8123 | |
- 9001:9001 | |
# Polaris backend server. | |
# docker run -d --name polaris \ | |
# -p 8090:8090 -p 8091:8091 -p 8093:8093 -p 9090:9090 -p 9091:9091 \ | |
# loads/polaris-server-standalone:1.11.2 | |
# | |
# docker run -d --name polaris \ | |
# -p 8090:8090 -p 8091:8091 -p 8093:8093 -p 9090:9090 -p 9091:9091 \ | |
# loads/polaris-standalone:v1.16.3 | |
polaris: | |
image: loads/polaris-standalone:v1.17.2 | |
ports: | |
- 8090:8090 | |
- 8091:8091 | |
- 8093:8093 | |
- 9090:9090 | |
- 9091:9091 | |
# Oracle 11g server. | |
# docker run \ | |
# -e ORACLE_ALLOW_REMOTE=true \ | |
# -e ORACLE_SID=XE \ | |
# -e ORACLE_DB_USER_NAME=system \ | |
# -e ORACLE_DB_PASSWORD=oracle \ | |
# -p 1521:1521 \ | |
# loads/oracle-xe-11g-r2:11.2.0 | |
oracle-server: | |
image: loads/oracle-xe-11g-r2:11.2.0 | |
env: | |
ORACLE_ALLOW_REMOTE: true | |
ORACLE_SID: XE | |
ORACLE_DB_USER_NAME: system | |
ORACLE_DB_PASSWORD: oracle | |
ports: | |
- 1521:1521 | |
# dm8 server | |
# docker run -p 5236:5236 loads/dm:v8.1.2.128_ent_x86_64_ctm_pack4 | |
dm-server: | |
image: loads/dm:v8.1.2.128_ent_x86_64_ctm_pack4 | |
ports: | |
- 5236:5236 | |
zookeeper: | |
image: zookeeper:3.8 | |
ports: | |
- 2181:2181 | |
strategy: | |
matrix: | |
go-version: [ "1.20", "1.21", "1.22", "1.23" ] | |
goarch: [ "386", "amd64" ] | |
steps: | |
# TODO: szenius/set-timezone update to node16 | |
# sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | |
- name: Setup Timezone | |
uses: szenius/[email protected] | |
with: | |
timezoneLinux: "Asia/Shanghai" | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Start Apollo Containers | |
run: docker compose -f ".github/workflows/apollo/docker-compose.yml" up -d --build | |
- name: Start Nacos Containers | |
run: docker compose -f ".github/workflows/nacos/docker-compose.yml" up -d --build | |
- name: Start Redis Cluster Containers | |
run: docker compose -f ".github/workflows/redis/docker-compose.yml" up -d --build | |
- name: Start Consul Containers | |
run: docker compose -f ".github/workflows/consul/docker-compose.yml" up -d --build | |
- name: Setup Golang ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache-dependency-path: '**/go.sum' | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "29.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install the protocol compiler plugins for Go | |
run: | | |
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest | |
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest | |
export PATH="$PATH:$(go env GOPATH)/bin" | |
- name: Before Script | |
run: bash .github/workflows/before_script.sh | |
- name: Build & Test | |
if: ${{ (github.event_name == 'push' && github.ref != 'refs/heads/master') || github.event_name == 'pull_request' }} | |
run: bash .github/workflows/ci-main.sh | |
- name: Build & Test & Coverage | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
run: bash .github/workflows/ci-main.sh coverage | |
- name: Stop Redis Cluster Containers | |
run: docker compose -f ".github/workflows/redis/docker-compose.yml" down | |
- name: Stop Apollo Containers | |
run: docker compose -f ".github/workflows/apollo/docker-compose.yml" down | |
- name: Stop Nacos Containers | |
run: docker compose -f ".github/workflows/nacos/docker-compose.yml" down | |
- name: Stop Consul Containers | |
run: docker compose -f ".github/workflows/consul/docker-compose.yml" down | |
- name: Report Coverage | |
uses: codecov/codecov-action@v4 | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
with: | |
flags: go-${{ matrix.go-version }}-${{ matrix.goarch }} | |
token: ${{ secrets.CODECOV_TOKEN }} |