From c212828d11c3157a4ba0e06a46d727ad750cf1fb Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:45:06 +0100 Subject: [PATCH] ci: migrate to github actions (#304) --- .circleci/config.yml | 64 ---------------------------- .github/workflows/test.yml | 67 ++++++++++++++++++++++++++++++ .github/workflows/windows_test.yml | 18 -------- Makefile | 2 +- go.mod | 3 +- go.sum | 4 +- go_mod_indirect_pins.go | 4 +- 7 files changed, 75 insertions(+), 87 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/windows_test.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index cf8f2906..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,64 +0,0 @@ -version: 2.1 - -orbs: - nancy: ory/nancy@0.0.9 - golangci: ory/golangci@0.0.9 - -jobs: - test: - docker: - - image: cimg/go:1.16 - environment: - - TEST_DATABASE_POSTGRESQL=postgres://test:test@localhost:5432/sqlcon?sslmode=disable - - TEST_DATABASE_MYSQL=mysql://root:test@tcp(localhost:3306)/mysql?parseTime=true&multiStatements=true - - TEST_DATABASE_COCKROACHDB=cockroach://root@localhost:26257/defaultdb?sslmode=disable - - GO111MODULE=on - - image: postgres:11.8 - environment: - - POSTGRES_USER=test - - POSTGRES_PASSWORD=test - - POSTGRES_DB=sqlcon - - image: mysql:8.0 - environment: - - MYSQL_ROOT_PASSWORD=test - - image: cockroachdb/cockroach:v20.2.3 - command: start-single-node --insecure - steps: - - checkout - - run: curl -L https://git.io/vp6lP | sh - - run: mv ./bin/* $GOPATH/bin - - run: go mod download - - run: make init - - run: go-acc -o coverage.txt ./... -- -v -tags sqlite - - run: test -z "$CIRCLE_PR_NUMBER" && goveralls -service=circle-ci -coverprofile=coverage.txt -repotoken=$COVERALLS_REPO_TOKEN || echo "forks are not allowed to push to coveralls" - - docs: - docker: - - image: cimg/go:1.16 - steps: - - checkout - - run: git config --global user.email "hi@ory.sh" - - run: git config --global user.name "ORY Continuous Integration" - - run: "git clone https://arekkas:$DOCS_TOKEN_PUSH@github.com/ory/docs.git ../docs" - - run: "mkdir -p ../docs/schemas/x; cp -r ./.schemas/* ../docs/schemas/x" - - run: "(cd ../docs && git add -A && git commit -a -m \"Updates ory/x JSON Schemas\" && git push origin) || exit 0" - - validate: - docker: - - image: cimg/go:1.16 - environment: - GO11MODULES: 'on' - steps: - - checkout - - golangci/lint - -workflows: - test: - jobs: - - test - - validate - - nancy/test - - docs: - filters: - branches: - only: master diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..251d2a25 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,67 @@ +name: "Run Tests and Lint Code" + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + test-windows: + name: Run Tests on Windows + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: '^1.16' + - run: | + go test -tags sqlite -failfast -short -timeout=20m $(go list ./... | grep -v sqlcon | grep -v watcherx | grep -v pkgerx | grep -v configx) + shell: bash + test: + name: Run Tests and Lint Code + runs-on: ubuntu-latest + env: + TEST_DATABASE_POSTGRESQL: postgres://test:test@localhost:5432/sqlcon?sslmode=disable + TEST_DATABASE_MYSQL: mysql://root:test@tcp(localhost:3306)/mysql?parseTime=true&multiStatements=true + TEST_DATABASE_COCKROACHDB: cockroach://root@localhost:26257/defaultdb?sslmode=disable + services: + postgres: + image: postgres:11.8 + ports: + - 5432:5432 + env: + POSTGRES_USER: test + POSTGRES_PASSWORD: test + POSTGRES_DB: sqlcon + mysql: + image: mysql:8.0 + ports: + - 3306:3306 + env: + MYSQL_ROOT_PASSWORD: test + steps: + - name: Start cockroach + run: docker run --name cockroach -p 26257:26257 -d cockroachdb/cockroach:v20.2.5 start-single-node --insecure + - name: Checkout repository + uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: '^1.16.0' + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + - name: Prepare nancy dependency list + run: go list -json -m all > go.list + - name: Run nancy + uses: sonatype-nexus-community/nancy-github-action@main + - run: make init + - run: go-acc -o coverage.out ./... -- -v -failfast -timeout=20m -tags sqlite + - name: Convert coverage report to lcov + run: gcov2lcov -infile=coverage.out -outfile=coverage.lcov + - name: Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: coverage.lcov diff --git a/.github/workflows/windows_test.yml b/.github/workflows/windows_test.yml deleted file mode 100644 index 09c543c1..00000000 --- a/.github/workflows/windows_test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Windows go test - -on: - push: - branches: - - '*' - -jobs: - test: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 - with: - go-version: '^1.16' - - run: | - go test -tags sqlite -failfast -short -timeout=20m $(go list ./... | grep -v sqlcon | grep -v watcherx | grep -v pkgerx | grep -v configx) - shell: bash diff --git a/Makefile b/Makefile index ace1dcf6..0b167060 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .PHONY: init init: - GO111MODULE=on go install ./tools/listx github.com/ory/go-acc github.com/mattn/goveralls github.com/go-bindata/go-bindata/go-bindata github.com/golang/mock/mockgen + GO111MODULE=on go install ./tools/listx github.com/jandelgado/gcov2lcov github.com/ory/go-acc github.com/go-bindata/go-bindata/go-bindata github.com/golang/mock/mockgen .PHONY: format format: diff --git a/go.mod b/go.mod index 52d06724..2cc8f018 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,7 @@ require ( github.com/gobuffalo/httptest v1.0.2 github.com/gobuffalo/packr v1.22.0 github.com/gobuffalo/pop/v5 v5.3.1 + github.com/golang/mock v1.3.1 github.com/google/go-jsonnet v0.16.0 github.com/google/uuid v1.1.2 github.com/gorilla/websocket v1.4.2 @@ -28,12 +29,12 @@ require ( github.com/inhies/go-bytesize v0.0.0-20201103132853-d0aed0d254f8 github.com/jackc/pgconn v1.6.0 github.com/jackc/pgx/v4 v4.6.0 + github.com/jandelgado/gcov2lcov v1.0.4-0.20210120124023-b83752c6dc08 // indirect github.com/jmoiron/sqlx v1.2.0 github.com/julienschmidt/httprouter v1.2.0 github.com/knadh/koanf v0.14.1-0.20201201075439-e0853799f9ec github.com/lib/pq v1.3.0 github.com/markbates/pkger v0.17.1 - github.com/mattn/goveralls v0.0.2 github.com/morikuni/aec v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 diff --git a/go.sum b/go.sum index f231b91c..b6773fa3 100644 --- a/go.sum +++ b/go.sum @@ -507,6 +507,7 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -630,6 +631,8 @@ github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oA github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jandelgado/gcov2lcov v1.0.4-0.20210120124023-b83752c6dc08 h1:vn5CHED3UxZKIneSxETU9SXXGgsILP8hZHlx+M0u1BQ= +github.com/jandelgado/gcov2lcov v1.0.4-0.20210120124023-b83752c6dc08/go.mod h1:NnSxK6TMlg1oGDBfGelGbjgorT5/L3cchlbtgFYZSss= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU= @@ -750,7 +753,6 @@ github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsO github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/goveralls v0.0.2 h1:7eJB6EqsPhRVxvwEXGnqdO2sJI0PTsrWoTMXEk9/OQc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= diff --git a/go_mod_indirect_pins.go b/go_mod_indirect_pins.go index 246acb32..99bd6bd4 100644 --- a/go_mod_indirect_pins.go +++ b/go_mod_indirect_pins.go @@ -4,8 +4,8 @@ package x import ( _ "github.com/go-bindata/go-bindata/go-bindata" - _ "github.com/mattn/goveralls" - _ "github.com/gorilla/websocket" _ "github.com/ory/go-acc" + _"github.com/golang/mock/mockgen" + _ "github.com/jandelgado/gcov2lcov" )