GitHub Action
Go proxy warming
This action ensures that a newly released version of a Go module is pulled to the specified proxy.
Each time there is a new tag created in repository with a name that looks like a semantic version, the action gets triggered, pulling this version with go get
via the
configured proxy (https://proxy.golang.org by default).
The action also recognizes the tags that version submodules stored within the same repository,
e.g. contrib/awesomity/v1.2.3
.
To renew the documentation on pkg.go.dev create a new workflow file with following context:
on:
release:
types:
- created
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- '**/v[0-9]+.[0-9]+.[0-9]+'
jobs:
build:
name: Renew documentation
runs-on: ubuntu-latest
steps:
- name: Pull new module version
uses: andrewslotin/go-proxy-pull-action@master
This will trigger the action each time whenever a new release is published for a tag that looks either like vX.Y.Z
or
submodule/path/vX.Y.Z
.
The action accepts gopath
parameter to specify the URL of a self-hosted or any other Go proxy instead of https://proxy.golang.org. For example to make sure that GoCenter has the latest version of your module provide https://gocenter.io
as a value for goproxy
parameter:
- name: Pull new module version
uses: andrewslotin/go-proxy-pull-action@master
with:
goproxy: https://gocenter.io
In case your module uses custom import path, such as example.com/myproject
, an attempt to download it using its GitHub reporitory URL will result in an error. In this case you need to provide the import path of your package as an input:
- name: Pull new module version
uses: andrewslotin/[email protected]
with:
import_path: example.com/myproject
Although the Go module proxies are capable of pulling the missing versions on-demand, there are cases when
this needs to be done before anyone has requested a new version via go get
through this proxy. An example
would be updating the pkg.go.dev
documentation of your library upon release.
Currently the pkg.go.dev, unlike godoc.org does not track new
module versions, displaying the last one it knows about as the latest one. The proposed workaround
suggests pulling the new version via
go get
after it has been released, which is now automated with this GitHub action.
The scripts and documentation in this project are released under the MIT License.