Golang Ci Template Github Actions Save

example for golang project using github actions

Project README

golang ci template using github actions

Build Status Coverage Status Go Report Card

Info

This repository serves as a template for github-actions integrated go projects. It consists of a hello, world! like example in source file main.go which gets compiled into the binary golang-ci-template-github-actions. The CI runs some linters on the code, before the unit tests are executed. Test coverage is uploaded to coveralls.io.

goreleaser is used to create the final multi-plattform assets, which are automatically uploaded to the release. The release-process is triggered by pushing a git tag to the repository.

Finally, a docker image is built, which gets published to ghcr.io. Run it with

$ docker run --rm  ghcr.io/jandelgado/golang-ci-template-github-actions:latest
hello, world!

Creating a release

A new release is created by creating a git tag and pushing it, e.g.:

$ git tag -a "v1.2.3" -m "this is release v1.2.3"
$ git push origin v1.2.3

The push of the new tag triggers the CI, which uses goreleaser to:

  • build multiplatform release artifacts
  • create a new release
  • upload the artifacts, which are then available on the releases page.

Finally, a docker image is built, which gets published to ghcr.io.

Test coverage (coveralls)

We use the gcov2lcov-action to first convert the golang test coverage to lcov format and then upload it using the coveralls github action.

Don't forget to enable Leave comments (x) in coveralls, under repo settings > pull request alerts, so that the coveralls-action posts a comment with the test coverage to affected pull requests:

pr screenshot

Author

(c) copyright 2021 by Jan Delgado

Open Source Agenda is not affiliated with "Golang Ci Template Github Actions" Project. README Source: jandelgado/golang-ci-template-github-actions
Stars
57
Open Issues
2
Last Commit
1 year ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating