feat: Add a variant using an SSH deploy key
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
53f5a6952b
commit
7abdf4b03c
6
Dockerfile.ssh
Normal file
6
Dockerfile.ssh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FROM alpine:3.19
|
||||||
|
COPY --chmod=555 entrypoint-ssh.sh /bin/entrypoint.sh
|
||||||
|
COPY --chmod=600 ssh_config /root/.ssh/config
|
||||||
|
RUN apk add --no-cache git openssh zsh
|
||||||
|
|
||||||
|
ENTRYPOINT ["zsh", "/bin/entrypoint.sh"]
|
36
entrypoint-ssh.sh
Normal file
36
entrypoint-ssh.sh
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
branch=${PLUGIN_BRANCH:-"pages"}
|
||||||
|
token_env=${PLUGIN_TOKEN_ENV}
|
||||||
|
output=${PLUGIN_OUTPUT}
|
||||||
|
name=${PLUGIN_NAME}
|
||||||
|
email=${PLUGIN_EMAIL}
|
||||||
|
if [[ -z "$token_env" || -z "$branch" || -z "$name" || -z "$email" ]]; then
|
||||||
|
echo "Invalid configuration: Token environment variable name, branch name empty, name, or email"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setup the SSH directory
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
chown root:root ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
|
||||||
|
# Setup the SSH key
|
||||||
|
print -rl -- ${(P)token_env} > ~/.ssh/id_rsa
|
||||||
|
chown root:root ~/.ssh/id_rsa
|
||||||
|
chmod 600 ~/.ssh/id_rsa
|
||||||
|
|
||||||
|
# Setup git
|
||||||
|
git config --global user.email "$email"
|
||||||
|
git config --global user.name "$name"
|
||||||
|
git config --global --add safe.directory "$CI_WORKSPACE/$CI_REPO_OWNER/$CI_REPO_NAME/$output"
|
||||||
|
|
||||||
|
# Init a new repository in the output directory and add all files
|
||||||
|
git init -b "$branch" "$output"
|
||||||
|
cd "$output"
|
||||||
|
git add --all
|
||||||
|
git commit -m "Deploy new version $CI_COMMIT_SHA"
|
||||||
|
|
||||||
|
# Push the repository
|
||||||
|
git push -u "$CI_REPO_CLONE_SSH_URL" -f "$branch"
|
3
ssh_config
Normal file
3
ssh_config
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Host *
|
||||||
|
StrictHostKeyChecking no
|
||||||
|
UserKnownHostsFile=/dev/null
|
Loading…
Reference in New Issue
Block a user