50 lines
2.0 KiB
Bash
Executable File
50 lines
2.0 KiB
Bash
Executable File
#!/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
|