2023-05-05 16:43:21 +00:00
|
|
|
VERSION 0.7
|
2022-07-07 23:56:51 +00:00
|
|
|
FROM alpine
|
2023-02-08 08:57:19 +00:00
|
|
|
# renovate: datasource=docker depName=golang
|
2023-05-05 16:43:21 +00:00
|
|
|
ARG --global GOLINT_VERSION=1.52.2
|
|
|
|
# renovate: datasource=docker depName=golang
|
2024-09-10 13:29:49 +00:00
|
|
|
ARG --global GO_VERSION=1.23-bookworm
|
2023-05-16 14:30:04 +00:00
|
|
|
# renovate: datasource=docker depName=cypress/base
|
|
|
|
ARG --global CYPRESS_VERSION=18.16.0
|
2023-04-18 11:55:59 +00:00
|
|
|
|
2022-07-07 23:56:51 +00:00
|
|
|
go-deps:
|
2022-08-08 08:31:00 +00:00
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
2024-01-15 12:54:38 +00:00
|
|
|
RUN apt-get update && apt-get install -y rsync gcc bash git
|
2022-07-07 23:56:51 +00:00
|
|
|
WORKDIR /build
|
2024-05-09 08:13:37 +00:00
|
|
|
COPY . .
|
2024-07-11 09:36:54 +00:00
|
|
|
RUN go mod tidy
|
2022-07-07 23:56:51 +00:00
|
|
|
RUN go mod download
|
2024-05-09 07:59:51 +00:00
|
|
|
RUN go mod verify
|
2022-07-07 23:56:51 +00:00
|
|
|
|
2023-02-03 10:04:02 +00:00
|
|
|
test:
|
2023-03-17 15:45:43 +00:00
|
|
|
FROM +go-deps
|
2023-02-03 10:04:02 +00:00
|
|
|
WORKDIR /build
|
2023-05-05 16:43:21 +00:00
|
|
|
ARG TEST_PATHS=./...
|
|
|
|
ARG LABEL_FILTER=
|
|
|
|
ENV CGO_ENABLED=1
|
2024-09-17 15:51:11 +00:00
|
|
|
RUN go run github.com/onsi/ginkgo/v2/ginkgo run -p --label-filter "$LABEL_FILTER" --covermode=atomic --coverprofile=coverage.out --race -r $TEST_PATHS
|
2022-07-16 13:19:23 +00:00
|
|
|
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
|
|
|
|
2022-08-12 13:49:41 +00:00
|
|
|
version:
|
2024-01-15 12:54:38 +00:00
|
|
|
FROM +go-deps
|
2023-01-16 18:24:11 +00:00
|
|
|
RUN --no-cache echo $(git describe --always --tags --dirty) > VERSION
|
2023-06-05 10:40:23 +00:00
|
|
|
RUN --no-cache echo $(git describe --always --dirty) > COMMIT
|
2023-01-16 18:24:11 +00:00
|
|
|
ARG VERSION=$(cat VERSION)
|
2023-06-05 10:40:23 +00:00
|
|
|
ARG COMMIT=$(cat COMMIT)
|
2022-08-12 13:49:41 +00:00
|
|
|
SAVE ARTIFACT VERSION VERSION
|
2023-06-05 10:40:23 +00:00
|
|
|
SAVE ARTIFACT COMMIT COMMIT
|
2022-07-09 18:13:25 +00:00
|
|
|
|
2022-09-17 16:43:51 +00:00
|
|
|
build-kairos-agent:
|
2022-07-09 18:13:25 +00:00
|
|
|
FROM +go-deps
|
2023-01-10 13:21:15 +00:00
|
|
|
COPY +webui-deps/node_modules ./internal/webui/public/node_modules
|
2023-07-05 09:42:44 +00:00
|
|
|
COPY github.com/kairos-io/kairos-docs:main+docs/public ./internal/webui/public/local
|
2023-03-28 18:09:57 +00:00
|
|
|
COPY +version/VERSION ./
|
2023-06-05 10:40:23 +00:00
|
|
|
COPY +version/COMMIT ./
|
2023-03-28 18:09:57 +00:00
|
|
|
ARG VERSION=$(cat VERSION)
|
2023-06-05 10:40:23 +00:00
|
|
|
ARG COMMIT=$(cat COMMIT)
|
|
|
|
RUN --no-cache echo "Building Version: ${VERSION} and Commit: ${COMMIT}"
|
2023-07-10 12:39:48 +00:00
|
|
|
ARG LDFLAGS="-s -w -X github.com/kairos-io/kairos-agent/v2/internal/common.VERSION=${VERSION} -X github.com/kairos-io/kairos-agent/v2/internal/common.gitCommit=$COMMIT"
|
2024-01-15 12:54:38 +00:00
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
RUN go build -o kairos-agent -ldflags "${LDFLAGS}" main.go
|
2023-04-24 10:08:37 +00:00
|
|
|
SAVE ARTIFACT kairos-agent kairos-agent AS LOCAL build/kairos-agent
|
2022-07-09 18:13:25 +00:00
|
|
|
|
|
|
|
build:
|
2022-09-17 16:43:51 +00:00
|
|
|
BUILD +build-kairos-agent
|
2022-07-07 23:56:51 +00:00
|
|
|
|
2023-02-05 17:10:51 +00:00
|
|
|
golint:
|
2024-01-15 12:54:38 +00:00
|
|
|
FROM +go-deps
|
2022-08-08 08:27:41 +00:00
|
|
|
ARG GOLINT_VERSION
|
|
|
|
RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v$GOLINT_VERSION
|
2022-07-16 14:28:22 +00:00
|
|
|
WORKDIR /build
|
2024-05-09 08:13:37 +00:00
|
|
|
RUN bin/golangci-lint run
|
2022-07-16 14:28:22 +00:00
|
|
|
|
2023-01-10 13:21:15 +00:00
|
|
|
webui-deps:
|
2023-02-17 13:17:07 +00:00
|
|
|
FROM node:19-alpine
|
2023-01-10 13:21:15 +00:00
|
|
|
COPY . .
|
|
|
|
WORKDIR ./internal/webui/public
|
|
|
|
RUN npm install
|
|
|
|
SAVE ARTIFACT node_modules /node_modules AS LOCAL internal/webui/public/node_modules
|
2023-01-28 20:44:24 +00:00
|
|
|
|
2023-04-18 16:09:48 +00:00
|
|
|
webui-tests:
|
2023-05-16 14:30:04 +00:00
|
|
|
FROM cypress/base:$CYPRESS_VERSION
|
2023-04-18 16:09:48 +00:00
|
|
|
COPY +build-kairos-agent/kairos-agent /usr/bin/kairos-agent
|
|
|
|
COPY . src/
|
|
|
|
WORKDIR src/
|
|
|
|
RUN .github/cypress_tests.sh
|
2023-06-23 12:49:38 +00:00
|
|
|
SAVE ARTIFACT /src/internal/webui/public/cypress/videos videos
|