diff --git a/.changeset/pre.json b/.changeset/pre.json index 6fd9f3d2..4f822c19 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -14,7 +14,6 @@ "@openstapps/minimal-deployment": "2.0.0", "@openstapps/minimal-plugin": "2.0.0", "@openstapps/app": "2.0.0", - "@openstapps/app-release-template": "2.0.0", "@openstapps/api": "2.0.0", "@openstapps/api-cli": "2.0.0", "@openstapps/api-plugin": "2.0.0", diff --git a/.changeset/silent-maps-float.md b/.changeset/silent-maps-float.md index 2a872a64..fc3a2846 100644 --- a/.changeset/silent-maps-float.md +++ b/.changeset/silent-maps-float.md @@ -1,7 +1,6 @@ --- '@openstapps/projectmanagement': patch '@openstapps/prettier-config': patch -'@openstapps/app-release-template': patch '@openstapps/es-mapping-generator': patch '@openstapps/backend-config': patch '@openstapps/eslint-config': patch diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 906687d8..d4d0a5ad 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,14 +7,18 @@ # ``` # To your pipeline. # https://docs.gitlab.com/ee/ci/pipelines/merge_request_pipelines.html#use-rules-to-add-jobs + +.limit_pipelines: + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' + when: on_success + - when: never + include: - local: /backend/backend/.gitlab-ci.yml - local: /frontend/app/.gitlab-ci.yml - local: /.gitlab/schedules.gitlab-ci.yml - local: /.gitlab/publishing.gitlab-ci.yml - rules: - - if: '$CI_COMMIT_MESSAGE =~ /ci: publish release$/' - when: always variables: TURBO_CACHE_BYPASS: @@ -83,6 +87,7 @@ build: - if: $CI_COMMIT_BRANCH == 'develop' variables: DEPLOY_ID: staging + - !reference [.limit_pipelines, rules] stop review: stage: build @@ -121,15 +126,15 @@ unit: coverage_format: cobertura path: coverage.xml rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' + - !reference [.limit_pipelines, rules] audit: stage: audit + allow_failure: true needs: [] script: - pnpm audit --prod rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'develop' - allow_failure: true - if: $CI_COMMIT_BRANCH == 'main' allow_failure: false + - !reference [.limit_pipelines, rules] diff --git a/.gitlab/publishing.gitlab-ci.yml b/.gitlab/publishing.gitlab-ci.yml index 1af725b4..196e49c4 100644 --- a/.gitlab/publishing.gitlab-ci.yml +++ b/.gitlab/publishing.gitlab-ci.yml @@ -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] diff --git a/.gitlab/schedules.gitlab-ci.yml b/.gitlab/schedules.gitlab-ci.yml index 304668f7..669c5c5a 100644 --- a/.gitlab/schedules.gitlab-ci.yml +++ b/.gitlab/schedules.gitlab-ci.yml @@ -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] \ No newline at end of file diff --git a/backend/backend/.gitlab-ci.yml b/backend/backend/.gitlab-ci.yml index bca14b64..10b1c7a2 100644 --- a/backend/backend/.gitlab-ci.yml +++ b/backend/backend/.gitlab-ci.yml @@ -19,4 +19,4 @@ integration: junit: - backend/backend/coverage/integration-report-junit.xml rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' + - !reference [.limit_pipelines, rules] diff --git a/frontend/app/.gitlab-ci.yml b/frontend/app/.gitlab-ci.yml index 8cf361df..9a876ceb 100644 --- a/frontend/app/.gitlab-ci.yml +++ b/frontend/app/.gitlab-ci.yml @@ -19,4 +19,4 @@ e2e: - BROWSER: chrome - BROWSER: firefox rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'main' || $CI_COMMIT_BRANCH == 'develop' + - !reference [.limit_pipelines, rules] diff --git a/package.json b/package.json index bc238c39..d3c556a4 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "format:fix": "dotenv -c -- turbo run format:fix", "lint": "dotenv -c -- turbo run lint", "lint:fix": "dotenv -c -- turbo run lint:fix", - "publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"refactor: update changelog\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags", + "publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"docs: update changelogs for release\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags", "syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod", "syncpack:fix": "syncpack format && syncpack fix-mismatches", "test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test",