GitHub Action
Golang Action
IMPORTANT: This action will no longer be maintained by myself and thus will not support versions newer than Golang 1.16. I highly recommend using the offical actions/setup-go action which does exactly the same as this action (+ with some more features). Originally this action was helpful when there was the requirement to properly place go projects in the $GOPATH
. As this is no longer needed, setting up the proper go version is all you need. However I will kindly review and approve PRs with bugfixes only.
This Action allows you to run Go commands with your code. It will automatically setup your workspace (~/go/src/github.com/<your-name>/<repo>
) before the command is run.
Create a workflow.yaml
file in .github/workflows
with the following contents:
on: push
name: My cool Action
jobs:
checks:
name: run
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: run
uses: cedrickring/[email protected]
If no args are specified and a Makefile
is detected, this action will run make
. Otherwise go test
and go build
will be run.
To run a custom command, just use:
steps:
- name: Run custom command
uses: cedrickring/[email protected]
with:
args: make my-target
If your repository's import
name is different from the path on GitHub,
provide the import
name by adding an environment variable
IMPORT=import/name
. This may be useful if you have forked an open
source Go project:
steps:
- name: Run with custom import path
uses: cedrickring/[email protected]
env:
IMPORT: "root/repo"
To use Go Modules add GO111MODULE=on
to the step:
steps:
- name: Go Modules
uses: cedrickring/[email protected]
env:
GO111MODULE: "on"
If your go project is not located at the root of the repo you can also specify environment variable PROJECT_PATH
:
steps:
- name: Custom project path
uses: cedrickring/[email protected]
env:
PROJECT_PATH: "./path/in/my/project"
To use a specific golang version (1.10, 1.11, 1.12, 1.13, 1.14, 1.15), defaults to the latest version:
steps:
- name: Use Go 1.11
uses: cedrickring/golang-action/[email protected]