| name: Go |
| |
| on: |
| push: |
| branches: [ master ] |
| pull_request: |
| branches: [ master ] |
| |
| jobs: |
| test: |
| runs-on: ubuntu-latest |
| permissions: |
| contents: read |
| strategy: |
| fail-fast: false |
| matrix: |
| go-version: [ '1.23' ] |
| |
| services: |
| etcd: |
| image: quay.io/coreos/etcd:v3.5.0 |
| 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: Checkout code |
| uses: actions/checkout@v3 |
| |
| - name: Set up Go |
| uses: actions/setup-go@v4 |
| with: |
| go-version: ${{ matrix.go-version }} |
| |
| - name: Test |
| run: go test -covermode atomic -coverprofile=covprofile ./... |
| |
| - name: Install goveralls |
| run: go install github.com/mattn/goveralls@latest |
| |
| - name: Send coverage |
| env: |
| COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| run: goveralls -coverprofile=covprofile -service=github |
| |
| semantic-release: |
| needs: [test] |
| if: github.repository == 'casbin/etcd-watcher' && github.event_name == 'push' |
| runs-on: ubuntu-latest |
| permissions: |
| contents: write |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v3 |
| |
| - name: Install Node.js |
| uses: actions/setup-node@v3 |
| with: |
| node-version: '18.x' |
| |
| - name: Install semantic-release |
| run: npm install --save-dev semantic-release@21.0.0 @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/github |
| |
| - name: Run semantic-release |
| run: npx semantic-release |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |