refactor-git-trust #4

Merged
zwa merged 11 commits from refactor-git-trust into master 2023-08-15 19:40:53 +00:00
2 changed files with 102 additions and 34 deletions
Showing only changes of commit 3f19ccd593 - Show all commits

View file

@ -1,5 +1,3 @@
image: openjdk:11-jdk-slim
stages: stages:
- build - build
- test - test
@ -7,26 +5,34 @@ stages:
- publish - publish
- release - release
before_script: .kotlin-job: &kotlin
- echo "---------- Start CI ----------" image: domaindrivenarchitecture/ddadevops-kotlin
- export GRADLE_USER_HOME=`pwd`/.gradle cache:
- chmod +x gradlew key: ${CI_COMMIT_REF_SLUG}
- echo "------ commit info ---------------" paths:
- echo $CI_COMMIT_TAG - .gradle/wrapper
- echo $CI_COMMIT_REF_NAME - .gradle/caches
- echo "----------------------------------" before_script:
- echo "---------- Start CI ----------"
- export GRADLE_USER_HOME=`pwd`/.gradle
- chmod +x gradlew
- echo "------ commit info ---------------"
- echo $CI_COMMIT_TAG
- echo $CI_COMMIT_REF_NAME
- echo "----------------------------------"
cache: .tag_only: &tag_only
paths: rules:
- .gradle/wrapper - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- .gradle/caches when: never
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
build: build:
<<: *kotlin
stage: build stage: build
script: script:
- echo "---------- build stage ----------" - pyb build
- ./gradlew assemble
artifacts: artifacts:
paths: paths:
- build/libs/*.jar - build/libs/*.jar
@ -60,6 +66,7 @@ test:
package: package:
<<: *kotlin
stage: package stage: package
script: script:
- ./gradlew -x assemble -x test jar - ./gradlew -x assemble -x test jar
@ -76,22 +83,18 @@ package:
publish-maven-package-to-gitlab: publish-maven-package-to-gitlab:
<<: *kotlin
<<: *tag_only
stage: publish stage: publish
rules:
- if: $CI_PIPELINE_SOURCE != "push"
when: never
- if: $CI_COMMIT_TAG !~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
script: script:
- ./gradlew -x assemble -x test publishLibraryPublicationToGitlabRepository - ./gradlew -x assemble -x test publishLibraryPublicationToGitlabRepository
publish-maven-package-to-meissa: publish-maven-package-to-meissa:
<<: *kotlin
<<: *tag_only
stage: publish stage: publish
allow_failure: true allow_failure: true
rules:
- if: $CI_PIPELINE_SOURCE != "push"
when: never
- if: $CI_COMMIT_TAG !~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
script: script:
- apt-get update -y - apt-get update -y
- apt-get install -y iputils-ping ssh - apt-get install -y iputils-ping ssh
@ -101,12 +104,9 @@ publish-maven-package-to-meissa:
release-to-gitlab: release-to-gitlab:
<<: *tag_only
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
stage: release stage: release
rules:
- if: $CI_PIPELINE_SOURCE != "push"
when: never
- if: $CI_COMMIT_TAG =~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
artifacts: artifacts:
paths: paths:
- 'build/libs/provs-desktop.jar' - 'build/libs/provs-desktop.jar'
@ -126,15 +126,11 @@ release-to-gitlab:
release-to-meissa: release-to-meissa:
<<: *kotlin
<<: *tag_only
stage: release stage: release
allow_failure: true allow_failure: true
rules:
- if: $CI_PIPELINE_SOURCE != "push"
when: never
- if: $CI_COMMIT_TAG =~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
script: script:
- apt-get update
- apt-get -yqq install curl
- ./gradlew createReleaseAndUploadAssets - ./gradlew createReleaseAndUploadAssets

72
build.py Normal file
View file

@ -0,0 +1,72 @@
from os import environ
from subprocess import run
from pybuilder.core import init, task
from ddadevops import *
default_task = "dev"
name = "provs"
PROJECT_ROOT_PATH = "."
@init
def initialize(project):
input = {
"name": name,
"module": "notused",
"stage": "notused",
"project_root_path": PROJECT_ROOT_PATH,
"build_types": [],
"mixin_types": ["RELEASE"],
"release_primary_build_file": "build.gradle",
"release_secondary_build_files": [],
}
build = ReleaseMixin(project, input)
build.initialize_build_dir()
@task
def patch(project):
linttest(project, "PATCH")
release(project)
@task
def minor(project):
linttest(project, "MINOR")
release(project)
@task
def major(project):
linttest(project, "MAJOR")
release(project)
@task
def dev(project):
linttest(project, "NONE")
@task
def prepare(project):
build = get_devops_build(project)
build.prepare_release()
@task
def tag(project):
build = get_devops_build(project)
build.tag_bump_and_push_release()
@task
def build(project):
print("---------- build stage ----------")
run("./gradlew assemble", shell=True)
def release(project):
prepare(project)
tag(project)
def linttest(project, release_type):
build(project)