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
ARG --global GO_VERSION=1.20-alpine3.17
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
2022-07-07 23:56:51 +00:00
WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download
SAVE ARTIFACT go.mod AS LOCAL go.mod
SAVE ARTIFACT go.sum AS LOCAL go.sum
2023-04-24 10:08:37 +00:00
luet:
FROM quay.io/luet/base:0.34.0
SAVE ARTIFACT /usr/bin/luet /luet
2023-02-03 10:04:02 +00:00
test:
2023-03-17 15:45:43 +00:00
FROM +go-deps
2023-05-05 16:43:21 +00:00
RUN apk add rsync gcc musl-dev docker jq bash
2023-02-03 10:04:02 +00:00
WORKDIR /build
2022-09-29 22:06:25 +00:00
COPY +luet/luet /usr/bin/luet
2022-07-16 13:19:23 +00:00
COPY . .
2023-05-05 16:43:21 +00:00
# Some test require the docker sock exposed
ARG TEST_PATHS=./...
ARG LABEL_FILTER=
ENV CGO_ENABLED=1
WITH DOCKER
RUN go run github.com/onsi/ginkgo/v2/ginkgo run --label-filter "$LABEL_FILTER" -v --output-interceptor-mode=none --fail-fast --race --covermode=atomic --coverprofile=coverage.out -r $TEST_PATHS
END
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:
FROM alpine
RUN apk add git
COPY . ./
2023-01-16 18:24:11 +00:00
RUN --no-cache echo $(git describe --always --tags --dirty) > VERSION
2022-08-12 13:49:41 +00:00
2023-01-16 18:24:11 +00:00
ARG VERSION=$(cat VERSION)
2022-08-12 13:49:41 +00:00
SAVE ARTIFACT VERSION VERSION
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-05-05 16:43:21 +00:00
RUN apk add upx
2023-04-24 10:08:37 +00:00
COPY . .
2023-01-10 13:21:15 +00:00
COPY +webui-deps/node_modules ./internal/webui/public/node_modules
2023-05-17 07:08:05 +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 ./
ARG VERSION=$(cat VERSION)
2023-04-13 17:44:19 +00:00
RUN echo $(cat VERSION)
2023-04-24 10:08:37 +00:00
ARG LDFLAGS="-s -w -X 'github.com/kairos-io/kairos/v2/internal/common.VERSION=${VERSION}'"
ENV CGO_ENABLED=${CGO_ENABLED}
RUN go build -o kairos-agent -ldflags "${LDFLAGS}" main.go && upx kairos-agent
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:
2022-08-08 08:31:00 +00:00
ARG GO_VERSION
FROM golang:$GO_VERSION
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
COPY . .
RUN golangci-lint run
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:
FROM ubuntu:22.10
RUN apt-get update && apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb golang nodejs npm
COPY +build-kairos-agent/kairos-agent /usr/bin/kairos-agent
COPY . src/
WORKDIR src/
RUN .github/cypress_tests.sh
2023-04-24 10:08:37 +00:00
SAVE ARTIFACT /src/internal/webui/public/cypress/videos videos