another one

This commit is contained in:
Kwitsch 2022-09-19 19:23:33 +02:00
parent 1ca3263f8b
commit 64480c645a
7 changed files with 35 additions and 97 deletions

View File

@ -230,7 +230,7 @@ jobs:
echo ' docker.com' >> /tmp/blocky_test.yml
# test script
echo '#!/bin/sh' >> /tmp/test.sh
echo '#!/bin/sh' > /tmp/test.sh
echo 'docker run -d -p 5333:5333/tcp --name test_${{ matrix.arch }} --rm -v /tmp/blocky_test.yml:/app/config.yml:ro ghcr.io/${{ github.repository }}:${{ needs.docker.outputs.branch }}' >> /tmp/test.sh
echo 'sleep 20' >> /tmp/test.sh
echo '[ "$(dig docker.com @127.0.0.1 +short +tcp -p 5333)" ] && exit 1 || echo "docker.com is blocked"' >> /tmp/test.sh
@ -238,10 +238,12 @@ jobs:
chmod +x /tmp/test.sh
# print files
echo 'Content of /tmp/blocky_test.yml'
echo '::group::Content of /tmp/blocky_test.yml'
cat /tmp/blocky_test.yml
echo 'Content of /tmp/test.sh'
echo ''::endgroup::'
echo '::group::Content of /tmp/test.sh'
cat /tmp/test.sh
echo '::endgroup::'
- name: Test amd64 image
if: ${{ matrix.arm == false }}

View File

@ -1,3 +1,4 @@
FROM ghcr.io/euantorano/zig:master AS zig-env
# prepare build environment
FROM --platform=$BUILDPLATFORM ghcr.io/gythialy/golang-cross-builder:v1.18.6-0 AS build
@ -9,7 +10,10 @@ ARG TARGETARCH
ARG TARGETVARIANT
# arguments to environment
ENV CGO_ENABLED=1
ENV CC="zig cc"
ENV CXX="zig c++"
ENV AR="zig ar"
ENV CGO_ENABLED=0
ENV GOOS=$TARGETOS
ENV GOARCH=$TARGETARCH
@ -19,31 +23,35 @@ RUN echo "blocky:x:100:65533:Blocky User,,,:/app:/sbin/nologin" > /tmp/blocky_pa
# set working directory
WORKDIR /go/src
COPY --from=zig-env /usr/local/bin/zig /usr/local/bin/zig
ENV PATH "/usr/local/bin/zig:${PATH}"
COPY ./docker /scripts
RUN chmod +x /scripts/*.sh
# download packages
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg \
go mod download
# add source
COPY . .
RUN --mount=type=cache,target=/go/pkg \
go generate ./...
# build binary
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
chmod +x ./docker/*.sh && \
export GOARM=${TARGETVARIANT##*v} && \
export CC=$(./docker/getenv_cc.sh) && \
export CXX=$(./docker/getenv_cxx.sh) && \
export LD=$(./docker/getenv_ld.sh) && \
export AR=$(./docker/getenv_ar.sh) && \
./docker/printenv.sh && \
go generate ./... && \
/scripts/printenv.sh && \
go build \
-tags static \
-tags static,sqlite_omit_load_extensions,osusergo,netgo \
-v \
-ldflags="-linkmode external -extldflags -static -X github.com/0xERR0R/blocky/util.Version=${VERSION} -X github.com/0xERR0R/blocky/util.BuildTime=${BUILD_TIME}" \
-o /bin/blocky && \
setcap 'cap_net_bind_service=+ep' /bin/blocky && \
-ldflags="-linkmode=external -extldflags=-static -s -w -X github.com/0xERR0R/blocky/util.Version=${VERSION} -X github.com/0xERR0R/blocky/util.BuildTime=${BUILD_TIME}" \
-o /bin/blocky
RUN setcap 'cap_net_bind_service=+ep' /bin/blocky && \
chown 100 /bin/blocky
# final stage

View File

@ -1,18 +0,0 @@
#!/bin/bash
if [[ "$GOARCH" = "arm64" ]]
then
AR_BIN="aarch64-linux-gnu-ar"
elif [[ "$GOARCH" = "arm" ]]
then
if [[ "$GOARM" = "7" ]]
then
AR_BIN="arm-linux-gnueabihf-ar"
else
AR_BIN="arm-linux-gnueabi-ar"
fi
else
AR_BIN=""
fi
echo $AR_BIN

View File

@ -1,18 +0,0 @@
#!/bin/bash
if [[ "$GOARCH" = "arm64" ]]
then
CC_BIN="aarch64-linux-gnu-gcc"
elif [[ "$GOARCH" = "arm" ]]
then
if [[ "$GOARM" = "7" ]]
then
CC_BIN="arm-linux-gnueabihf-gcc"
else
CC_BIN="arm-linux-gnueabi-gcc"
fi
else
CC_BIN=""
fi
echo $CC_BIN

View File

@ -1,18 +0,0 @@
#!/bin/bash
if [[ "$GOARCH" = "arm64" ]]
then
CXX_BIN="aarch64-linux-gnu-g++"
elif [[ "$GOARCH" = "arm" ]]
then
if [[ "$GOARM" = "7" ]]
then
CXX_BIN="arm-linux-gnueabihf-g++"
else
CXX_BIN="arm-linux-gnueabi-g++"
fi
else
CXX_BIN=""
fi
echo $CXX_BIN

View File

@ -1,18 +0,0 @@
#!/bin/bash
if [[ "$GOARCH" = "arm64" ]]
then
LD_BIN="aarch64-linux-gnu-ld"
elif [[ "$GOARCH" = "arm" ]]
then
if [[ "$GOARM" = "7" ]]
then
LD_BIN="arm-linux-gnueabihf-ld"
else
LL_BIN="arm-linux-gnueabi-ld"
fi
else
LD_BIN=""
fi
echo $LD_BIN

View File

@ -1,10 +1,10 @@
#!/bin/bash
#!/bin/sh
echo "## Environment ##"
echo "CC: $CC"
echo "CXX: $CXX"
echo "CGO_ENABLED: $CGO_ENABLED"
echo "GOOS: $GOOS"
echo "GOARCH: $GOARCH"
echo "GOARM: $GOARM"
echo "#################"
echo "::group::Environment - ${TARGETARCH}${TARGETVARIANT}"
echo "CC: ${go env CC}"
echo "CXX: ${go env CXX}"
echo "CGO_ENABLED: ${go env CGO_ENABLED}"
echo "GOOS: ${go env GOOS}"
echo "GOARCH: ${go env GOARCH}"
echo "GOARM: ${go env GOARM}"
echo "::endgroup::"