Loading .releaserc.json 0 → 100644 +32 −0 Original line number Diff line number Diff line { "branches": [ "main" ], "plugins": [ ["@semantic-release/commit-analyzer", { "preset": "conventionalcommits", "presetConfig": { "types": [ {"type": "feat", "section": "Features"}, {"type": "fix", "section": "Bug Fixes"}, {"type": "chore", "hidden": true}, {"type": "docs", "hidden": true}, {"type": "style", "hidden": true}, {"type": "refactor", "hidden": true}, {"type": "perf", "hidden": true}, {"type": "test", "hidden": true} ], "issueUrlFormat": "https://labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.core/common/-/issues/{{id}}" } }], "@semantic-release/release-notes-generator", ["@semantic-release/gitlab", { "gitlabUrl": "https://labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.core/common" }], ["@semantic-release/changelog",{ "changelogFile": "./CHANGELOG.md" }], "@semantic-release/git" ] } No newline at end of file .gitlab-ci.yml +80 −39 Original line number Diff line number Diff line stages: - verify - prepare - release - deploy - prod_extract_next_release - prod_package - prod_release default: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/maven:3.8.3-openjdk-17 variables: MAVEN_CLI_OPTS: "-s .ci-settings.xml --batch-mode" MAVEN_CLI_OPTS: "-s ${CI_PROJECT_DIR}/.ci-settings.xml --batch-mode" BUILD_ENV: build.env verify_job: stage: verify script: mvn ${MAVEN_CLI_OPTS} verify except: - main prepare_job: stage: prepare prod_extract_next_release_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_extract_next_release variables: GITLAB_TOKEN: $GROUP_ACCESS_TOKEN script: - export VERSION=$(mvn ${MAVEN_CLI_OPTS} -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec) - echo "VERSION=${VERSION}" >> ${BUILD_ENV} - DEV_RELEASE_VERSION=$(npx -y -p @semantic-release/commit-analyzer@9.0.2 -p @semantic-release/git@10.0.1 -p @semantic-release/gitlab@9.5.0 -p @semantic-release/release-notes-generator@10.0.3 -p @semantic-release/exec@6.0.3 -p @semantic-release/changelog@6.0.2 -p conventional-changelog-conventionalcommits@5.0.0 -p semantic-release@19.0.5 semantic-release --dry-run | grep -oP '(?<=Published release ).*' | awk '{print $1}' || echo "no-release" ) - echo "$DEV_RELEASE_VERSION" > dev_release_version.txt - cat dev_release_version.txt artifacts: reports: dotenv: ${BUILD_ENV} paths: - dev_release_version.txt only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/' release_job: stage: release image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/release-cli:latest prod_package_job: stage: prod_package image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/maven:3.8.3-openjdk-17 dependencies: - prepare_job - prod_extract_next_release_job script: - echo "Creating release for version ${VERSION}" release: tag_name: ${VERSION} description: ${VERSION} - DEV_RELEASE_VERSION=$(cat dev_release_version.txt) - echo $DEV_RELEASE_VERSION - if [ "$DEV_RELEASE_VERSION" = "no-release" ]; then exit 0; fi - chmod +x ./mvnw - ./mvnw ${MAVEN_CLI_OPTS} -q versions:set -DnewVersion=$DEV_RELEASE_VERSION - ./mvnw ${MAVEN_CLI_OPTS} -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec - ./mvnw ${MAVEN_CLI_OPTS} deploy - git add pom.xml - git status - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name $GITLAB_USER_NAME - | if git commit -m "Release $DEV_RELEASE_VERSION: Update project version [skip ci]"; then REPO_URL="${CI_SERVER_URL}/${CI_PROJECT_PATH}.git" AUTH_REPO_URL="https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@${REPO_URL#https://}" git remote set-url origin "$AUTH_REPO_URL" git push -f origin HEAD:main else echo "No changes to commit." fi artifacts: paths: - target/** only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/' deploy_job: stage: deploy prod_semantic_versioning_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_release variables: GITLAB_TOKEN: $GROUP_ACCESS_TOKEN before_script: - git pull origin HEAD script: - echo "Deploying artifact to GitLab registry" - mvn ${MAVEN_CLI_OPTS} deploy - RELEASE_VERSION=$(npx -y -p @semantic-release/commit-analyzer@9.0.2 -p @semantic-release/git@10.0.1 -p @semantic-release/gitlab@9.5.0 -p @semantic-release/release-notes-generator@10.0.3 -p @semantic-release/exec@6.0.3 -p @semantic-release/changelog@6.0.2 -p conventional-changelog-conventionalcommits@5.0.0 -p semantic-release@19.0.5 semantic-release | grep -oP '(?<=Published release ).*' | awk '{print $1}' || echo "no-release" ) - echo "$RELEASE_VERSION" > release_version.txt - cat release_version.txt artifacts: paths: - release_version.txt only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/' Loading
.releaserc.json 0 → 100644 +32 −0 Original line number Diff line number Diff line { "branches": [ "main" ], "plugins": [ ["@semantic-release/commit-analyzer", { "preset": "conventionalcommits", "presetConfig": { "types": [ {"type": "feat", "section": "Features"}, {"type": "fix", "section": "Bug Fixes"}, {"type": "chore", "hidden": true}, {"type": "docs", "hidden": true}, {"type": "style", "hidden": true}, {"type": "refactor", "hidden": true}, {"type": "perf", "hidden": true}, {"type": "test", "hidden": true} ], "issueUrlFormat": "https://labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.core/common/-/issues/{{id}}" } }], "@semantic-release/release-notes-generator", ["@semantic-release/gitlab", { "gitlabUrl": "https://labs.etsi.org/rep/osl/hypo/code/org.etsi.osl.hypo.core/common" }], ["@semantic-release/changelog",{ "changelogFile": "./CHANGELOG.md" }], "@semantic-release/git" ] } No newline at end of file
.gitlab-ci.yml +80 −39 Original line number Diff line number Diff line stages: - verify - prepare - release - deploy - prod_extract_next_release - prod_package - prod_release default: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/maven:3.8.3-openjdk-17 variables: MAVEN_CLI_OPTS: "-s .ci-settings.xml --batch-mode" MAVEN_CLI_OPTS: "-s ${CI_PROJECT_DIR}/.ci-settings.xml --batch-mode" BUILD_ENV: build.env verify_job: stage: verify script: mvn ${MAVEN_CLI_OPTS} verify except: - main prepare_job: stage: prepare prod_extract_next_release_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_extract_next_release variables: GITLAB_TOKEN: $GROUP_ACCESS_TOKEN script: - export VERSION=$(mvn ${MAVEN_CLI_OPTS} -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec) - echo "VERSION=${VERSION}" >> ${BUILD_ENV} - DEV_RELEASE_VERSION=$(npx -y -p @semantic-release/commit-analyzer@9.0.2 -p @semantic-release/git@10.0.1 -p @semantic-release/gitlab@9.5.0 -p @semantic-release/release-notes-generator@10.0.3 -p @semantic-release/exec@6.0.3 -p @semantic-release/changelog@6.0.2 -p conventional-changelog-conventionalcommits@5.0.0 -p semantic-release@19.0.5 semantic-release --dry-run | grep -oP '(?<=Published release ).*' | awk '{print $1}' || echo "no-release" ) - echo "$DEV_RELEASE_VERSION" > dev_release_version.txt - cat dev_release_version.txt artifacts: reports: dotenv: ${BUILD_ENV} paths: - dev_release_version.txt only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/' release_job: stage: release image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/release-cli:latest prod_package_job: stage: prod_package image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/maven:3.8.3-openjdk-17 dependencies: - prepare_job - prod_extract_next_release_job script: - echo "Creating release for version ${VERSION}" release: tag_name: ${VERSION} description: ${VERSION} - DEV_RELEASE_VERSION=$(cat dev_release_version.txt) - echo $DEV_RELEASE_VERSION - if [ "$DEV_RELEASE_VERSION" = "no-release" ]; then exit 0; fi - chmod +x ./mvnw - ./mvnw ${MAVEN_CLI_OPTS} -q versions:set -DnewVersion=$DEV_RELEASE_VERSION - ./mvnw ${MAVEN_CLI_OPTS} -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec - ./mvnw ${MAVEN_CLI_OPTS} deploy - git add pom.xml - git status - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name $GITLAB_USER_NAME - | if git commit -m "Release $DEV_RELEASE_VERSION: Update project version [skip ci]"; then REPO_URL="${CI_SERVER_URL}/${CI_PROJECT_PATH}.git" AUTH_REPO_URL="https://${GITLAB_USER_NAME}:${GROUP_ACCESS_TOKEN}@${REPO_URL#https://}" git remote set-url origin "$AUTH_REPO_URL" git push -f origin HEAD:main else echo "No changes to commit." fi artifacts: paths: - target/** only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/' deploy_job: stage: deploy prod_semantic_versioning_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_release variables: GITLAB_TOKEN: $GROUP_ACCESS_TOKEN before_script: - git pull origin HEAD script: - echo "Deploying artifact to GitLab registry" - mvn ${MAVEN_CLI_OPTS} deploy - RELEASE_VERSION=$(npx -y -p @semantic-release/commit-analyzer@9.0.2 -p @semantic-release/git@10.0.1 -p @semantic-release/gitlab@9.5.0 -p @semantic-release/release-notes-generator@10.0.3 -p @semantic-release/exec@6.0.3 -p @semantic-release/changelog@6.0.2 -p conventional-changelog-conventionalcommits@5.0.0 -p semantic-release@19.0.5 semantic-release | grep -oP '(?<=Published release ).*' | awk '{print $1}' || echo "no-release" ) - echo "$RELEASE_VERSION" > release_version.txt - cat release_version.txt artifacts: paths: - release_version.txt only: refs: - main - develop variables: - '$CI_COMMIT_MESSAGE =~ /^release:\s\d/'