Skip to content

Commit

Permalink
Refactoring actions
Browse files Browse the repository at this point in the history
  • Loading branch information
safaci2000 committed Oct 4, 2024
1 parent 96b447a commit 425adbe
Show file tree
Hide file tree
Showing 7 changed files with 111 additions and 65 deletions.
140 changes: 102 additions & 38 deletions .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
name: Go

on:
workflow_call:
push:
branches:
- master
pull_request:

env:
TEST_RESULTS: /tmp/test-results # path to where test results will be saved
GH_ACTIONS: "1"
GH_ACTIONS: "0"
TEST_SKIP_COMMENTS: "1"
GO_VERSION: "1.22.5"


jobs:
test:
initialize_data:
name: Initialize Test Data
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
Expand All @@ -22,47 +26,107 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.21.6"
go-version: ${{ env.GO_VERSION }}
- name: Verify go version
run: go version
- name: Install GoTest
run: go install gotest.tools/gotestsum@latest
# - name: Install jet generator
# run: cd tests && make install-jet-gen
- name: Init database
run: |
cd tests
go run ./init/init.go -testsuite all
# to create test results report
- name: Install go-junit-report
run: go install github.com/jstemmer/go-junit-report@latest
- name: Setup Test Report Dir
run: mkdir -p $TEST_RESULTS
# this will run all tests and exclude test files from code coverage report
- name: Run Tests
run: |
go test -v ./... \
-covermode=atomic \
-coverpkg=github.com/go-jet/jet/v2/postgres/...,github.com/go-jet/jet/v2/mysql/...,github.com/go-jet/jet/v2/sqlite/...,github.com/go-jet/jet/v2/qrm/...,github.com/go-jet/jet/v2/generator/...,github.com/go-jet/jet/v2/internal/... \
-coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml
# run mariaDB and cockroachdb tests. No need to collect coverage, because coverage is already included with mysql and postgres tests
- name: Run MariaDB tests
run: MY_SQL_SOURCE=MariaDB go test -v ./tests/mysql/
- name: Run cockroach DB
run: PG_SOURCE=COCKROACH_DB go test -v ./tests/postgres/
- name: Archive code coverage results
uses: actions/upload-artifact@v4
go run ./init/init.go -testsuite mysql
go run ./init/init.go -testsuite mariadb
# go run ./init/init.go -testsuite all
- uses: actions/upload-artifact@v4
with:
name: testData
include-hidden-files: true
path: ${{ github.workspace }}/tests/.gentestdata/
# standard_tests:
# name: Run Standard Tests
# needs: initialize_data
# runs-on: ubuntu-latest
# steps:
# - name: Checkout Repository
# uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Set up Go
# uses: actions/setup-go@v5
# with:
# go-version: ${{ env.GO_VERSION }}
# - uses: actions/download-artifact@v4
# with:
# name: testData
# path: ./tests/.gentestdata
# # to create test results report
# - name: Install go-junit-report
# run: go install github.com/jstemmer/go-junit-report/v2@latest
# - name: locate binary
# run: which go-junit-report
# - name: Install jet
# run: go install ./cmd/jet
# - name: Setup Test Report Dir
# run: mkdir -p ${{ env.TEST_RESULTS }}
# # this will run all tests and exclude test files from code coverage report
# - name: Run Tests
# run: |
# go test -v ./... \
# -covermode=atomic \
# -coverpkg=github.com/go-jet/jet/v2/postgres/...,github.com/go-jet/jet/v2/mysql/...,github.com/go-jet/jet/v2/sqlite/...,github.com/go-jet/jet/v2/qrm/...,github.com/go-jet/jet/v2/generator/...,github.com/go-jet/jet/v2/internal/... \
# -coverprofile=cover.out 2>&1 | go-junit-report > ${{ env.TEST_RESULTS }}/results.xml
# - name: Archive code coverage results
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-report
# path: ${{ env.TEST_RESULTS }}/results.xml
# - name: Store cover.out
# uses: actions/upload-artifact@v4
# with:
# name: cover.out
# path: cover.out
# - name: Store test-results
# uses: actions/upload-artifact@v4
# with:
# name: test-results
# path: /tmp/test-results
# cockroach_test:
# name: Cockroach Test
# needs: initialize_data
# runs-on: ubuntu-latest
# steps:
# - name: Checkout Repository
# uses: actions/checkout@v4
# with:
# submodules: 'true'
# - name: Set up Go
# uses: actions/setup-go@v5
# with:
# go-version: ${{ env.GO_VERSION }}
# - uses: actions/download-artifact@v4
# with:
# name: testData
# path: ./tests/.gentestdata
# - name: Install jet
# run: go install ./cmd/jet
# - name: Run cockroach DB
# run: PG_SOURCE=COCKROACH_DB go test -v ./tests/postgres/
maria_test:
name: MariaDB Test
needs: initialize_data
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
name: code-coverage-report
path: $TEST_RESULTS/results.xml
- name: Store cover.out
uses: actions/upload-artifact@v4
submodules: 'true'
- name: Set up Go
uses: actions/setup-go@v5
with:
name: cover.out
path: cover.out
- name: Store test-results
uses: actions/upload-artifact@v4
go-version: ${{ env.GO_VERSION }}
- uses: actions/download-artifact@v4
with:
name: test-results
path: /tmp/test-results
name: testData
path: ./tests/.gentestdata
- name: Install jet
run: go install ./cmd/jet
- name: Run MariaDB tests
run: MY_SQL_SOURCE=MariaDB go test -v ./tests/mysql/
2 changes: 1 addition & 1 deletion internal/testutils/test_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ func SaveJSONFile(v interface{}, testRelativePath string) {
jsonText, _ := json.MarshalIndent(v, "", "\t")

filePath := getFullPath(testRelativePath)
err := ioutil.WriteFile(filePath, jsonText, 0644)
err := os.WriteFile(filePath, jsonText, 0644)

throw.OnError(err)
}
Expand Down
8 changes: 4 additions & 4 deletions tests/init/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,15 @@ func main() {
return initSQLiteDB()
})
case "all":
err = timeMethod("postgres Schema Generation complete", func() error {
return initPostgresDB(Postgres)
err = timeMethod("couchDB Schema Generation complete", func() error {
return initPostgresDB(Cockroach)
})
if err != nil {
break
}

err = timeMethod("couchDB Schema Generation complete", func() error {
return initPostgresDB(Cockroach)
err = timeMethod("postgres Schema Generation complete", func() error {
return initPostgresDB(Postgres)
})
if err != nil {
break
Expand Down
6 changes: 4 additions & 2 deletions tests/internal/utils/common/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package common
import "os"

const (
GhActions = "GH_ACTIONS"
GhActions = "GH_ACTIONS"
GhSkipComments = "TEST_SKIP_COMMENTS"
)

func IsCICDTest() bool {
Expand All @@ -12,5 +13,6 @@ func IsCICDTest() bool {

// Add a hack to bypass failing tests
func IsHack() bool {
return true
return os.Getenv(GhSkipComments) == "1"
//return true
}
6 changes: 0 additions & 6 deletions tests/mysql/generator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@ func TestGenerator_TableMetadata(t *testing.T) {
}

func TestCmdGenerator(t *testing.T) {
if common.IsCICDTest() {
t.SkipNow()
}
err := os.RemoveAll(genTestDir3)
require.NoError(t, err)

Expand Down Expand Up @@ -127,9 +124,6 @@ func TestCmdGenerator(t *testing.T) {
}

func TestIgnoreTablesViewsEnums(t *testing.T) {
if common.IsCICDTest() {
t.SkipNow()
}
tests := []struct {
name string
args []string
Expand Down
7 changes: 0 additions & 7 deletions tests/postgres/generator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package postgres

import (
"fmt"
"github.com/go-jet/jet/v2/tests/internal/utils/common"
"os"
"os/exec"
"path/filepath"
Expand Down Expand Up @@ -85,9 +84,6 @@ func getEnvironmentPort() string {

func TestCmdGenerator(t *testing.T) {
skipForCockroachDB(t)
if common.IsCICDTest() {
t.SkipNow()
}
err := os.RemoveAll(genTestDir2)
require.NoError(t, err)

Expand Down Expand Up @@ -124,9 +120,6 @@ func TestCmdGenerator(t *testing.T) {
}

func TestGeneratorIgnoreTables(t *testing.T) {
if common.IsCICDTest() {
t.SkipNow()
}
skipForCockroachDB(t)
tests := []struct {
name string
Expand Down
7 changes: 0 additions & 7 deletions tests/sqlite/generator_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package sqlite

import (
"github.com/go-jet/jet/v2/tests/internal/utils/common"
"os"
"os/exec"
"reflect"
Expand Down Expand Up @@ -93,9 +92,6 @@ func TestGenerator_TableMetadata(t *testing.T) {
}

func TestCmdGenerator(t *testing.T) {
if common.IsCICDTest() {
t.SkipNow()
}
cmd := exec.Command("jet", "-source=SQLite", "-dsn=file://"+testDatabaseFilePath, "-path="+genDestDir)

cmd.Stderr = os.Stderr
Expand All @@ -111,9 +107,6 @@ func TestCmdGenerator(t *testing.T) {
}

func TestCmdGeneratorIgnoreTablesViewsEnums(t *testing.T) {
if common.IsCICDTest() {
t.SkipNow()
}
cmd := exec.Command("jet",
"-source=SQLite",
"-dsn=file://"+testDatabaseFilePath,
Expand Down

0 comments on commit 425adbe

Please sign in to comment.