#!/bin/zsh set -e branch=${PLUGIN_BRANCH:-"pages"} token_env=${PLUGIN_TOKEN_ENV} output=${PLUGIN_OUTPUT} name=${PLUGIN_NAME} email=${PLUGIN_EMAIL} # Allow passing a different push SSH URL clone_url=$CI_REPO_CLONE_SSH_URL if [[ -n "$PLUGIN_SSH_URL" ]]; then clone_url=${PLUGIN_SSH_URL} fi if [[ -z "$token_env" || -z "$branch" || -z "$name" || -z "$email" || -z "$clone_url" ]]; then echo "Invalid configuration: Token environment variable name, branch name empty, name, clone URL, or email" echo "Token env: $token_env" echo "branch: $branch" echo "Name: $name" echo "Email: $email" echo "Clone URL: $clone_url" 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 "$clone_url" -f "$branch"