mirror of
https://github.com/fleetbase/fleetbase.git
synced 2025-12-19 14:18:57 +00:00
69 lines
3.2 KiB
YAML
69 lines
3.2 KiB
YAML
image: docker:stable-git
|
|
|
|
build_image:
|
|
stage: build
|
|
tags:
|
|
- simpledocker
|
|
script:
|
|
- mkdir -p /usr/local/lib/docker/cli-plugins && wget -O /usr/local/lib/docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
|
|
- |-
|
|
if [[ -n "${GITHUB_AUTH_TOKEN}" ]]; then
|
|
echo '{"github-oauth": {"github.com": "'${GITHUB_AUTH_TOKEN}'"}}' > composer-auth.json
|
|
else
|
|
echo '{}' > composer-auth.json
|
|
fi
|
|
- |-
|
|
set -eu
|
|
|
|
docker buildx create --driver docker-container --driver-opt image=moby/buildkit:v0.11.5 --use
|
|
|
|
docker buildx bake -f docker-bake.hcl --print # just print for now
|
|
|
|
deploy:
|
|
stage: deploy
|
|
only:
|
|
- /^deploy\/.*$/
|
|
tags:
|
|
- simpledocker
|
|
script:
|
|
- mkdir -p /usr/local/lib/docker/cli-plugins && wget -O /usr/local/lib/docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64 && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
|
|
- docker buildx create --driver docker-container --driver-opt image=moby/buildkit:v0.11.5 --use
|
|
- 'export VERSION="$(git describe --always --tags)"'
|
|
- 'export STACK="$(basename $CI_COMMIT_REF_NAME)"'
|
|
- |-
|
|
if [[ -n "${GITHUB_AUTH_TOKEN}" ]]; then
|
|
echo '{"github-oauth": {"github.com": "'${GITHUB_AUTH_TOKEN}'"}}' > composer-auth.json
|
|
else
|
|
echo '{}' > composer-auth.json
|
|
fi
|
|
- |-
|
|
set -e
|
|
set -u
|
|
|
|
wget https://github.com/springload/ecs-tool/releases/download/1.9.6/ecs-tool_1.9.6_linux_amd64.tar.gz -O - | tar -xzvf - ecs-tool
|
|
export REGISTRY=$(./ecs-tool ecr-endpoint)/${PROJECT}-${STACK}
|
|
eval $(./ecs-tool ecr-login)
|
|
|
|
docker buildx bake -f docker-bake.hcl --push
|
|
|
|
# run deploy.sh script before deployments
|
|
env "ECS_RUN.SERVICE=app" "ECS_RUN.LAUNCH_TYPE=FARGATE" ./ecs-tool run -l "ecs-tool" --debug --image_tag "{container_name}-${VERSION}" --cluster ${PROJECT}-${STACK} --task_definition ${PROJECT}-${STACK}-app --container_name app ./deploy.sh
|
|
./ecs-tool deploy --image_tag "{container_name}-${VERSION}" --cluster ${PROJECT}-${STACK} -s app -s scheduler -s events
|
|
|
|
# deploy frontend
|
|
# get parameters
|
|
- |-
|
|
wget -O- https://github.com/springload/ssm-parent/releases/download/1.8.0/ssm-parent_1.8.0_linux_amd64.tar.gz | tar xvzf - ssm-parent
|
|
|
|
./ssm-parent -n /actions/${PROJECT}/${STACK}/configuration dotenv /tmp/dotenv.file
|
|
# remove double quotes and pipe into the env
|
|
# that's because Docker doesn't like them
|
|
sed -i -e 's/"//g' /tmp/dotenv.file
|
|
|
|
# build the builder
|
|
- docker buildx build -t frontend-${STACK}-${VERSION} --load --target builder -f console/Dockerfile .
|
|
- docker run -i --rm --env-file /tmp/dotenv.file -v "$(pwd)/console_dist:/app/dist" frontend-${STACK}-${VERSION} pnpm build --environment production
|
|
- |-
|
|
DEPLOY_BUCKET=${PROJECT}-${STACK}
|
|
wget -O- https://github.com/bep/s3deploy/releases/download/v2.11.0/s3deploy_2.11.0_linux-amd64.tar.gz | tar xzv -f - s3deploy
|
|
./s3deploy -region ${AWS_REGION} -source ./console_dist -bucket ${DEPLOY_BUCKET} |