fix issue #3077 #11
Workflow file for this run
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-latest | |
# Service containers to run with `code-test` | |
services: | |
# Etcd service. | |
# docker run -d --name etcd -p 2379:2379 -e ALLOW_NONE_AUTHENTICATION=yes loads/etcd:3.4.24 | |
etcd: | |
image: loads/etcd:3.4.24 | |
env: | |
ALLOW_NONE_AUTHENTICATION: yes | |
ports: | |
- 2379:2379 | |
# Redis backend server. | |
redis: | |
image : loads/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. | |
mysql: | |
image: loads/mysql:5.7 | |
env: | |
MYSQL_DATABASE : test | |
MYSQL_ROOT_PASSWORD: 12345678 | |
ports: | |
- 3306: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 loads/postgres:13 | |
postgres: | |
image: loads/postgres:13 | |
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 -d --name mssql -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 | |
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 -d --name dm -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: loads/zookeeper:3.8 | |
ports: | |
- 2181:2181 | |
strategy: | |
matrix: | |
go-version: [ "1.18", "1.19", "1.20", "1.21" ] | |
goarch: [ "386", "amd64" ] | |
steps: | |
# TODO: szenius/set-timezone update to node16 | |
- 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@v4 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache-dependency-path: '**/go.sum' | |
- 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@v3 | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
with: | |
flags: go-${{ matrix.go-version }}-${{ matrix.goarch }} |