ci: label container image based on branch and tag
This commit is contained in:
parent
76a0f5d176
commit
56a6e53a9c
1 changed files with 51 additions and 29 deletions
|
@ -9,61 +9,83 @@
|
||||||
|
|
||||||
# Official framework image. Look for the different tagged releases at:
|
# Official framework image. Look for the different tagged releases at:
|
||||||
# https://hub.docker.com/r/library/node/tags/
|
# https://hub.docker.com/r/library/node/tags/
|
||||||
image: node:alpine
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
|
- deploy
|
||||||
# Pick zero or more services to be used on all builds.
|
|
||||||
# Only needed when using a docker container to run your tests in.
|
|
||||||
# Check out: https://docs.gitlab.com/ee/ci/services/index.html
|
|
||||||
variables:
|
|
||||||
POSTGRES_PASSWORD: test
|
|
||||||
# POSTGRES_DB: $POSTGRES_DB
|
|
||||||
# POSTGRES_USER: $POSTGRES_USER
|
|
||||||
# POSTGRES_PASSWORD: $POSTGRES_PASSWORD
|
|
||||||
# POSTGRES_HOST_AUTH_METHOD: trust
|
|
||||||
|
|
||||||
services:
|
|
||||||
- postgres:15
|
|
||||||
- redis
|
|
||||||
|
|
||||||
testCommit:
|
testCommit:
|
||||||
stage: build
|
stage: build
|
||||||
before_script:
|
image: node:alpine
|
||||||
|
# Pick zero or more services to be used on all builds.
|
||||||
|
# Only needed when using a docker container to run your tests in.
|
||||||
|
# Check out: https://docs.gitlab.com/ee/ci/services/index.html
|
||||||
|
services:
|
||||||
|
- postgres:15
|
||||||
|
- redis
|
||||||
|
variables:
|
||||||
|
POSTGRES_PASSWORD: test
|
||||||
|
# POSTGRES_DB: $POSTGRES_DB
|
||||||
|
# POSTGRES_USER: $POSTGRES_USER
|
||||||
|
# POSTGRES_PASSWORD: $POSTGRES_PASSWORD
|
||||||
|
# POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
script:
|
||||||
- apk add --no-cache cargo python3 make g++
|
- apk add --no-cache cargo python3 make g++
|
||||||
- cp .config/ci.yml .config/default.yml
|
- cp .config/ci.yml .config/default.yml
|
||||||
- corepack enable
|
- corepack enable
|
||||||
- corepack prepare pnpm@latest --activate
|
- corepack prepare pnpm@latest --activate
|
||||||
script:
|
|
||||||
- pnpm i --frozen-lockfile
|
- pnpm i --frozen-lockfile
|
||||||
- pnpm run build:debug
|
- pnpm run build:debug
|
||||||
- pnpm run migrate
|
- pnpm run migrate
|
||||||
|
cache:
|
||||||
|
key: build
|
||||||
|
policy: pull-push
|
||||||
|
when: on_success
|
||||||
|
paths:
|
||||||
|
- node_modules/
|
||||||
|
- packages/*/node_modules/
|
||||||
|
- packages/backend/native-utils/node_modules/
|
||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
- beta
|
- beta
|
||||||
- develop
|
- develop
|
||||||
- /^feature\/.*$/
|
- /^feature\/.*$/
|
||||||
|
|
||||||
dockerPush:
|
getImageTag:
|
||||||
stage: build
|
stage: deploy
|
||||||
|
image: busybox
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
if test -n "$CI_COMMIT_TAG"; then
|
||||||
|
tag="$CI_COMMIT_TAG"
|
||||||
|
elif test "$CI_COMMIT_BRANCH" == "main"; then
|
||||||
|
tag="latest"
|
||||||
|
else
|
||||||
|
tag="$CI_COMMIT_BRANCH"
|
||||||
|
fi
|
||||||
|
- echo "REGISTRY_PUSH_TAG=$tag" | tee build.env
|
||||||
|
# parse tag to the build and merge jobs.
|
||||||
|
# See: https://docs.gitlab.com/ee/ci/variables/#pass-an-environment-variable-to-another-job
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
dotenv: build.env
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
- beta
|
||||||
|
- tags
|
||||||
|
|
||||||
|
dockerBuild:
|
||||||
|
stage: deploy
|
||||||
|
needs: ["getImageTag"]
|
||||||
image:
|
image:
|
||||||
name: gcr.io/kaniko-project/executor:v1.9.0-debug
|
name: gcr.io/kaniko-project/executor:v1.9.0-debug
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
timeout: 3h
|
|
||||||
script:
|
script:
|
||||||
- /kaniko/executor
|
- /kaniko/executor
|
||||||
--context "${CI_PROJECT_DIR}"
|
--context "${CI_PROJECT_DIR}"
|
||||||
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
|
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
|
||||||
--destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"
|
--destination "${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_TAG}"
|
||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
- beta
|
- beta
|
||||||
|
- tags
|
||||||
# This folder is cached between builds
|
|
||||||
# https://docs.gitlab.com/ee/ci/yaml/index.html#cache
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- node_modules/
|
|
||||||
- packages/*/node_modules/
|
|
||||||
- packages/backend/native-utils/node_modules/
|
|
Loading…
Reference in a new issue