mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-30 07:05:06 +03:00
ci: Improve docker build
Signed-off-by: Yan Minari <yangm97@gmail.com>
This commit is contained in:
parent
0a039b79ec
commit
70a36ba827
3 changed files with 37 additions and 51 deletions
|
@ -203,66 +203,33 @@ jobs:
|
||||||
command: |
|
command: |
|
||||||
echo 'export CINAME=$(sh contrib/semver/name.sh)' >> $BASH_ENV
|
echo 'export CINAME=$(sh contrib/semver/name.sh)' >> $BASH_ENV
|
||||||
echo 'export CIVERSION=$(sh contrib/semver/version.sh --bare)' >> $BASH_ENV
|
echo 'export CIVERSION=$(sh contrib/semver/version.sh --bare)' >> $BASH_ENV
|
||||||
|
echo 'export DOCKER_BUILDKIT=1' >> $BASH_ENV
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Build images
|
name: Build images
|
||||||
# docker-copyedit is used because of https://github.com/moby/moby/issues/36552
|
# TODO: don't use latest for develop
|
||||||
|
# TODO: tag using semver https://medium.com/@mccode/using-semantic-versioning-for-docker-image-tags-dfde8be06699
|
||||||
command: |
|
command: |
|
||||||
wget https://raw.githubusercontent.com/gdraheim/docker-copyedit/master/docker-copyedit.py && chmod +x docker-copyedit.py
|
mkdir -p linux/amd64 && \
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-amd64 yggdrasil && \
|
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-amd64 linux/amd64/yggdrasil
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
cp /tmp/upload/${CINAME}-${CIVERSION}-yggdrasilctl-linux-amd64 linux/amd64/yggdrasilctl
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:amd64 SET arch amd64 -vv
|
mkdir -p linux/arm64 && \
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-i386 yggdrasil && \
|
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-arm64 linux/arm64/yggdrasil
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
cp /tmp/upload/${CINAME}-${CIVERSION}-yggdrasilctl-linux-arm64 linux/arm64/yggdrasilctl
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:i386 SET arch i386 -vv
|
docker build \
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-mipsel yggdrasil && \
|
--tag=${DOCKER_NAMESPACE}:${CIVERSION} \
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
--tag=${DOCKER_NAMESPACE}:latest \
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:mipsel SET arch mipsel -vv
|
--platform=linux/amd64 \
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-mips yggdrasil && \
|
--platform=linux/arm64 \
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
--file=contrib/docker/ci/alpine/Dockerfile \
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:mips SET arch mips -vv
|
.
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-armhf yggdrasil && \
|
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:armhf SET arch armhf -vv
|
|
||||||
cp /tmp/upload/${CINAME}-${CIVERSION}-linux-arm64 yggdrasil && \
|
|
||||||
docker build -t ${DOCKER_NAMESPACE}:temp . && \
|
|
||||||
./docker-copyedit.py FROM ${DOCKER_NAMESPACE}:temp INTO ${DOCKER_NAMESPACE}:arm64 SET arch arm64 -vv
|
|
||||||
|
|
||||||
- run:
|
|
||||||
name: Tag images
|
|
||||||
command: |
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:amd64 ${DOCKER_NAMESPACE}:${CIVERSION}-amd64
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:i386 ${DOCKER_NAMESPACE}:${CIVERSION}-i386
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:mipsel ${DOCKER_NAMESPACE}:${CIVERSION}-mipsel
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:mips ${DOCKER_NAMESPACE}:${CIVERSION}-mips
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:armhf ${DOCKER_NAMESPACE}:${CIVERSION}-armhf
|
|
||||||
docker tag ${DOCKER_NAMESPACE}:arm64 ${DOCKER_NAMESPACE}:${CIVERSION}-arm64
|
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Push images
|
name: Push images
|
||||||
command: |
|
command: |
|
||||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||||
docker push ${DOCKER_NAMESPACE}:amd64
|
docker push ${DOCKER_NAMESPACE}:${CIVERSION}
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-amd64
|
docker push ${DOCKER_NAMESPACE}:latest
|
||||||
docker push ${DOCKER_NAMESPACE}:i386
|
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-i386
|
|
||||||
docker push ${DOCKER_NAMESPACE}:mipsel
|
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-mipsel
|
|
||||||
docker push ${DOCKER_NAMESPACE}:mips
|
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-mips
|
|
||||||
docker push ${DOCKER_NAMESPACE}:armhf
|
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-armhf
|
|
||||||
docker push ${DOCKER_NAMESPACE}:arm64
|
|
||||||
docker push ${DOCKER_NAMESPACE}:${CIVERSION}-arm64
|
|
||||||
|
|
||||||
# - run:
|
|
||||||
# name: Create and push release manifest
|
|
||||||
# # We need to enable experimental features for cli in order to use docker manifest
|
|
||||||
# command: |
|
|
||||||
# mkdir -p ~/.docker && echo $'{\n "experimental": "enabled"\n}' >| ~/.docker/config.json
|
|
||||||
# docker login -u $DOCKER_USER -p $DOCKER_PASS
|
|
||||||
# docker manifest create --amend ${DOCKER_NAMESPACE}:${CIVERSION} ${DOCKER_NAMESPACE}:${CIVERSION}-amd64 ${DOCKER_NAMESPACE}:${CIVERSION}-i386 ${DOCKER_NAMESPACE}:${CIVERSION}-mipsel ${DOCKER_NAMESPACE}:${CIVERSION}-mips ${DOCKER_NAMESPACE}:${CIVERSION}-armhf ${DOCKER_NAMESPACE}:${CIVERSION}-arm64
|
|
||||||
# docker manifest push ${DOCKER_NAMESPACE}:${CIVERSION}
|
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
machine: true
|
machine: true
|
||||||
|
|
10
contrib/docker/ci/alpine/Dockerfile
Normal file
10
contrib/docker/ci/alpine/Dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
FROM alpine
|
||||||
|
|
||||||
|
ARG BUILDPLATFORM
|
||||||
|
ENV TARGETPLATFORM=$TARGETPLATFORM
|
||||||
|
|
||||||
|
COPY ${TARGETPLATFORM}/* /usr/bin/
|
||||||
|
|
||||||
|
COPY contrib/docker/alpine/entrypoint.sh /usr/bin/entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/usr/bin/entrypoint.sh" ]
|
9
contrib/docker/ci/scratch/Dockerfile
Normal file
9
contrib/docker/ci/scratch/Dockerfile
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
ENV XDG_RUNTIME_DIR /
|
||||||
|
ENV XDG_CONFIG_DIRS /
|
||||||
|
|
||||||
|
COPY yggdrasil /
|
||||||
|
COPY yggdrasilctl /
|
||||||
|
|
||||||
|
ENTRYPOINT ["/yggdrasil"]
|
Loading…
Add table
Add a link
Reference in a new issue