Skip to content
download

GitHub Action

Go proxy warming

v1.2.0 Latest version

Go proxy warming

download

Go proxy warming

Pull the new release of a module to the Go proxy cache

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Go proxy warming

uses: andrewslotin/[email protected]

Learn more about this action in andrewslotin/go-proxy-pull-action

Choose a version

Go proxy warming action

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.

Usage

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.

Custom proxy

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

Custom import path

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

Why?

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.

License

The scripts and documentation in this project are released under the MIT License.