akaunting/.build/ci-helper

50 lines
2.0 KiB
Plaintext
Raw Normal View History

2024-09-22 23:11:43 +05:00
#!/bin/bash
cd "$(dirname "${BASH_SOURCE[0]}")"
if [ "$CI" = "true" ]; then
echo "Running in CI environment, skipping variable fetching..."
else
# Remove 'git@gitlab.com:' and '.git' and Extract namespace and project name
GIT_REMOTE_URL=$(git config --get remote.origin.url)
GITLAB_PATH=$(echo "$GIT_REMOTE_URL" | sed -e 's/^git@git.shihaam.dev://' -e 's/\.git$//')
CI_PROJECT_NAMESPACE=$(echo "$GITLAB_PATH" | awk -F/ '{OFS="/"; $NF=""; print $0}' | sed 's:/$::')
CI_PROJECT_NAME=$(basename "$GITLAB_PATH")
# Set the registry image path
CI_REGISTRY_IMAGE="git.shihaam.dev/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME"
# Other variables
CI_COMMIT_SHORT_SHA=$(git rev-parse HEAD | cut -c1-8)
CI_COMMIT_SHA=$(git rev-parse HEAD)
CI_COMMIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
fi
CI_COMMIT_BRANCH=$(echo $CI_COMMIT_BRANCH | sed 's/\//-/g') # sanitize branch name
export CI_COMMIT_SHORT_SHA
export CI_COMMIT_SHA
export CI_COMMIT_BRANCH
export CI_REGISTRY_IMAGE
echo "Commit hash: $CI_COMMIT_SHA"
echo "Branch: $CI_COMMIT_BRANCH"
echo "Registry image: $CI_REGISTRY_IMAGE"
if [ "$1" = "push" ]; then
docker compose push
if [[ "$CI_COMMIT_BRANCH" == "master" || "$CI_COMMIT_BRANCH" == "main" ]]; then
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:latest
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:latest
docker push $CI_REGISTRY_IMAGE/fpm:latest
docker push $CI_REGISTRY_IMAGE/nginx:latest
elif [[ "$CI_COMMIT_BRANCH" == "staging" ]]; then
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:staging
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:staging
docker push $CI_REGISTRY_IMAGE/fpm:staging
docker push $CI_REGISTRY_IMAGE/nginx:staging
fi
else
docker compose $@
fi