Split workflow into steps
This commit is contained in:
@@ -53,22 +53,53 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: Dockerfile
|
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:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: Run build and push script
|
- name: Build the image
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
|
||||||
INPUT_GIT_SERVER_URL: ${{ inputs.git_server_url }}
|
|
||||||
INPUT_GIT_REPOSITORY: ${{ inputs.git_repository }}
|
|
||||||
INPUT_GIT_SHA: ${{ inputs.git_sha }}
|
|
||||||
INPUT_GIT_USER: ${{ inputs.git_user }}
|
|
||||||
INPUT_GIT_TOKEN: ${{ inputs.git_token }}
|
|
||||||
INPUT_REGISTRY: ${{ inputs.registry }}
|
|
||||||
INPUT_REGISTRY_USER: ${{ inputs.registry_user }}
|
|
||||||
INPUT_REGISTRY_TOKEN: ${{ inputs.registry_token }}
|
|
||||||
INPUT_IMAGE_NAME: ${{ inputs.image_name }}
|
|
||||||
INPUT_IMAGE_TAG: ${{ inputs.image_tag }}
|
|
||||||
INPUT_CONTEXT: ${{ inputs.context }}
|
|
||||||
INPUT_DOCKERFILE: ${{ inputs.dockerfile }}
|
|
||||||
run: ${{ gitea.action_path }}/build.sh
|
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 }}
|
||||||
|
INPUT_GIT_SHA: ${{ inputs.git_sha }}
|
||||||
|
INPUT_GIT_USER: ${{ inputs.git_user }}
|
||||||
|
INPUT_GIT_TOKEN: ${{ inputs.git_token }}
|
||||||
|
INPUT_REGISTRY: ${{ inputs.registry }}
|
||||||
|
INPUT_REGISTRY_USER: ${{ inputs.registry_user }}
|
||||||
|
INPUT_REGISTRY_TOKEN: ${{ inputs.registry_token }}
|
||||||
|
INPUT_IMAGE_NAME: ${{ inputs.image_name }}
|
||||||
|
INPUT_IMAGE_TAG: ${{ inputs.image_tag }}
|
||||||
|
INPUT_CONTEXT: ${{ inputs.context }}
|
||||||
|
INPUT_DOCKERFILE: ${{ inputs.dockerfile }}
|
||||||
|
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