Update .gitea/workflows/build-caddy.yml
Check, build and release Caddy / build-caddy (push) Successful in 1m26s
Check, build and release Caddy / build-caddy (push) Successful in 1m26s
This commit is contained in:
@@ -27,12 +27,14 @@ jobs:
|
||||
- name: Vérifier le runner
|
||||
shell: bash
|
||||
run: |
|
||||
echo "Runner : $GITHUB_ACTIONS"
|
||||
echo "Dépôt : $GITHUB_REPOSITORY"
|
||||
echo "Commit : $GITHUB_SHA"
|
||||
set -euo pipefail
|
||||
|
||||
for command in curl jq docker sha256sum; do
|
||||
command -v "$command" || {
|
||||
echo "Dépôt : $GITHUB_REPOSITORY"
|
||||
echo "Commit : $GITHUB_SHA"
|
||||
echo "Dossier : $PWD"
|
||||
|
||||
for command in curl jq docker sha256sum tar; do
|
||||
command -v "$command" >/dev/null || {
|
||||
echo "Missing required command: $command"
|
||||
exit 1
|
||||
}
|
||||
@@ -48,12 +50,29 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "${GITEA_TOKEN:-}" ]; then
|
||||
echo "Le secret GITEA_TOKEN est absent"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GITEA_URL="https://git.jst.ovh"
|
||||
API_URL="${GITEA_URL}/api/v1"
|
||||
|
||||
REPOSITORY="$GITHUB_REPOSITORY"
|
||||
TARGET_COMMIT="$GITHUB_SHA"
|
||||
|
||||
BUILD_CONTAINER=""
|
||||
|
||||
cleanup_builder() {
|
||||
if [ -n "${BUILD_CONTAINER:-}" ]; then
|
||||
echo "Suppression du conteneur de build"
|
||||
docker rm --force "$BUILD_CONTAINER" \
|
||||
>/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup_builder EXIT
|
||||
|
||||
LATEST_VERSION="$(curl -fsSL \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
https://api.github.com/repos/caddyserver/caddy/releases/latest \
|
||||
@@ -83,21 +102,65 @@ jobs:
|
||||
;;
|
||||
esac
|
||||
|
||||
rm -rf dist
|
||||
rm -f caddy-*-linux-amd64.tar.gz
|
||||
rm -f caddy-*-linux-amd64.tar.gz.sha256
|
||||
rm -rf ./dist
|
||||
rm -f ./caddy-*-linux-amd64.tar.gz
|
||||
rm -f ./caddy-*-linux-amd64.tar.gz.sha256
|
||||
|
||||
echo "Pulling Caddy builder image"
|
||||
docker pull caddy:2-builder-alpine
|
||||
|
||||
docker run --rm \
|
||||
-v "$PWD:/workspace" \
|
||||
-w /workspace \
|
||||
echo "Creating Caddy builder container"
|
||||
|
||||
BUILD_CONTAINER="$(docker create \
|
||||
--env "CADDY_VERSION=${LATEST_VERSION}" \
|
||||
--workdir /workspace \
|
||||
caddy:2-builder-alpine \
|
||||
sh -ec "
|
||||
sh -ec '
|
||||
apk add --no-cache bash tar
|
||||
|
||||
echo "Workspace content:"
|
||||
ls -la /workspace
|
||||
|
||||
chmod +x ./build.sh
|
||||
./build.sh '${LATEST_VERSION}'
|
||||
"
|
||||
./build.sh "$CADDY_VERSION"
|
||||
')"
|
||||
|
||||
echo "Builder container: ${BUILD_CONTAINER}"
|
||||
|
||||
echo "Copying repository into builder container"
|
||||
|
||||
tar -C "$PWD" -cf - . \
|
||||
| docker cp - "$BUILD_CONTAINER:/workspace"
|
||||
|
||||
echo "Starting Caddy build"
|
||||
|
||||
docker start --attach "$BUILD_CONTAINER"
|
||||
|
||||
BUILD_EXIT_CODE="$(docker inspect \
|
||||
--format '{{.State.ExitCode}}' \
|
||||
"$BUILD_CONTAINER")"
|
||||
|
||||
if [ "$BUILD_EXIT_CODE" -ne 0 ]; then
|
||||
echo "Caddy build failed with exit code ${BUILD_EXIT_CODE}"
|
||||
exit "$BUILD_EXIT_CODE"
|
||||
fi
|
||||
|
||||
ASSET_NAME="caddy-${LATEST_VERSION}-linux-amd64.tar.gz"
|
||||
|
||||
echo "Copying build results"
|
||||
|
||||
docker cp \
|
||||
"$BUILD_CONTAINER:/workspace/dist" \
|
||||
./dist
|
||||
|
||||
docker cp \
|
||||
"$BUILD_CONTAINER:/workspace/${ASSET_NAME}" \
|
||||
"./${ASSET_NAME}"
|
||||
|
||||
docker rm "$BUILD_CONTAINER"
|
||||
BUILD_CONTAINER=""
|
||||
|
||||
echo "Validating Caddy binary"
|
||||
|
||||
./dist/caddy version
|
||||
|
||||
@@ -107,17 +170,23 @@ jobs:
|
||||
ASSET="$(find . \
|
||||
-maxdepth 1 \
|
||||
-type f \
|
||||
-name "caddy-${LATEST_VERSION}-linux-amd64.tar.gz" \
|
||||
-name "$ASSET_NAME" \
|
||||
-print \
|
||||
-quit)"
|
||||
|
||||
test -n "$ASSET"
|
||||
if [ -z "$ASSET" ]; then
|
||||
echo "Caddy archive was not generated"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ASSET="${ASSET#./}"
|
||||
CHECKSUM="${ASSET}.sha256"
|
||||
|
||||
sha256sum "$ASSET" > "$CHECKSUM"
|
||||
|
||||
echo "Generated files:"
|
||||
ls -lh "$ASSET" "$CHECKSUM"
|
||||
|
||||
MODULES="$(sed \
|
||||
'/^[[:space:]]*#/d;
|
||||
/^[[:space:]]*$/d;
|
||||
@@ -150,6 +219,8 @@ jobs:
|
||||
}' \
|
||||
> /tmp/create-release.json
|
||||
|
||||
echo "Creating Gitea release"
|
||||
|
||||
curl -fsS \
|
||||
-X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
@@ -162,13 +233,17 @@ jobs:
|
||||
RELEASE_ID="$(jq -er '.id' /tmp/created-release.json)"
|
||||
RELEASE_URL="$(jq -er '.html_url' /tmp/created-release.json)"
|
||||
|
||||
echo "Uploading Caddy archive"
|
||||
|
||||
curl -fsS \
|
||||
-X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Accept: application/json" \
|
||||
-F "attachment=@${ASSET};type=application/gzip" \
|
||||
"${API_URL}/repos/${REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename "$ASSET")" \
|
||||
> /tmp/upload-asset.json
|
||||
-o /tmp/upload-asset.json
|
||||
|
||||
echo "Uploading checksum"
|
||||
|
||||
curl -fsS \
|
||||
-X POST \
|
||||
@@ -176,6 +251,6 @@ jobs:
|
||||
-H "Accept: application/json" \
|
||||
-F "attachment=@${CHECKSUM};type=text/plain" \
|
||||
"${API_URL}/repos/${REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename "$CHECKSUM")" \
|
||||
> /tmp/upload-checksum.json
|
||||
-o /tmp/upload-checksum.json
|
||||
|
||||
echo "Release published: ${RELEASE_URL}"
|
||||
Reference in New Issue
Block a user