From 1025ce4f8743b1b291a574426be61401cc0f03ea Mon Sep 17 00:00:00 2001 From: SG Date: Mon, 30 Mar 2026 21:45:32 +0300 Subject: [PATCH] updates --- docker-build-push/action.yml | 63 ++++++++++++++++++++++++++++++++++++ docker-build-push/build.sh | 27 ++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 docker-build-push/action.yml create mode 100644 docker-build-push/build.sh diff --git a/docker-build-push/action.yml b/docker-build-push/action.yml new file mode 100644 index 0000000..bc06cd3 --- /dev/null +++ b/docker-build-push/action.yml @@ -0,0 +1,63 @@ +name: docker-build-push +description: Clone, build, and optionally push a Docker image + +inputs: + git_base_url: + required: true + git_repository: + required: true + git_ref: + required: true + git_sha: + required: true + git_user: + required: true + git_token: + required: true + + image_name: + required: true + image_tag: + required: true + + push: + required: false + default: "false" + registry: + required: false + default: "" + registry_user: + required: false + default: "" + registry_token: + required: false + default: "" + + context: + required: false + default: "." + dockerfile: + required: false + default: "Dockerfile" + +runs: + using: "composite" + steps: + - name: Run build script + shell: bash + env: + INPUT_GIT_BASE_URL: ${{ inputs.git_base_url }} + INPUT_GIT_REPOSITORY: ${{ inputs.git_repository }} + INPUT_GIT_REF: ${{ inputs.git_ref }} + INPUT_GIT_SHA: ${{ inputs.git_sha }} + INPUT_GIT_USER: ${{ inputs.git_user }} + INPUT_GIT_TOKEN: ${{ inputs.git_token }} + INPUT_IMAGE_NAME: ${{ inputs.image_name }} + INPUT_IMAGE_TAG: ${{ inputs.image_tag }} + INPUT_PUSH: ${{ inputs.push }} + INPUT_REGISTRY: ${{ inputs.registry }} + INPUT_REGISTRY_USER: ${{ inputs.registry_user }} + INPUT_REGISTRY_TOKEN: ${{ inputs.registry_token }} + INPUT_CONTEXT: ${{ inputs.context }} + INPUT_DOCKERFILE: ${{ inputs.dockerfile }} + run: ${{ gitea.action_path }}/build.sh diff --git a/docker-build-push/build.sh b/docker-build-push/build.sh new file mode 100644 index 0000000..673bbd1 --- /dev/null +++ b/docker-build-push/build.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -euo pipefail + +workdir="$PWD/repo" + +rm -rf "$workdir" +mkdir -p "$workdir" + +git init "$workdir" +cd "$workdir" + +git remote add origin "https://${INPUT_GIT_USER}:${INPUT_GIT_TOKEN}@${INPUT_GIT_BASE_URL}/${INPUT_GIT_REPOSITORY}.git" +git fetch --depth=1 origin "${INPUT_GIT_SHA}" +git checkout --detach FETCH_HEAD + +full_image="${INPUT_IMAGE_NAME}:${INPUT_IMAGE_TAG}" + +docker build \ + -f "${INPUT_DOCKERFILE}" \ + -t "${full_image}" \ + "${INPUT_CONTEXT}" + +if [ "${INPUT_PUSH}" = "true" ]; then + echo "${INPUT_REGISTRY_TOKEN}" | docker login "${INPUT_REGISTRY}" -u "${INPUT_REGISTRY_USER}" --password-stdin + docker tag "${full_image}" "${INPUT_REGISTRY}/${full_image}" + docker push "${INPUT_REGISTRY}/${full_image}" +fi