feat(build): add RELEASE_VERSION argument to be able to pass release version via env
This commit is contained in:
parent
56961a9a40
commit
5e62c219d3
|
|
@ -9,23 +9,24 @@ jobs:
|
||||||
docker:
|
docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
- name: Git describe
|
||||||
name: Login to GHCR
|
id: ghd
|
||||||
|
uses: proudust/gh-describe@v2
|
||||||
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
-
|
- name: Set up QEMU
|
||||||
name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
-
|
- name: Set up Docker Buildx
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
-
|
- name: Build and push
|
||||||
name: Build and push
|
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
|
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
|
||||||
push: true
|
push: true
|
||||||
tags: ghcr.io/go-vikunja/vikunja:unstable
|
tags: ghcr.io/go-vikunja/vikunja:unstable
|
||||||
|
build-args: |
|
||||||
|
RELEASE_VERSION:${{ steps.ghd.outputs.describe }}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@ WORKDIR /go/src/code.vikunja.io/api
|
||||||
COPY . ./
|
COPY . ./
|
||||||
COPY --from=frontendbuilder /build/dist ./frontend/dist
|
COPY --from=frontendbuilder /build/dist ./frontend/dist
|
||||||
|
|
||||||
ARG TARGETOS TARGETARCH TARGETVARIANT
|
ARG TARGETOS TARGETARCH TARGETVARIANT RELEASE_VERSION
|
||||||
|
ENV RELEASE_VERSION=$RELEASE_VERSION
|
||||||
|
|
||||||
ENV GOPROXY=https://goproxy.kolaente.de
|
ENV GOPROXY=https://goproxy.kolaente.de
|
||||||
RUN export PATH=$PATH:$GOPATH/bin && \
|
RUN export PATH=$PATH:$GOPATH/bin && \
|
||||||
|
|
|
||||||
42
magefile.go
42
magefile.go
|
|
@ -37,7 +37,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/iancoleman/strcase"
|
"github.com/iancoleman/strcase"
|
||||||
|
|
||||||
"github.com/magefile/mage/mg"
|
"github.com/magefile/mage/mg"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
)
|
)
|
||||||
|
|
@ -92,24 +91,41 @@ func runCmdWithOutput(name string, arg ...string) (output []byte, err error) {
|
||||||
return output, nil
|
return output, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getRawVersionString() (version string, err error) {
|
||||||
|
versionEnv := os.Getenv("RELEASE_VERSION")
|
||||||
|
if versionEnv != "" {
|
||||||
|
return versionEnv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if os.Getenv("DRONE_TAG") != "" {
|
||||||
|
return os.Getenv("DRONE_TAG"), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if os.Getenv("DRONE_BRANCH") != "" {
|
||||||
|
version = strings.Replace(os.Getenv("DRONE_BRANCH"), "release/v", "", 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if version == "main" {
|
||||||
|
version = "unstable"
|
||||||
|
}
|
||||||
|
|
||||||
|
if version != "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
versionBytes, err := runCmdWithOutput("git", "describe", "--tags", "--always", "--abbrev=10")
|
||||||
|
return string(versionBytes), err
|
||||||
|
}
|
||||||
|
|
||||||
func setVersion() {
|
func setVersion() {
|
||||||
version, err := runCmdWithOutput("git", "describe", "--tags", "--always", "--abbrev=10")
|
version, err := getRawVersionString()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error getting version: %s\n", err)
|
fmt.Printf("Error getting version: %s\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
VersionNumber = strings.Trim(string(version), "\n")
|
VersionNumber = strings.Trim(version, "\n")
|
||||||
VersionNumber = strings.Replace(VersionNumber, "-g", "-", 1)
|
VersionNumber = strings.Replace(VersionNumber, "-g", "-", 1)
|
||||||
|
Version = version
|
||||||
if os.Getenv("DRONE_TAG") != "" {
|
|
||||||
Version = os.Getenv("DRONE_TAG")
|
|
||||||
} else if os.Getenv("DRONE_BRANCH") != "" {
|
|
||||||
Version = strings.Replace(os.Getenv("DRONE_BRANCH"), "release/v", "", 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if Version == "main" {
|
|
||||||
Version = "unstable"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setBinLocation() {
|
func setBinLocation() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue