diff --git a/.gitmodules b/.gitmodules index 45ec1707f..03896213e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "libs/common-ui"] path = libs/common-ui - url = ssh://git@git.iqser.com:2222/sl/common-ui.git + url = ../../fforesight/shared-ui-libraries/common-ui.git + # url = ssh://git@git.iqser.com:2222/sl/common-ui.git diff --git a/bamboo-specs/.gitignore b/bamboo-specs/.gitignore deleted file mode 100644 index 2f7896d1d..000000000 --- a/bamboo-specs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target/ diff --git a/bamboo-specs/pom.xml b/bamboo-specs/pom.xml deleted file mode 100644 index 5be92c2cb..000000000 --- a/bamboo-specs/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - 4.0.0 - - - com.atlassian.bamboo - bamboo-specs-parent - 8.1.1 - - - - bamboo-specs - 1.0.0-SNAPSHOT - jar - - - - com.atlassian.bamboo - bamboo-specs-api - - - com.atlassian.bamboo - bamboo-specs - - - - - junit - junit - test - - - - - - diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java deleted file mode 100644 index c2cd9dcf2..000000000 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ /dev/null @@ -1,127 +0,0 @@ -package buildjob; - -import com.atlassian.bamboo.specs.api.BambooSpec; -import com.atlassian.bamboo.specs.api.builders.BambooKey; -import com.atlassian.bamboo.specs.api.builders.credentials.SharedCredentialsIdentifier; -import com.atlassian.bamboo.specs.api.builders.credentials.SharedCredentialsScope; -import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration; -import com.atlassian.bamboo.specs.api.builders.permission.PermissionType; -import com.atlassian.bamboo.specs.api.builders.permission.Permissions; -import com.atlassian.bamboo.specs.api.builders.permission.PlanPermissions; -import com.atlassian.bamboo.specs.api.builders.plan.Job; -import com.atlassian.bamboo.specs.api.builders.plan.Plan; -import com.atlassian.bamboo.specs.api.builders.plan.PlanIdentifier; -import com.atlassian.bamboo.specs.api.builders.plan.Stage; -import com.atlassian.bamboo.specs.api.builders.plan.artifact.Artifact; -import com.atlassian.bamboo.specs.api.builders.plan.branches.BranchCleanup; -import com.atlassian.bamboo.specs.api.builders.plan.branches.PlanBranchManagement; -import com.atlassian.bamboo.specs.api.builders.project.Project; -import com.atlassian.bamboo.specs.api.builders.repository.VcsRepositoryIdentifier; -import com.atlassian.bamboo.specs.builders.repository.git.GitRepository; -import com.atlassian.bamboo.specs.builders.task.*; -import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger; -import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties; -import com.atlassian.bamboo.specs.util.BambooServer; - -/** - * Plan configuration for Bamboo. - * Learn more on: https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs - */ -@BambooSpec -public class PlanSpec { - /** - * Run main to publish plan on Bamboo - */ - public static void main(final String[] args) throws Exception { - //By default credentials are read from the '.credentials' file. - BambooServer bambooServer = new BambooServer("http://localhost:8085"); - - Plan buildPlan = new PlanSpec().createDockerBuildPlan(); - bambooServer.publish(buildPlan); - PlanPermissions buildPlanPermissions = new PlanSpec().createPlanPermission(buildPlan.getIdentifier()); - bambooServer.publish(buildPlanPermissions); - - } - - private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) { - Permissions permission = new Permissions() - .userPermissions("atlbamboo", PermissionType.EDIT, PermissionType.VIEW, PermissionType.ADMIN, PermissionType.CLONE, PermissionType.BUILD) - .userPermissions("tbejan", PermissionType.ADMIN, PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD) - .groupPermissions("devplant", PermissionType.EDIT, PermissionType.VIEW, PermissionType.BUILD) - .groupPermissions("Documentation", PermissionType.VIEW) - .loggedInUserPermissions(PermissionType.VIEW).anonymousUserPermissionView(); - return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission); - } - - private Project project() { - return new Project().name("RED").key(new BambooKey("RED")); - } - - public Plan createDockerBuildPlan() { - return new Plan(project(), "Redaction UI", new BambooKey("UI")) - .description("Docker build for Redaction UI.") - .stages(new Stage("UI Build Stage") - .jobs(creatGinCloudPlatformImagesJob("red-ui"))) - .stages(new Stage("Release") - .manual(true) - .jobs(createRelease())) - .linkedRepositories("RED / ui") - .linkedRepositories("Shared Libraries / common-ui") - .triggers(new BitbucketServerTrigger().selectedTriggeringRepositories(new VcsRepositoryIdentifier("RED / ui"))) - .planBranchManagement(new PlanBranchManagement().createForVcsBranch().delete(new BranchCleanup().whenInactiveInRepositoryAfterDays(30)).notificationForCommitters()); - } - - public Job creatGinCloudPlatformImagesJob(String project) { - return new Job("Build Job UI" , new BambooKey("UIBUILD")) - .tasks( - new CleanWorkingDirectoryTask().description("My clean working directory task"), - // Checkout - new VcsCheckoutTask().description("Checkout Default Repository") - .checkoutItems(new CheckoutItem().defaultRepository().path("redaction-ui")), - - // Build - new ScriptTask().description("Build") - .location(ScriptTaskProperties.Location.FILE) - .workingSubdirectory("redaction-ui") - .fileFromPath("bamboo-specs/src/main/resources/scripts/build.sh") - .environmentVariables( - "PROJECT=\"" + project + "\" " + - "BAMBOO_DOWNLOAD_PASS=\"${bamboo.bamboo_download_pass}\" " + - "BAMBOO_DOWNLOAD_USER=\"${bamboo.bamboo_download_user}\" "), - // read version from artifact - new InjectVariablesTask().path("redaction-ui/version.properties"), - // commit release - new VcsCommitTask().commitMessage("chore(release)").repository("RED / ui"), - // create tag with this version - new VcsTagTask().tagName("${bamboo.inject.APP_VERSION}").repository("RED / ui") - ).dockerConfiguration( - new DockerConfiguration().image("nexus.knecon.com:5001/infra/release_build:4.2.0") - .volume("/var/run/docker.sock", "/var/run/docker.sock")) - .artifacts(new Artifact("version").location(".").copyPattern("**/version.properties").shared(true), - new Artifact("paligo-theme.tar.gz").location(".").copyPattern("**/paligo-theme.tar.gz").shared(true)); - } - - - public Job createRelease() { - return new Job("Create Release", new BambooKey("CRLS")) - .tasks( - new CleanWorkingDirectoryTask().description("My clean working directory task"), - new VcsCheckoutTask().description("Checkout Default Repository") - .checkoutItems(new CheckoutItem().defaultRepository()).cleanCheckout(true), - - new ArtifactDownloaderTask().description("Download version artifact") - .sourcePlan(new PlanIdentifier("RED", "UI")) - .artifacts(new DownloadItem().artifact("version")), - // read version from artifact - new InjectVariablesTask().path("redaction-ui/version.properties"), - - new ScriptTask().description("checkout tag").inlineBody("git checkout tags/${bamboo.inject.APP_VERSION}"), - - - new VcsBranchTask().branchName("release/${bamboo.inject.APP_VERSION}").repository("RED / ui")) - .dockerConfiguration(new DockerConfiguration().image("nexus.knecon.com:5001/infra/release_build:2.9.1") - .volume("/var/run/docker.sock", "/var/run/docker.sock")); - } - - -} diff --git a/bamboo-specs/src/main/resources/scripts/build.sh b/bamboo-specs/src/main/resources/scripts/build.sh deleted file mode 100755 index 4940cec7f..000000000 --- a/bamboo-specs/src/main/resources/scripts/build.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -set -e - - -imageName="nexus.knecon.com:5001/red/$PROJECT" -dockerfileLocation="docker/$PROJECT/Dockerfile" - -echo "submodule status" -git submodule status - -echo "On branch $bamboo_planRepository_branchName building project $PROJECT" -# shellcheck disable=SC2154 -if [[ "$bamboo_planRepository_branchName" == "master" ]] -then - ./versions.sh minor - version=$(jq -r '.version' < package.json) -fi - - -if [[ "$bamboo_planRepository_branchName" == release* ]] -then - ./versions.sh patch - version=$(jq -r '.version' < package.json) -fi - - -echo "Building version $version" -docker build --build-arg bamboo_sonarqube_api_token_secret=${bamboo_sonarqube_api_token_secret} -t "$imageName":latest -f "$dockerfileLocation" . - -if [[ -n ${version+z} ]] -then - - echo "APP_VERSION=${version}" > version.properties - - echo "Publishing Images with version $version" - echo "$BAMBOO_DOWNLOAD_PASS" | docker login -u "$BAMBOO_DOWNLOAD_USER" --password-stdin nexus.knecon.com:5001 - - # re-build intermediate build stage from layer cache, run image and get artifacts ( paligo theme ) - docker build --build-arg bamboo_sonarqube_api_token_secret=${bamboo_sonarqube_api_token_secret} --target builder -t builder-image:latest -f "$dockerfileLocation" . - mkdir -p ./paligo-theme - docker run -v "$(pwd)"/paligo-theme:/tmp/styles-export builder-image:latest - tar -czvf paligo-theme.tar.gz ./paligo-theme - - docker push "$imageName:latest" - docker tag "$imageName:latest" "$imageName:$version" - docker push "$imageName:$version" - -else - echo "Not on a relevant branch $bamboo_planRepository_branchName ... skipping." - echo "APP_VERSION=BRANCH-$bamboo_planRepository_branchName-$bamboo_buildNumber" > version.properties - - if [[ ! -z "$bamboo_version_tag" ]] - then - echo "$BAMBOO_DOWNLOAD_PASS" | docker login -u "$BAMBOO_DOWNLOAD_USER" --password-stdin nexus.knecon.com:5001 - echo "Pushing custom tag: $bamboo_version_tag" - docker tag "$imageName:latest" "$imageName:$bamboo_version_tag" - docker push "$imageName:$bamboo_version_tag" - fi - - -fi diff --git a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java deleted file mode 100644 index 48e728822..000000000 --- a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package buildjob; - - -import com.atlassian.bamboo.specs.api.builders.plan.Plan; -import com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException; -import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders; -import org.junit.Test; - -public class PlanSpecTest { - - @Test - public void checkYourPlanOffline() throws PropertiesValidationException { - Plan plan = new PlanSpec().createDockerBuildPlan(); - EntityPropertiesBuilders.build(plan); - } -} diff --git a/docker/.gitlab-ci.yml b/docker/.gitlab-ci.yml new file mode 100644 index 000000000..4c796b65c --- /dev/null +++ b/docker/.gitlab-ci.yml @@ -0,0 +1,10 @@ +variables: + GIT_SUBMODULE_STRATEGY: recursive + GIT_SUBMODULE_FORCE_HTTPS: "true" + PROJECT: red-ui + DOCKERFILELOCATION: "docker/$PROJECT/Dockerfile" + +include: + - project: 'gitlab/gitlab' + ref: 'main' + file: 'ci-templates/docker_build_nexus.yml' diff --git a/versions.sh b/versions.sh deleted file mode 100755 index eb87b26b4..000000000 --- a/versions.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -function bump() { - - if [ "$1" == "major" ] || [ "$1" == "minor" ] || [ "$1" == "patch" ]; then - current_version=$(cat package.json | jq -r '.version') - - IFS='.' read -a version_parts <<< "$current_version" - - major=${version_parts[0]} - minor=${version_parts[1]} - patch=${version_parts[2]} - - case "$1" in - "major") - major=$((major + 1)) - minor=0 - patch=0 - ;; - "minor") - minor=$((minor + 1)) - patch=0 - ;; - "patch") - patch=$((patch + 1)) - ;; - esac - new_version="$major.$minor.$patch" - echo "New Version is $new_version" - - cat package.json | jq ".version = \"$new_version\"" > temp.json - mv temp.json package.json - - cat package-lock.json | jq ".version = \"$new_version\"" > temp.json - mv temp.json package-lock.json - - else - echo >&2 "No patch type set. Aborting." - fi - -} - -echo "Bumping version ... " -bump $1 - - -