> For the complete CircleCI developer hub index, see [llms.txt](https://circleci.com/developer/llms.txt)

# cimg/go

A Go Docker image built to run on CircleCI that contains go and gotestsum

***This image is designed to supercede the legacy CircleCI Go image, `circleci/golang`.***

`cimg/go` is a Docker image created by CircleCI with continuous integration builds in mind.
Each tag contains a complete Go version and toolchain, the testing wrapper `gotestsum`, and any binaries and tools that are required for builds to complete successfully in a CircleCI environment.


## Getting Started

This image can be used with the CircleCI `docker` executor.
For example:

```yaml
jobs:
  build:
    docker:
      - image: cimg/go:1.26.4
    steps:
      - checkout
      - run: go version
```

In the above example, the CircleCI Go Docker image is used for the primary container.
More specifically, the tag `1.26.4` is used meaning the version of Go will be Go v1.26.4.
You can now use Go within the steps for this job.


## How This Image Works

This image contains the Go programming language and its complete toolchain.
This includes support for Go modules, the official Go Proxy Server, etc.

### Tagging Scheme

This image has the following tagging scheme:

```
cimg/go:<go-version>[-variant]
```

`<go-version>` - The version of Go to use.
This can be a full SemVer point release (such as `1.12.7`) or just the minor release (such as `1.12`).
If you use the minor release tag, it will automatically point to future patch updates as they are released by the Go Team.
For example, the tag `1.13` points to Go v1.13 now, but when the next release comes out, it will point to Go v1.13.1.

`[-variant]` - Variant tags, if available, can optionally be used.
Once the Node.js variant is available, it could be used like this: `cimg/go:1.13-node`.


## Image Tags


### Variants

Variant images typically contain the same base software, but with a few additional modifications.

#### Node.js

The Node.js variant is the same Go image but with Node.js also installed.
The Node.js variant will be used by appending `-node` to the end of an existing `cimg/go` tag.

```yaml
jobs:
  build:
    docker:
      - image: cimg/go:1.26.4-node
    steps:
      - checkout
      - run: go version
      - run: node --version
```

#### Browsers

The browsers variant is the same Go image but with Node.js, Java, Selenium, and browser dependencies pre-installed via apt.
The browsers variant can be used by appending `-browser` to the end of an existing `cimg/go` tag.
The browsers variant is designed to work in conjunction with the [CircleCI Browser Tools orb](https://circleci.com/developer/orbs/orb/circleci/browser-tools).
You can use the orb to install a version of Google Chrome and/or Firefox into your build. The image contains all of the supporting tools needed to use both the browser and its driver.

```yaml
orbs:
  browser-tools: circleci/browser-tools@1.1
jobs:
  build:
    docker:
      - image: cimg/go:1.13-browsers
    steps:
      - browser-tools/install-browser-tools
      - checkout
      - run: |
          go version
          node --version
          java --version
          google-chrome --version
```
