mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-03 03:52:52 +00:00
ci: polish publishing via ci pipelines
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
.limit_publishing:
|
||||
- if: $CI_PIPELINE_SOURCE != "schedule"
|
||||
when: on_success
|
||||
.limit_publish_pipelines:
|
||||
rules:
|
||||
- if: '($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop") && $CI_COMMIT_MESSAGE =~ /ci: publish release/ && $CI_PIPELINE_SOURCE != "schedule"'
|
||||
|
||||
deploy:
|
||||
stage: publish
|
||||
@@ -12,7 +12,8 @@ deploy:
|
||||
paths:
|
||||
- ./.deploy
|
||||
- ./frontend/app/www
|
||||
rules: !reference [.limit_publishing]
|
||||
rules:
|
||||
- !reference [.limit_publish_pipelines, rules]
|
||||
|
||||
publish image:
|
||||
stage: publish
|
||||
@@ -23,14 +24,15 @@ publish image:
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:v1.12.1-debug
|
||||
entrypoint: [""]
|
||||
variables:
|
||||
PUBLISH_TAG: next
|
||||
script:
|
||||
- >
|
||||
/kaniko/executor
|
||||
--context "${CI_PROJECT_DIR}/${DEPLOY_DIR}"
|
||||
--dockerfile "${CI_PROJECT_DIR}/${DEPLOY_DIR}/Dockerfile"
|
||||
--destination "${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:$(grep -o '"version": "[^"]*' "${DEPLOY_DIR}/package.json" | cut -d'"' -f4)"
|
||||
--destination "${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:latest"
|
||||
rules: !reference [.limit_publishing]
|
||||
--destination "${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${PUBLISH_TAG}"
|
||||
parallel:
|
||||
matrix:
|
||||
- IMAGE_NAME: database
|
||||
@@ -47,6 +49,11 @@ publish image:
|
||||
DEPLOY_DIR: .deploy/minimal-plugin
|
||||
- IMAGE_NAME: app
|
||||
DEPLOY_DIR: frontend/app
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'main'
|
||||
variables:
|
||||
PUBLISH_TAG: latest
|
||||
- !reference [.limit_publish_pipelines, rules]
|
||||
|
||||
publish packages:
|
||||
stage: publish
|
||||
@@ -54,18 +61,17 @@ publish packages:
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
GIT_DEPTH: 0
|
||||
PUBLISH_TAG: next
|
||||
script:
|
||||
- pnpm install
|
||||
- pnpm build
|
||||
- pnpm publish -r --publish-branch ${PUBLISH_BRANCH} --tag ${PUBLISH_TAG} --no-git-checks # TODO: Git checks...
|
||||
- pnpm config set '//registry.npmjs.org/:_authToken' "${NPM_AUTH_TOKEN}"
|
||||
- pnpm publish -r --publish-branch ${CI_COMMIT_BRANCH} --tag ${PUBLISH_TAG} --no-git-checks # TODO: Git checks...
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'main'
|
||||
variables:
|
||||
PUBLISH_BRANCH: main
|
||||
PUBLISH_TAG: latest
|
||||
- variables:
|
||||
PUBLISH_BRANCH: $CI_COMMIT_BRANCH
|
||||
PUBLISH_TAG: next
|
||||
- !reference [.limit_publish_pipelines, rules]
|
||||
|
||||
publish docs:
|
||||
stage: publish
|
||||
@@ -77,3 +83,6 @@ publish docs:
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'main'
|
||||
- !reference [.limit_publish_pipelines, rules]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.limit_base_image_publishing:
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_BRANCH == 'main'
|
||||
when: always
|
||||
.limit_scheduled_pipelines:
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'main' && $CI_PIPELINE_SOURCE == "schedule"
|
||||
|
||||
base image:
|
||||
image: docker
|
||||
@@ -21,7 +21,6 @@ base image:
|
||||
docker push "${CI_REGISTRY_IMAGE}/${IMAGE_NAME}"
|
||||
cache: {} # disable irrelevant cache for this job
|
||||
before_script: [] # do not run irrelevant before script for this job
|
||||
rules: !reference [.limit_base_image_publishing]
|
||||
parallel:
|
||||
matrix:
|
||||
- IMAGE_NAME: node-base
|
||||
@@ -30,4 +29,5 @@ base image:
|
||||
DEPLOY_DIR: images/node-builder
|
||||
- IMAGE_NAME: app-builder
|
||||
DEPLOY_DIR: images/app-builder
|
||||
|
||||
rules:
|
||||
- !reference [.limit_scheduled_pipelines, rules]
|
||||
Reference in New Issue
Block a user