updated build
Some checks failed
ci/woodpecker/push/compliance-and-tests Pipeline is pending
ci/woodpecker/push/release-version Pipeline is pending
ci/woodpecker/tag/compliance-and-tests Pipeline was successful
ci/woodpecker/tag/release-version Pipeline failed

This commit is contained in:
gapodo 2022-12-05 01:36:52 +01:00
parent 3c68e3b642
commit 7599887d44
3 changed files with 45 additions and 23 deletions

View file

@ -66,21 +66,23 @@ pipeline:
secrets: secrets:
- goproxy_override - goproxy_override
prep-multiarch-binaries: # prep-multiarch-binaries:
image: *golang_image # image reuse to reduce pull times, go not required # image: *golang_image # image reuse to reduce pull times, go not required
pull: true # pull: true
environment: # environment:
fallbackversion: main # the fallback version used by make # defaulttagname: main # the fallback version used by make
commands: # commands:
- mkdir docker/bin # - mkdir docker/bin
- ./docker/map-binaries.sh ./dist/binaries forgejo ${CI_COMMIT_TAG##v} # - ./docker/map-binaries.sh ./dist/binaries forgejo ${CI_COMMIT_TAG##v}
- ./docker/map-binaries.sh ./dist/contrib environment-to-ini ${CI_COMMIT_TAG##v} # - ./docker/map-binaries.sh ./dist/contrib environment-to-ini ${CI_COMMIT_TAG##v}
when: # when:
event: tag # event: tag
build-docker: build-docker:
image: *buildx_plugin_image image: *buildx_plugin_image
pull: true pull: true
environment:
defaulttagname: main
settings: settings:
dockerfile: Dockerfile.ci dockerfile: Dockerfile.ci
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
@ -88,6 +90,9 @@ pipeline:
from_secret: domain from_secret: domain
tag: ${CI_COMMIT_TAG##v} tag: ${CI_COMMIT_TAG##v}
repo: ${CI_REPO_LINK##https://} repo: ${CI_REPO_LINK##https://}
build_args_from_env:
- CI_COMMIT_TAG
- DEFAULTTAGNAME
password: password:
from_secret: releaseteamtoken from_secret: releaseteamtoken
username: username:
@ -116,7 +121,9 @@ pipeline:
- REMOTE=$(echo $CI_REPO_LINK | sed -e 's|.*://||' -e 's|/.*||') - REMOTE=$(echo $CI_REPO_LINK | sed -e 's|.*://||' -e 's|/.*||')
- GITEA_SERVER_URL=$CI_REPO_LINK GITEA_SERVER_TOKEN=$RELEASETEAMTOKEN tea login add --name $RELEASETEAMUSER --url $REMOTE - GITEA_SERVER_URL=$CI_REPO_LINK GITEA_SERVER_TOKEN=$RELEASETEAMTOKEN tea login add --name $RELEASETEAMUSER --url $REMOTE
- ASSETS=$(ls dist/release/* | sed -e 's/^/-a /') - ASSETS=$(ls dist/release/* | sed -e 's/^/-a /')
- tea release create $ASSETS --tag $CI_COMMIT_TAG --title $CI_COMMIT_TAG - echo "$${CI_COMMIT_TAG##v}" | grep -qi '-rc' && export RELEASETYPE="--prerelease"
- echo "$${CI_COMMIT_TAG##v}" | grep -qi '-dev' && export RELEASETYPE="--draft"
- tea release create $ASSETS --tag $CI_COMMIT_TAG --title $CI_COMMIT_TAG $${RELEASETYPE}
when: when:
event: tag event: tag
secrets: secrets:

View file

@ -12,14 +12,24 @@ RUN addgroup \
git && \ git && \
echo "git:*" | chpasswd -e echo "git:*" | chpasswd -e
RUN apk --no-cache add xz upx bash
ENV USER git ENV USER git
COPY docker/root /root-prep ARG DEFAULTTAGNAME
COPY docker/bin /bin-prep ARG CI_COMMIT_TAG
ENV DEFAULTTAGNAME=${DEFAULTTAGNAME:-main}
RUN chmod 755 /root-prep/usr/bin/entrypoint /root-prep/etc/s6/gitea/* /root-prep/etc/s6/openssh/* /root-prep/etc/s6/.s6-svscan/* && \ COPY docker /docker
find /bin-prep -name 'forgejo' -type f | xargs -I{} /bin/chmod 0755 {} && \ COPY dist /dist
find /bin-prep -name 'environment-to-ini' -type f | xargs -I{} /bin/chmod 0755 {}
RUN mkdir /docker/bin && \
/docker/map-binaries.sh /dist/binaries "true" forgejo ${CI_COMMIT_TAG##v} && \
/docker/map-binaries.sh /dist/contrib "false" environment-to-ini ${CI_COMMIT_TAG##v}
RUN chmod 755 /docker/root/usr/bin/entrypoint /docker/root/etc/s6/gitea/* /docker/root/etc/s6/openssh/* /docker/root/etc/s6/.s6-svscan/* && \
find /docker/bin -name 'forgejo' -type f | xargs -I{} /bin/chmod 0755 {} && \
find /docker/bin -name 'environment-to-ini' -type f | xargs -I{} /bin/chmod 0755 {}
FROM alpine:3.17.0 FROM alpine:3.17.0
LABEL maintainer="contact@forgejo.org" LABEL maintainer="contact@forgejo.org"
@ -64,6 +74,6 @@ VOLUME ["/data"]
ENTRYPOINT ["/usr/bin/entrypoint"] ENTRYPOINT ["/usr/bin/entrypoint"]
CMD ["/bin/s6-svscan", "/etc/s6"] CMD ["/bin/s6-svscan", "/etc/s6"]
COPY --from=prep /root-prep / COPY --from=prep /docker/root /
COPY --from=prep /bin-prep/$TARGETPLATFORM/forgejo /app/gitea/gitea COPY --from=prep /docker/bin/$TARGETPLATFORM/forgejo /app/gitea/gitea
COPY --from=prep /bin-prep/$TARGETPLATFORM/environment-to-ini /usr/local/bin/environment-to-ini COPY --from=prep /docker/bin/$TARGETPLATFORM/environment-to-ini /usr/local/bin/environment-to-ini

View file

@ -7,11 +7,12 @@ fi
BINARYLOOKUPPATH="${1}" BINARYLOOKUPPATH="${1}"
FILEBASENAME="${2}" FILEBASENAME="${2}"
COMPRESS="${3}"
if [[ ${#@} -gt 2 ]] && ! [[ "${3}" == "" ]]; then if [[ ${#@} -gt 3 ]] && ! [[ "${4}" == "" ]]; then
FILEVERSION="${3}" FILEVERSION="${4}"
else else
FILEVERSION="$FALLBACKVERSION" FILEVERSION="$DEFAULTTAGNAME"
fi fi
FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}" FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}"
@ -36,6 +37,10 @@ function map(){
mkdir -p "${DOCKERDIR}/bin/$platform" mkdir -p "${DOCKERDIR}/bin/$platform"
echo "Mapped ${file} to $platform, copying" echo "Mapped ${file} to $platform, copying"
cp "${file}" "${DOCKERDIR}/bin/$platform/${FILEBASENAME}" cp "${file}" "${DOCKERDIR}/bin/$platform/${FILEBASENAME}"
if [[ "$COMPRESS" == "true" ]]; then
echo "Compressing active, compressing ${DOCKERDIR}/bin/$platform/${FILEBASENAME}"
upx --best --lzma -q "${DOCKERDIR}/bin/$platform/${FILEBASENAME}"
fi
} }
cd "$WS_BASE/${BINARYLOOKUPPATH}" cd "$WS_BASE/${BINARYLOOKUPPATH}"