feat: read built timestamp from git
All checks were successful
ci/woodpecker/push/dockerhub Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful

This commit is contained in:
Stephan Schnabel 2025-06-27 12:53:17 +02:00
parent 097ebfaf38
commit df0d831a06
Signed by: stephan.schnabel
SSH key fingerprint: SHA256:99zuzxNGFb5/5P+E/O7ONU2qhUojUe/D8rIPTW+9Xp0
3 changed files with 30 additions and 16 deletions

View file

@ -6,6 +6,10 @@
FROM docker.io/library/bash:5.2.37@sha256:01a15c6f48f6a3c08431cd77e11567823530b18159889dca3b7309b707beef91
SHELL ["/usr/local/bin/bash", "-u", "-e", "-o", "pipefail", "-c"]
# workaround until we have a env `CI_COMMIT_TIMESTAMP`
# see https://github.com/woodpecker-ci/woodpecker/issues/5245
RUN apk add git~=2 --no-cache
RUN ARCH=$(uname -m) && \
[[ $ARCH == x86_64 ]] && export SUFFIX=amd64; \
[[ $ARCH == aarch64 ]] && export SUFFIX=arm64; \

View file

@ -73,7 +73,7 @@ docker run --rm --user=$(id -u) --volume=$HOME:$HOME:ro --workdir=$PWD --env=PLU
## Settings
| Settings Name | Environment | Default | Description |
| ------------------- | ------------------------ | ---------------- | ----------------------------------------------------------------------------------------------- |
| ------------------- | ------------------------ | --------------------------- | -------------------------------------------------- |
| `addr` | PLUGIN_ADDR | `$BUILDKIT_HOST` | Buildkit host to use. |
| `frontend` | PLUGIN_FRONTEND | `dockerfile.v0` | Only dockerfile frontend supported right now |
| `context` | PLUGIN_CONTEXT | `$PWD` | Context directory to use for build |
@ -81,7 +81,7 @@ docker run --rm --user=$(id -u) --volume=$HOME:$HOME:ro --workdir=$PWD --env=PLU
| `target` | PLUGIN_TARGET | `none` | Dockerfile target |
| `build-args` | PLUGIN_BUILD_ARGS | `none` | Build args to pass to build |
| `platform` | PLUGIN_PLATFORM | `none` | Target platform for container image. |
| `source-epoch-date` | PLUGIN_SOURCE_DATE_EPOCH | `0` | Timestamp to use for reproduceable builds. |
| `source-epoch-date` | PLUGIN_SOURCE_DATE_EPOCH | `git log -1 --format="%at"` | Timestamp to use for reproduceable builds. |
| `name` | PLUGIN_NAME | `none` | Images names where to push the image. |
| `annotation` | PLUGIN_ANNOTATION | `none` | Annotations (also known as labels) to add to image |
| `push` | PLUGIN_PUSH | `true` | Push images if output names are set. |

View file

@ -1,6 +1,16 @@
#!/usr/bin/env bash
set -eu;
##
## workaround until we have a env `CI_COMMIT_TIMESTAMP`
## see https://github.com/woodpecker-ci/woodpecker/issues/5245
##
if [[ -z "${CI_COMMIT_TIMESTAMP:-}" ]]; then
git config --global --add safe.directory "$PWD"
CI_COMMIT_TIMESTAMP=$(git log -1 --format="%at")
fi
##
## check input
##
@ -27,7 +37,7 @@ if [[ "$BUILDCTL_FRONTEND" != "dockerfile.v0" ]]; then
exit 1
fi
SOURCE_DATE_EPOCH=${PLUGIN_SOURCE_DATE_EPOCH:-0}
SOURCE_DATE_EPOCH=${PLUGIN_SOURCE_DATE_EPOCH:-${CI_COMMIT_TIMESTAMP:-0}}
if [[ -n "${PLUGIN_AUTH:-}" ]]; then
echo "$PLUGIN_AUTH" | jq -r 'to_entries|map({(.key):{"auth":(.value.username+":"+.value.password)|@base64}})|add|{"auths":.}' > "$HOME/.docker/config.json"