diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3b277e4 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,55 @@ +name: Go +on: [push,pull_request] + +jobs: + + test: + + strategy: + matrix: + go: [1.14,1.15,1.16] + + runs-on: ubuntu-latest + services: + casbin: + image: quay.io/coreos/etcd + ports: + - 2379:2379 + - 2380:2380 + env: + ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379 + ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379 + steps: + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - uses: actions/checkout@v2 + - name: Run Unit tests + run: go test -v -coverprofile=profile.cov ./... + + - name: Install goveralls + env: + GO111MODULE: off + run: go get github.com/mattn/goveralls + + - name: Send coverage + env: + COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: goveralls -coverprofile=profile.cov -service=github + + semantic-release: + needs: [test] + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + + - name: Run semantic-release + if: github.repository == 'casbin/etcd-watcher' && github.event_name == 'push' + run: | + npm install --save-dev semantic-release@17.2.4 + npx semantic-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000..58cb0bb --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,16 @@ +{ + "debug": true, + "branches": [ + "+([0-9])?(.{+([0-9]),x}).x", + "master", + { + "name": "beta", + "prerelease": true + } + ], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/github" + ] +} diff --git a/README.md b/README.md index d3af4e9..1c1723c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Etcd Watcher [![Build Status](https://travis-ci.org/casbin/etcd-watcher.svg?branch=master)](https://travis-ci.org/casbin/etcd-watcher) [![Coverage Status](https://coveralls.io/repos/github/casbin/etcd-watcher/badge.svg?branch=master)](https://coveralls.io/github/casbin/etcd-watcher?branch=master) [![Godoc](https://godoc.org/github.com/casbin/etcd-watcher?status.svg)](https://godoc.org/github.com/casbin/etcd-watcher) +Etcd Watcher [![Go](https://github.com/casbin/etcd-watcher/actions/workflows/test.yml/badge.svg)](https://github.com/casbin/etcd-watcher/actions/workflows/test.yml) [![Coverage Status](https://coveralls.io/repos/github/casbin/etcd-watcher/badge.svg?branch=master)](https://coveralls.io/github/casbin/etcd-watcher?branch=master) [![Godoc](https://godoc.org/github.com/casbin/etcd-watcher?status.svg)](https://godoc.org/github.com/casbin/etcd-watcher) ==== Etcd Watcher is the [Etcd](https://github.com/coreos/etcd) watcher for [Casbin](https://github.com/casbin/casbin). With this library, Casbin can synchronize the policy with the database in multiple enforcer instances.