init
This commit is contained in:
63
action.yml
Normal file
63
action.yml
Normal file
@@ -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
|
||||||
27
build.sh
Normal file
27
build.sh
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user