π² β mikrobloggeriet olorm β olorm-8 Β· olorm-9 Β· olorm-10
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 :)