Split workflow into steps
This commit is contained in:
@@ -53,11 +53,37 @@ inputs:
|
||||
required: false
|
||||
default: Dockerfile
|
||||
|
||||
remote_docker_ssh_host:
|
||||
description: Remote Docker host to pull and run the image on
|
||||
required: false
|
||||
|
||||
remote_docker_ssh_port:
|
||||
description: SSH port on the remote Docker host
|
||||
required: false
|
||||
default: "22"
|
||||
|
||||
remote_docker_ssh_username:
|
||||
description: Remote Docker host SSH user
|
||||
required: false
|
||||
|
||||
remote_docker_ssh_key:
|
||||
decription: Private SSH key to update the image on remote Docker host
|
||||
required: false
|
||||
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Run build and push script
|
||||
- name: Build the image
|
||||
shell: bash
|
||||
run: ${{ gitea.action_path }}/build.sh
|
||||
- name: Push to registry
|
||||
shell: bash
|
||||
run: ${{ gitea.action_path }}/push.sh
|
||||
- name: Update remote Docker host
|
||||
shell: bash
|
||||
run: ${{ gitea.action_path }}/update.sh
|
||||
|
||||
env:
|
||||
INPUT_GIT_SERVER_URL: ${{ inputs.git_server_url }}
|
||||
INPUT_GIT_REPOSITORY: ${{ inputs.git_repository }}
|
||||
@@ -71,4 +97,9 @@ runs:
|
||||
INPUT_IMAGE_TAG: ${{ inputs.image_tag }}
|
||||
INPUT_CONTEXT: ${{ inputs.context }}
|
||||
INPUT_DOCKERFILE: ${{ inputs.dockerfile }}
|
||||
run: ${{ gitea.action_path }}/build.sh
|
||||
INPUT_REMOTE_DOCKER_SSH_HOST: ${{ inputs.remote_docker_ssh_host }}
|
||||
INPUT_REMOTE_DOCKER_SSH_PORT: ${{ inputs.remote_docker_ssh_port }}
|
||||
INPUT_REMOTE_DOCKER_SSH_USERNAME: ${{ inputs.remote_docker_ssh_username }}
|
||||
INPUT_REMOTE_DOCKER_SSH_KEY: ${{ inputs.remote_docker_ssh_key }}
|
||||
|
||||
|
||||
|
||||
53
docker-build-push/push.sh
Executable file
53
docker-build-push/push.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
: "${INPUT_GIT_SERVER_URL:?missing INPUT_GIT_SERVER_URL}"
|
||||
: "${INPUT_GIT_REPOSITORY:?missing INPUT_GIT_REPOSITORY}"
|
||||
: "${INPUT_GIT_SHA:?missing INPUT_GIT_SHA}"
|
||||
: "${INPUT_GIT_USER:?missing INPUT_GIT_USER}"
|
||||
: "${INPUT_GIT_TOKEN:?missing INPUT_GIT_TOKEN}"
|
||||
: "${INPUT_REGISTRY:?missing INPUT_REGISTRY}"
|
||||
: "${INPUT_REGISTRY_USER:?missing INPUT_REGISTRY_USER}"
|
||||
: "${INPUT_REGISTRY_TOKEN:?missing INPUT_REGISTRY_TOKEN}"
|
||||
: "${INPUT_IMAGE_NAME:?missing INPUT_IMAGE_NAME}"
|
||||
: "${INPUT_IMAGE_TAG:?missing INPUT_IMAGE_TAG}"
|
||||
: "${INPUT_CONTEXT:?missing INPUT_CONTEXT}"
|
||||
: "${INPUT_DOCKERFILE:?missing INPUT_DOCKERFILE}"
|
||||
|
||||
case "${INPUT_IMAGE_NAME}" in
|
||||
*/*) ;;
|
||||
*)
|
||||
echo "INPUT_IMAGE_NAME must include owner/name, for example: example/testapp" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${INPUT_IMAGE_NAME}" in
|
||||
*.*/*|*:*/*)
|
||||
echo "INPUT_IMAGE_NAME must not include a registry hostname; use INPUT_REGISTRY for that" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
workdir="${PWD}/repo"
|
||||
local_image="localbuild:${INPUT_IMAGE_TAG}"
|
||||
remote_image="${INPUT_REGISTRY}/${INPUT_IMAGE_NAME}:${INPUT_IMAGE_TAG}"
|
||||
|
||||
#rm -rf "${workdir}"
|
||||
#mkdir -p "${workdir}"
|
||||
#
|
||||
#git init "${workdir}"
|
||||
#cd "${workdir}"
|
||||
#git remote add origin "${INPUT_GIT_SERVER_URL}/${INPUT_GIT_REPOSITORY}.git"
|
||||
#git config http.extraHeader "Authorization: Basic $(printf '%s:%s' "${INPUT_GIT_USER}" "${INPUT_GIT_TOKEN}" | base64 -w0)"
|
||||
#git fetch --depth=1 origin "${INPUT_GIT_SHA}"
|
||||
#git checkout --detach FETCH_HEAD
|
||||
|
||||
#docker build \
|
||||
# -f "${INPUT_DOCKERFILE}" \
|
||||
# -t "${local_image}" \
|
||||
# "${INPUT_CONTEXT}"
|
||||
|
||||
echo "${INPUT_REGISTRY_TOKEN}" | docker login "${INPUT_REGISTRY}" -u "${INPUT_REGISTRY_USER}" --password-stdin
|
||||
docker tag "${local_image}" "${remote_image}"
|
||||
docker push "${remote_image}"
|
||||
23
docker-build-push/update.sh
Executable file
23
docker-build-push/update.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
: "${INPUT_GIT_SERVER_URL:?missing INPUT_GIT_SERVER_URL}"
|
||||
: "${INPUT_GIT_REPOSITORY:?missing INPUT_GIT_REPOSITORY}"
|
||||
: "${INPUT_GIT_SHA:?missing INPUT_GIT_SHA}"
|
||||
: "${INPUT_GIT_USER:?missing INPUT_GIT_USER}"
|
||||
: "${INPUT_GIT_TOKEN:?missing INPUT_GIT_TOKEN}"
|
||||
: "${INPUT_REGISTRY:?missing INPUT_REGISTRY}"
|
||||
: "${INPUT_REGISTRY_USER:?missing INPUT_REGISTRY_USER}"
|
||||
: "${INPUT_REGISTRY_TOKEN:?missing INPUT_REGISTRY_TOKEN}"
|
||||
: "${INPUT_IMAGE_NAME:?missing INPUT_IMAGE_NAME}"
|
||||
: "${INPUT_IMAGE_TAG:?missing INPUT_IMAGE_TAG}"
|
||||
: "${INPUT_CONTEXT:?missing INPUT_CONTEXT}"
|
||||
: "${INPUT_DOCKERFILE:?missing INPUT_DOCKERFILE}"
|
||||
: "${INPUT_REMOTE_DOCKER_SSH_HOST:?missing INPUT_REMOTE_DOCKER_SSH_HOST}"
|
||||
: "${INPUT_REMOTE_DOCKER_SSH_PORT:?missing INPUT_REMOTE_DOCKER_SSH_PORT}"
|
||||
: "${INPUT_REMOTE_DOCKER_SSH_USERNAME:?missing INPUT_REMOTE_DOCKER_SSH_USERNAME}"
|
||||
: "${INPUT_REMOTE_DOCKER_SSH_KEY:?missing INPUT_REMOTE_DOCKER_SSH_KEY}"
|
||||
echo "Dummy Update step, pretend to ssh into remote Docker host" "$INPUT_REMOTE_DOCKER_SSH_USERNAME"@"$INPUT_REMOTE_DOCKER_SSH_HOST":"$DOCKER_REMOTE_SSH_PORT"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user