2023-02-16 07:57:25 +00:00
|
|
|
VERSION 0.6
|
2023-02-15 16:41:15 +00:00
|
|
|
ARG BASE_IMAGE=quay.io/kairos/core-ubuntu:latest
|
2022-10-17 14:44:25 +00:00
|
|
|
ARG OSBUILDER_IMAGE=quay.io/kairos/osbuilder-tools
|
2023-03-29 12:28:45 +00:00
|
|
|
# renovate: datasource=docker depName=golang
|
2023-03-30 07:19:58 +00:00
|
|
|
ARG GO_VERSION=1.20
|
2023-01-19 14:54:26 +00:00
|
|
|
ARG LUET_VERSION=0.33.0
|
2022-10-17 14:44:25 +00:00
|
|
|
|
|
|
|
build-challenger:
|
|
|
|
FROM golang:alpine
|
|
|
|
COPY . /work
|
|
|
|
WORKDIR /work
|
|
|
|
RUN CGO_ENABLED=0 go build -o kcrypt-discovery-challenger ./cmd/discovery
|
2023-05-09 22:24:58 +00:00
|
|
|
SAVE ARTIFACT /work/kcrypt-discovery-challenger kcrypt-discovery-challenger AS LOCAL kcrypt-discovery-challenger
|
2022-10-17 14:44:25 +00:00
|
|
|
|
|
|
|
image:
|
|
|
|
FROM $BASE_IMAGE
|
|
|
|
ARG IMAGE
|
|
|
|
COPY +build-challenger/kcrypt-discovery-challenger /system/discovery/kcrypt-discovery-challenger
|
|
|
|
SAVE IMAGE $IMAGE
|
|
|
|
|
2023-02-16 07:08:15 +00:00
|
|
|
image-rootfs:
|
|
|
|
FROM +image
|
|
|
|
SAVE ARTIFACT --keep-own /. rootfs
|
|
|
|
|
|
|
|
grub-files:
|
|
|
|
FROM alpine
|
|
|
|
RUN apk add wget
|
|
|
|
RUN wget https://raw.githubusercontent.com/c3os-io/c3os/master/overlay/files-iso/boot/grub2/grub.cfg -O grub.cfg
|
|
|
|
SAVE ARTIFACT --keep-own grub.cfg grub.cfg
|
|
|
|
|
2022-10-17 14:44:25 +00:00
|
|
|
iso:
|
|
|
|
ARG OSBUILDER_IMAGE
|
|
|
|
ARG ISO_NAME=challenger
|
|
|
|
FROM $OSBUILDER_IMAGE
|
|
|
|
WORKDIR /build
|
2023-02-16 07:08:15 +00:00
|
|
|
COPY --keep-own +grub-files/grub.cfg /build/files-iso/boot/grub2/grub.cfg
|
|
|
|
COPY --keep-own +image-rootfs/rootfs /build/rootfs
|
|
|
|
RUN /entrypoint.sh --name $ISO_NAME --debug build-iso --squash-no-compression --date=false --local --overlay-iso /build/files-iso --output /build/ dir:/build/rootfs
|
2022-10-17 14:44:25 +00:00
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.iso kairos.iso AS LOCAL build/$ISO_NAME.iso
|
|
|
|
SAVE ARTIFACT /build/$ISO_NAME.iso.sha256 kairos.iso.sha256 AS LOCAL build/$ISO_NAME.iso.sha256
|
2022-11-09 14:51:31 +00:00
|
|
|
|
|
|
|
test:
|
|
|
|
ARG GO_VERSION
|
|
|
|
FROM golang:$GO_VERSION
|
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
|
|
|
|
WORKDIR /work
|
|
|
|
|
|
|
|
# Cache layer for modules
|
|
|
|
COPY go.mod go.sum ./
|
|
|
|
RUN go mod download && go mod verify
|
|
|
|
|
|
|
|
COPY . /work
|
2023-05-09 22:24:58 +00:00
|
|
|
RUN go run github.com/onsi/ginkgo/v2/ginkgo run --covermode=atomic --coverprofile=coverage.out -p -r pkg/challenger cmd/discovery/client
|
2022-11-09 14:51:31 +00:00
|
|
|
SAVE ARTIFACT coverage.out AS LOCAL coverage.out
|
2023-01-19 14:54:26 +00:00
|
|
|
|
|
|
|
# Generic targets
|
|
|
|
# usage e.g. ./earthly.sh +datasource-iso --CLOUD_CONFIG=tests/assets/qrcode.yaml
|
|
|
|
datasource-iso:
|
|
|
|
ARG OSBUILDER_IMAGE
|
|
|
|
ARG CLOUD_CONFIG
|
|
|
|
FROM $OSBUILDER_IMAGE
|
|
|
|
RUN zypper in -y mkisofs
|
|
|
|
WORKDIR /build
|
|
|
|
RUN touch meta-data
|
|
|
|
|
|
|
|
COPY ${CLOUD_CONFIG} user-data
|
|
|
|
RUN cat user-data
|
|
|
|
RUN mkisofs -output ci.iso -volid cidata -joliet -rock user-data meta-data
|
|
|
|
SAVE ARTIFACT /build/ci.iso iso.iso AS LOCAL build/datasource.iso
|
|
|
|
|
|
|
|
luet:
|
|
|
|
FROM quay.io/luet/base:$LUET_VERSION
|
|
|
|
SAVE ARTIFACT /usr/bin/luet /luet
|
|
|
|
|
|
|
|
e2e-tests-image:
|
|
|
|
FROM opensuse/tumbleweed
|
2023-02-09 10:10:38 +00:00
|
|
|
RUN zypper in -y go git qemu-x86 qemu-arm qemu-tools swtpm docker jq docker-compose make glibc libopenssl-devel curl gettext-runtime
|
2023-01-19 14:54:26 +00:00
|
|
|
ENV GOPATH="/go"
|
|
|
|
|
|
|
|
COPY . /test
|
|
|
|
WORKDIR /test
|
|
|
|
|
|
|
|
IF [ -e /test/build/kairos.iso ]
|
|
|
|
ENV ISO=/test/build/kairos.iso
|
|
|
|
ELSE
|
|
|
|
COPY +iso/kairos.iso kairos.iso
|
|
|
|
ENV ISO=/test/kairos.iso
|
|
|
|
END
|
|
|
|
|
|
|
|
COPY +luet/luet /usr/bin/luet
|
|
|
|
RUN mkdir -p /etc/luet/repos.conf.d/
|
|
|
|
RUN luet repo add -y kairos --url quay.io/kairos/packages --type docker
|
|
|
|
RUN LUET_NOLOCK=true luet install -y container/kubectl utils/k3d
|
|
|
|
|
|
|
|
e2e-tests:
|
|
|
|
FROM +e2e-tests-image
|
2023-02-15 07:18:52 +00:00
|
|
|
ARG LABEL
|
2023-01-19 14:54:26 +00:00
|
|
|
|
|
|
|
WITH DOCKER --allow-privileged
|
|
|
|
RUN ./scripts/e2e-tests.sh
|
|
|
|
END
|
2023-03-29 12:33:29 +00:00
|
|
|
|
2023-03-29 13:33:27 +00:00
|
|
|
lint:
|
|
|
|
BUILD +yamllint
|
|
|
|
|
2023-03-29 12:33:29 +00:00
|
|
|
yamllint:
|
|
|
|
FROM cytopia/yamllint
|
|
|
|
COPY . .
|
|
|
|
RUN yamllint .github/workflows/
|