mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-04-27 11:21:44 +00:00
80 lines
2.4 KiB
Plaintext
80 lines
2.4 KiB
Plaintext
VERSION 0.6
|
|
FROM alpine
|
|
ARG CGO_ENABLED=0
|
|
ARG GOLINT_VERSION=1.52.2
|
|
# renovate: datasource=docker depName=golang
|
|
ARG GO_VERSION=1.20
|
|
|
|
go-deps:
|
|
ARG GO_VERSION
|
|
FROM golang:$GO_VERSION
|
|
WORKDIR /build
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
RUN apt-get update && apt-get install -y upx
|
|
SAVE ARTIFACT go.mod AS LOCAL go.mod
|
|
SAVE ARTIFACT go.sum AS LOCAL go.sum
|
|
|
|
luet:
|
|
FROM quay.io/luet/base:0.34.0
|
|
SAVE ARTIFACT /usr/bin/luet /luet
|
|
|
|
test:
|
|
FROM +go-deps
|
|
WORKDIR /build
|
|
COPY +luet/luet /usr/bin/luet
|
|
COPY . .
|
|
RUN go run github.com/onsi/ginkgo/v2/ginkgo --fail-fast --covermode=atomic --coverprofile=coverage.out -p -r ./...
|
|
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
|
|
|
version:
|
|
FROM alpine
|
|
RUN apk add git
|
|
|
|
COPY . ./
|
|
|
|
RUN --no-cache echo $(git describe --always --tags --dirty) > VERSION
|
|
|
|
ARG VERSION=$(cat VERSION)
|
|
SAVE ARTIFACT VERSION VERSION
|
|
|
|
build-kairos-agent:
|
|
FROM +go-deps
|
|
COPY . .
|
|
COPY +webui-deps/node_modules ./internal/webui/public/node_modules
|
|
COPY github.com/kairos-io/kairos:master+docs/public/local ./internal/webui/public/local
|
|
COPY +version/VERSION ./
|
|
ARG VERSION=$(cat VERSION)
|
|
RUN echo $(cat VERSION)
|
|
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
|
|
|
|
build:
|
|
BUILD +build-kairos-agent
|
|
|
|
golint:
|
|
ARG GO_VERSION
|
|
FROM golang:$GO_VERSION
|
|
ARG GOLINT_VERSION
|
|
RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v$GOLINT_VERSION
|
|
WORKDIR /build
|
|
COPY . .
|
|
RUN golangci-lint run
|
|
|
|
webui-deps:
|
|
FROM node:19-alpine
|
|
COPY . .
|
|
WORKDIR ./internal/webui/public
|
|
RUN npm install
|
|
SAVE ARTIFACT node_modules /node_modules AS LOCAL internal/webui/public/node_modules
|
|
|
|
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
|
|
SAVE ARTIFACT /src/internal/webui/public/cypress/videos videos |