diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 074fef3..c63cda2 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,17 +1,60 @@ -on: push +name: Test and release + +on: + push: + branches: + - "*" -name: Run unit tests jobs: - checks: + prepare: + name: Preparing build context + runs-on: ubuntu-latest + outputs: + RELEASE_VERSION: ${{ steps.get_env.outputs.RELEASE_VERSION }} + steps: + - name: Checkout repo + uses: actions/checkout@v2 + with: + fetch-depth: '0' + - name: Setting environment variables + id: get_env + run: | + TMP_GITHUB_COMMITS_COUNT=$(git rev-list --count HEAD) + TMP_GITHUB_COUNT_NUMBER=$(echo ${GITHUB_RUN_NUMBER}) + echo "::set-output name=RELEASE_VERSION::1.$TMP_GITHUB_COMMITS_COUNT.$TMP_GITHUB_COUNT_NUMBER" + + tests: name: Run unit tests runs-on: ubuntu-latest env: CI: true steps: - - uses: actions/checkout@master - - name: run - uses: cedrickring/golang-action@1.6.0 - with: - args: | - make prepare - make test CI_RUN=${CI} \ No newline at end of file + - name: Checkout repo + uses: actions/checkout@v2 + - name: Run unit tests + uses: cedrickring/golang-action@1.6.0 + with: + args: | + make prepare; + make test CI_RUN=${CI} + + release: + name: Create Release + runs-on: ubuntu-latest + needs: [ prepare, tests ] + if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Create Release + id: create_release + uses: actions/create-release@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.event.repository.name }}/${{ needs.prepare.outputs.RELEASE_VERSION }} + release_name: v${{ needs.prepare.outputs.RELEASE_VERSION }} + body: | + Released automatically after merge to master / main. + draft: false + prerelease: false \ No newline at end of file diff --git a/Makefile b/Makefile index 0b056f2..b321153 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,10 @@ ifeq ($(CI_RUN), true) endif prepare: - go get -u -v github.com/go-critic/go-critic/cmd/gocritic + go get github.com/go-critic/go-critic/cmd/gocritic test: - # gocritic check + gocritic check go test $(ADDITIONAL_BUILD_FLAGS) -v -coverprofile cover.out -memprofile mem.out lint: