🎲 β€” mikrobloggeriet olorm β€” olorm-8 Β· olorm-9 Β· olorm-10

OLORM-9

I prosjektet nΓ₯ bruker vi GitHub Actions til Γ₯ bygge Docker image av Go-app.

Det er litt kjedelig Γ₯ endre Go-versjon fra f.eks. 1.19 til 1.20 mange (> 1) steder.

I Dockerfile kan vi enkelt bruke ARG/--build-arg:

ARG GO_VERSION

FROM golang:${GO_VERSION}-alpine

I GitHub .workflow kjΓΈrer vi ogsΓ₯ noen tester med:

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3
        with:
          go-version: 1.20

Jeg ΓΈnsker Γ₯ bruke samme versjon begge steder, definert ett sted.

Helt siden Go 1.12 har go.mod inneholdt Go-versjonen.

Dette formatet er sΓ₯ enkelt at det ikke er vanskelig Γ₯ hente ut direkte:

Each line holds a single directive, made up of a verb followed by arguments.

 <go.mod tr -s ' \t\r' ' ' | sed -n '/^ *go [1-9]/s/^ *go //p'
#β””β”¬β”€β”€β”€β”€β”˜ β””β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”¬β”€β”€β”˜β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”˜
# β”‚       β”‚                     β”‚     β”‚                    β”‚
# β”‚       β”‚   default ikke printβ”˜     β”” for linjer         β”‚
# β”‚       β”‚                             som starter        β”‚
# β”‚       β”‚                             med ' *go [1-9]'   β”‚
# β”‚       β”‚                                                β”‚
# β”‚       β”‚              erstatt ' *go ' med '' og *p*rint β”˜
# β”‚       β”‚
# β”‚       β”” erstatt alle [ \t\r]+ med ' '
# β”” redirect go.mod til stdin

Men Go hjelper oss ogsΓ₯:

The go mod edit command provides a command-line interface for editing and formatting go.mod files, for use primarily by tools and scripts.

go mod edit -json | jq -r .Go

Siden denne kommandoen er laget for akkurat dette formΓ₯let tenker jeg den er veldig trygg Γ₯ basere seg pΓ₯.

Send gjerne spΓΈrsmΓ₯l eller kommentarer til Richard Tingstad :)