#!/usr/bin/env bash set -ea if [[ $DEBUG != "" ]]; then set -x fi ## source vars from .env first ## _root_directory_git=$(git rev-parse --show-toplevel) # shellcheck file=/dev/null if [[ -f "$_root_directory_git/.env" ]]; then source "$_root_directory_git/.env" fi _branch_name_git=$(git rev-parse --abbrev-ref HEAD) _commit_sha=$(git rev-parse HEAD) _commit_sha_short=$(git rev-parse --short HEAD) warn() { echo "warning: $*" } error() { echo "error: $*" } info() { echo "info: $*" } if [[ $_branch_name_git == "main" ]] || [[ $_branch_name_git == "HEAD" ]]; then DEPLOY_COMMAND="npx wrangler pages publish ${_root_directory_git}/public --project-name ${CF_PAGES_PROJECT_NAME} --branch ${_branch_name_git} --commit-hash ${_commit_sha} --env production" elif [[ $CI_PIPELINE_SOURCE == "merge_request" ]]; then DEPLOY_COMMAND="npx wrangler pages publish ${_root_directory_git}/public --project-name ${CF_PAGES_PROJECT_NAME} --branch ${_branch_name_git} --commit-hash ${_commit_sha} --env pr-$CI_MERGE_REQUEST_ID" fi if ! git diff-index --quiet HEAD -- && [[ $FF_DIRTY_DEPLOY != "true" ]]; then error Possible dirty working directory, aborting for safety reasons... info To deploy while still dirty, set FF_DIRTY_DEPLOY=true on next invocation. exit 1 fi if [[ ! -d "$_root_directory_git/public" ]]; then bash "$_root_directory_git/bin/build.sh" cp markdown/.well-known public/ -rv fi if [[ $FF_DIRTY_DEPLOY == "true" ]]; then $DEPLOY_COMMAND --commit-dirty else DEFAULT_COMMAND="npx wrangler pages publish ${_root_directory_git}/public --project-name ${CF_PAGES_PROJECT_NAME} --branch main --env production" ${DEPLOY_COMMAND:-$DEFAULT_COMMAND} fi if [[ $_branch_name_git == "main" ]] || [[ $_branch_name_git == "HEAD" ]]; then tar -C public -cvz . -f site-build.tar.gz curl --oauth2-bearer "$SOURCEHUT_PAGES_TOKEN" \ -Fcontent=@site-build.tar.gz \ "https://pages.sr.ht/publish/ajhalili2006.srht.site" fi if [[ $DEBUG != "" ]]; then set +x fi set +a