This commit is contained in:
parent
79e75ba819
commit
dadb5076f2
7 changed files with 10 additions and 164 deletions
19
Dockerfile
19
Dockerfile
|
|
@ -1,15 +1,6 @@
|
|||
FROM docker.io/golang:alpine
|
||||
FROM golang AS builder
|
||||
COPY . .
|
||||
RUN go build -o /main main.go
|
||||
|
||||
WORKDIR /root
|
||||
USER root
|
||||
|
||||
RUN apk add musl-dev gcc libtool m4 autoconf g++ make libblkid util-linux-dev git linux-headers mingw-w64-gcc
|
||||
|
||||
RUN wget http://musl.cc/aarch64-linux-musl-cross.tgz -O /tmp/aarch64-linux-musl-cross.tgz && \
|
||||
tar --strip-components=1 -C /usr/local -xzf /tmp/aarch64-linux-musl-cross.tgz && \
|
||||
rm /tmp/aarch64-linux-musl-cross.tgz
|
||||
|
||||
ADD ./scripts/build-static.sh /build-static.sh
|
||||
RUN chmod +x /build-static.sh
|
||||
|
||||
CMD ["/bin/sh"]
|
||||
FROM ghcr.io/cloudbase/garm:nightly
|
||||
COPY --from=builder ./main /opt/garm/providers.d/garm-provider-edge-connect
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
FROM golang AS builder
|
||||
COPY . .
|
||||
RUN go build -o /main main.go
|
||||
|
||||
FROM ghcr.io/cloudbase/garm:nightly
|
||||
COPY --from=builder ./main /opt/garm/providers.d/garm-provider-edge-connect
|
||||
COPY mockprovider.sh /opt/garm/providers.d/mockprovider
|
||||
25
Makefile
25
Makefile
|
|
@ -13,21 +13,13 @@ GARM_PROVIDER_NAME := garm-provider-edge-connect
|
|||
|
||||
default: build
|
||||
|
||||
.PHONY : build build-static test install-lint-deps lint go-test fmt fmtcheck verify-vendor verify create-release-files release
|
||||
|
||||
.PHONY : build test install-lint-deps lint go-test fmt fmtcheck verify
|
||||
build:
|
||||
@$(GO) build .
|
||||
|
||||
clean: ## Clean up build artifacts
|
||||
@rm -rf ./bin ./build ./release
|
||||
|
||||
build-static:
|
||||
@echo Building
|
||||
$(IMAGE_BUILDER) build --tag $(IMAGE_TAG) .
|
||||
mkdir -p build
|
||||
$(IMAGE_BUILDER) run --rm -e GARM_PROVIDER_NAME=$(GARM_PROVIDER_NAME) -e USER_ID=$(USER_ID) -e USER_GROUP=$(USER_GROUP) -v $(PWD)/build:/build/output:z -v $(PWD):/build/$(GARM_PROVIDER_NAME):z -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt $(IMAGE_TAG) /build-static.sh
|
||||
@echo Binaries are available in $(PWD)/build
|
||||
|
||||
test: install-lint-deps verify go-test
|
||||
|
||||
install-lint-deps:
|
||||
|
|
@ -45,17 +37,4 @@ fmt:
|
|||
fmtcheck:
|
||||
@gofmt -l -s $$(go list ./... | sed -n 's/github.com\/cloudbase\/'$(GARM_PROVIDER_NAME)'\/\(.*\)/\1/p') | grep ".*\.go"; if [ "$$?" -eq 0 ]; then echo "gofmt check failed; please tun gofmt -w -s"; exit 1;fi
|
||||
|
||||
verify-vendor: ## verify if all the go.mod/go.sum files are up-to-date
|
||||
$(eval TMPDIR := $(shell mktemp -d))
|
||||
@cp -R ${ROOTDIR} ${TMPDIR}
|
||||
@(cd ${TMPDIR}/$(GARM_PROVIDER_NAME) && ${GO} mod tidy)
|
||||
@diff -r -u -q ${ROOTDIR} ${TMPDIR}/$(GARM_PROVIDER_NAME) >/dev/null 2>&1; if [ "$$?" -ne 0 ];then echo "please run: go mod tidy && go mod vendor"; exit 1; fi
|
||||
@rm -rf ${TMPDIR}
|
||||
|
||||
verify: verify-vendor lint fmtcheck
|
||||
|
||||
##@ Release
|
||||
create-release-files:
|
||||
./scripts/make-release.sh
|
||||
|
||||
release: build-static create-release-files ## Create a release
|
||||
verify: lint fmtcheck
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ In the garm project edit the file deploy.yaml:
|
|||
Use these commands in the current project.
|
||||
|
||||
´´´bash
|
||||
docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] -f Dockerfile.kaesekuchen --push .
|
||||
docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] --push .
|
||||
|
||||
kubectl apply -f ../garm/deploy.yaml
|
||||
´´´
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
LOG_FILE=./mock.log
|
||||
env | sort | grep -v PASSWORD >> $LOG_FILE
|
||||
echo Parameters $@ >> $LOG_FILE
|
||||
|
||||
while read line
|
||||
do
|
||||
echo stdin "$line" >> $LOG_FILE
|
||||
done < "/dev/stdin"
|
||||
|
||||
echo ======================================================================================= >> $LOG_FILE
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
GARM_PROVIDER_NAME=${GARM_PROVIDER_NAME:-garm-provider-edge-connect}
|
||||
GARM_SOURCE="/build/$GARM_PROVIDER_NAME"
|
||||
git config --global --add safe.directory /build/$GARM_PROVIDER_NAME
|
||||
cd $GARM_SOURCE
|
||||
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [ ! -z "$GARM_REF" ] && [ "$GARM_REF" != "$CURRENT_BRANCH" ];then
|
||||
git checkout $GARM_REF
|
||||
fi
|
||||
|
||||
cd $GARM_SOURCE
|
||||
|
||||
OUTPUT_DIR="/build/output"
|
||||
VERSION=$(git describe --tags --match='v[0-9]*' --dirty --always)
|
||||
BUILD_DIR="$OUTPUT_DIR/$VERSION"
|
||||
|
||||
|
||||
[ ! -d "$BUILD_DIR/linux" ] && mkdir -p "$BUILD_DIR/linux"
|
||||
[ ! -d "$BUILD_DIR/windows" ] && mkdir -p "$BUILD_DIR/windows"
|
||||
|
||||
export CGO_ENABLED=1
|
||||
USER_ID=${USER_ID:-$UID}
|
||||
USER_GROUP=${USER_GROUP:-$(id -g)}
|
||||
|
||||
# Garm
|
||||
cd $GARM_SOURCE
|
||||
|
||||
# Linux
|
||||
GOOS=linux GOARCH=amd64 go build -mod vendor \
|
||||
-o $BUILD_DIR/linux/amd64/$GARM_PROVIDER_NAME \
|
||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
||||
-ldflags "-extldflags '-static' -s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
||||
GOOS=linux GOARCH=arm64 CC=aarch64-linux-musl-gcc go build \
|
||||
-mod vendor \
|
||||
-o $BUILD_DIR/linux/arm64/$GARM_PROVIDER_NAME \
|
||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
||||
-ldflags "-extldflags '-static' -s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
||||
|
||||
# Windows
|
||||
GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-cc go build -mod vendor \
|
||||
-o $BUILD_DIR/windows/amd64/$GARM_PROVIDER_NAME.exe \
|
||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
||||
-ldflags "-s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
||||
|
||||
git checkout $CURRENT_BRANCH || true
|
||||
chown $USER_ID:$USER_GROUP -R "$OUTPUT_DIR"
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo $GARM_REF
|
||||
GARM_PROVIDER_NAME=${GARM_PROVIDER_NAME:-garm-provider-edge-connect}
|
||||
|
||||
VERSION=$(git describe --tags --match='v[0-9]*' --dirty --always)
|
||||
RELEASE="$PWD/release"
|
||||
|
||||
[ ! -d "$RELEASE" ] && mkdir -p "$RELEASE"
|
||||
|
||||
if [ ! -z "$GARM_REF" ]; then
|
||||
VERSION=$(git describe --tags --match='v[0-9]*' --always $GARM_REF)
|
||||
fi
|
||||
|
||||
echo $VERSION
|
||||
|
||||
if [ ! -d "build/$VERSION" ]; then
|
||||
echo "missing build/$VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Windows
|
||||
|
||||
if [ ! -d "build/$VERSION/windows/amd64" ];then
|
||||
echo "missing build/$VERSION/windows/amd64"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "build/$VERSION/windows/amd64/$GARM_PROVIDER_NAME.exe" ];then
|
||||
echo "missing build/$VERSION/windows/amd64/$GARM_PROVIDER_NAME.exe"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pushd build/$VERSION/windows/amd64
|
||||
zip $GARM_PROVIDER_NAME-windows-amd64.zip $GARM_PROVIDER_NAME.exe
|
||||
sha256sum $GARM_PROVIDER_NAME-windows-amd64.zip > $GARM_PROVIDER_NAME-windows-amd64.zip.sha256
|
||||
mv $GARM_PROVIDER_NAME-windows-amd64.zip $RELEASE
|
||||
mv $GARM_PROVIDER_NAME-windows-amd64.zip.sha256 $RELEASE
|
||||
popd
|
||||
|
||||
# Linux
|
||||
OS_ARCHES=("amd64" "arm64")
|
||||
|
||||
for arch in ${OS_ARCHES[@]};do
|
||||
if [ ! -f "build/$VERSION/linux/$arch/$GARM_PROVIDER_NAME" ];then
|
||||
echo "missing build/$VERSION/linux/$arch/$GARM_PROVIDER_NAME"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pushd build/$VERSION/linux/$arch
|
||||
tar czf $GARM_PROVIDER_NAME-linux-$arch.tgz $GARM_PROVIDER_NAME
|
||||
sha256sum $GARM_PROVIDER_NAME-linux-$arch.tgz > $GARM_PROVIDER_NAME-linux-$arch.tgz.sha256
|
||||
mv $GARM_PROVIDER_NAME-linux-$arch.tgz $RELEASE
|
||||
mv $GARM_PROVIDER_NAME-linux-$arch.tgz.sha256 $RELEASE
|
||||
popd
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue