#!/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