4f3dc76b8c
related commit: 91590b2e52
94 lines
2.7 KiB
YAML
94 lines
2.7 KiB
YAML
# This file is a template, and might need editing before it works on your project.
|
|
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
|
|
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
|
|
#
|
|
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
|
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
|
# This specific template is located at:
|
|
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Nodejs.gitlab-ci.yml
|
|
|
|
# Official framework image. Look for the different tagged releases at:
|
|
# https://hub.docker.com/r/library/node/tags/
|
|
|
|
stages:
|
|
- build
|
|
- deploy
|
|
|
|
testCommit:
|
|
stage: build
|
|
image: node:20.5
|
|
# 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:
|
|
- apt-get update && apt-get install -y git wget curl build-essential python3 musl
|
|
- curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
- source "$HOME/.cargo/env"
|
|
- ln -s /lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1
|
|
- cp .config/ci.yml .config/default.yml
|
|
- corepack enable
|
|
- corepack prepare pnpm@latest --activate
|
|
- pnpm i --frozen-lockfile
|
|
- pnpm run build:debug
|
|
- 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:
|
|
- main
|
|
- beta
|
|
- develop
|
|
- /^feature\/.*$/
|
|
|
|
getImageTag:
|
|
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:
|
|
name: gcr.io/kaniko-project/executor:debug
|
|
entrypoint: [""]
|
|
script:
|
|
- /kaniko/executor
|
|
--context "${CI_PROJECT_DIR}"
|
|
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
|
|
--destination "${CI_REGISTRY_IMAGE}:${REGISTRY_PUSH_TAG}"
|
|
only:
|
|
- main
|
|
- beta
|
|
- tags
|