diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b60e369a..01d06b77 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,16 +8,68 @@ on: jobs: # Label of the container job - tests: + sqlite: runs-on: ubuntu-latest strategy: matrix: - go: [ '1.14', '1.13' ] + go: ['1.14', '1.13'] + + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: run sqlite + run: GORM_DIALECT=sqlite GORM_VERBOSE=true ./tests/tests_all.sh + + + mysql: + runs-on: ubuntu-latest + strategy: + matrix: + dbversion: ['mysql:latest', 'mysql:5.7', 'mysql:5.6', 'mariadb:latest'] + go: ['1.14', '1.13'] + + services: + mysql: + image: ${{ matrix.dbversion }} + env: + MYSQL_DATABASE: gorm + MYSQL_USER: gorm + MYSQL_PASSWORD: gorm + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + ports: + - 9910:3306 + + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: show ports + run: netstat -lntp + + - name: run mysql + run: GORM_DIALECT=mysql GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh + + postgres: + runs-on: ubuntu-latest + strategy: + matrix: + dbversion: ['postgres:latest', 'postgres:11', 'postgres:10'] + go: ['1.14', '1.13'] services: - # start postgres postgres: - image: postgres:latest + image: ${{ matrix.dbversion }} env: POSTGRES_PASSWORD: gorm POSTGRES_USER: gorm @@ -32,80 +84,29 @@ jobs: --health-timeout 5s --health-retries 5 - postgres11: - image: postgres:11 - env: - POSTGRES_PASSWORD: gorm - POSTGRES_USER: gorm - POSTGRES_DB: gorm - TZ: Asia/Shanghai - ports: - - 9921:5432 - # Set health checks to wait until postgres has started - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} - postgres10: - image: postgres:10 - env: - POSTGRES_PASSWORD: gorm - POSTGRES_USER: gorm - POSTGRES_DB: gorm - TZ: Asia/Shanghai - ports: - - 9922:5432 - # Set health checks to wait until postgres has started - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 + - name: Check out code into the Go module directory + uses: actions/checkout@v2 - # start mysql - mysql: - image: mysql:latest - env: - MYSQL_DATABASE: gorm - MYSQL_USER: gorm - MYSQL_PASSWORD: gorm - MYSQL_RANDOM_ROOT_PASSWORD: "yes" - ports: - - 9910:3306 + - name: show ports + run: netstat -lntp - mysql57: - image: mysql:5.7 - env: - MYSQL_DATABASE: gorm - MYSQL_USER: gorm - MYSQL_PASSWORD: gorm - MYSQL_RANDOM_ROOT_PASSWORD: "yes" - ports: - - 9911:3306 + - name: run postgres + run: GORM_DIALECT=postgres GORM_VERBOSE=true GORM_DSN="user=gorm password=gorm DB.name=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai" ./tests/tests_all.sh - mysql56: - image: mysql:5.6 - env: - MYSQL_DATABASE: gorm - MYSQL_USER: gorm - MYSQL_PASSWORD: gorm - MYSQL_RANDOM_ROOT_PASSWORD: "yes" - ports: - - 9912:3306 - mariadb: - image: mariadb:latest - env: - MYSQL_DATABASE: gorm - MYSQL_USER: gorm - MYSQL_PASSWORD: gorm - MYSQL_RANDOM_ROOT_PASSWORD: "yes" - ports: - - 9913:3306 + sqlserver: + runs-on: ubuntu-latest + strategy: + matrix: + go: ['1.14', '1.13'] - # start mssql + services: mssql: image: mcmoe/mssqldocker:latest env: @@ -129,29 +130,5 @@ jobs: - name: show ports run: netstat -lntp - - name: run sqlite - run: GORM_DIALECT=sqlite GORM_VERBOSE=true ./tests/tests_all.sh - - - name: run mysql - run: GORM_DIALECT=mysql GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh - - - name: run mysql57 - run: GORM_DIALECT=mysql GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(localhost:9911)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh - - - name: run mysql56 - run: GORM_DIALECT=mysql GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(localhost:9912)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh - - - name: run mariadb - run: GORM_DIALECT=mysql GORM_VERBOSE=true GORM_DSN="gorm:gorm@tcp(localhost:9913)/gorm?charset=utf8&parseTime=True" ./tests/tests_all.sh - - - name: run postgres - run: GORM_DIALECT=postgres GORM_VERBOSE=true GORM_DSN="user=gorm password=gorm DB.name=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai" ./tests/tests_all.sh - - - name: run postgres11 - run: GORM_DIALECT=postgres GORM_VERBOSE=true GORM_DSN="user=gorm password=gorm DB.name=gorm port=9921 sslmode=disable TimeZone=Asia/Shanghai" ./tests/tests_all.sh - - - name: run postgres10 - run: GORM_DIALECT=postgres GORM_VERBOSE=true GORM_DSN="user=gorm password=gorm DB.name=gorm port=9922 sslmode=disable TimeZone=Asia/Shanghai" ./tests/tests_all.sh - - - name: run mssql - run: GORM_DIALECT=mssql GORM_VERBOSE=true GORM_DSN="sqlserver://gorm:LoremIpsum86@localhost:9930?database=gorm" ./tests/tests_all.sh + - name: run sqlserver + run: GORM_DIALECT=sqlserver GORM_VERBOSE=true GORM_DSN="sqlserver://gorm:LoremIpsum86@localhost:9930?database=gorm" ./tests/tests_all.sh