Commit 9f0e8043 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ updated CI setup

parent b9c98e44
Loading
Loading
Loading
Loading
Loading
+50 −13
Original line number Diff line number Diff line
@@ -39,10 +39,11 @@ variables:
  REPO_PATH: "artifacts/raw/updatesite/org.etsi.mts.tdl.updatesite/target/repository/"
  PACKAGE_NAME: "TOP IDE Interim Build"
  PACKAGE_NAME_MAIN: "TOP IDE Build"
  BETA_PATH: "public/updatesite/beta"
  BETA_PAGE: "https://top.etsi.org/ide/updatesite/beta"
  MAIN_PATH: "public/updatesite/release"
  MAIN_PAGE: "https://top.etsi.org/ide/updatesite/release"
  BETA_KEY: "beta"
  MAIN_KEY: "stable"
  RELEASE_KEY: "beta"
  RELEASE_PATH: "public/updatesite/${RELEASE_KEY}"
  RELEASE_PAGE: "https://top.etsi.org/ide/updatesite/${RELEASE_KEY}"
  STANDALONE_LOCATION: "plugins/org.etsi.mts.tdl.standalone/target"
  STANDALONE_NAME: "org.etsi.mts.tdl.standalone-1.0.0-SNAPSHOT-shadow.jar"
  STANDALONE_PATH: "${STANDALONE_LOCATION}/${STANDALONE_NAME}"
@@ -129,6 +130,7 @@ cache:


stages:          # List of stages for jobs, and their order of execution
  - config
  - build
  - test
  - deploy
@@ -136,6 +138,18 @@ stages: # List of stages for jobs, and their order of execution
  - upload
  - release

config-job:       # This job runs in the build stage, which runs first.
  stage: config
  extends: 
    - main-branch-key
    - dev-branch-key
    - ttf-branch-key
  script:
    - echo $RELEASE_KEY
    - echo $RELEASE_PATH
    - echo $RELEASE_PAGE
    - exit 1

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  rules:
@@ -179,7 +193,7 @@ build-job: # This job runs in the build stage, which runs first.


# Adapted from OpenAPI2TDL converter
prepare:
prepare-job:
  stage: prepare
  rules:
    - !reference [.default_rules, rules]
@@ -195,7 +209,7 @@ prepare:
      dotenv: variables.env   # Use artifacts:reports:dotenv to expose the variables to other jobs

# https://gitlab.com/gitlab-org/release-cli/-/tree/master/docs/examples/release-assets-as-generic-package/
upload:
upload-job:
  stage: upload
  image: curlimages/curl:latest
  needs:
@@ -227,7 +241,7 @@ upload:
    # - |
      # curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${LIB_JAR} ${PACKAGE_REGISTRY_URL}/${LIB_JAR}

pages:
pages-job:
  stage: upload
  # image: curlimages/curl:latest
  needs:
@@ -244,12 +258,12 @@ pages:
    # Add/update content
    # TODO: differentiate on branch?
    - echo $CI_PAGES_URL
    - mkdir -p $BETA_PATH
    - cp -r -f $SITE_PATH/* $BETA_PATH
    - mkdir -p $RELEASE_PATH
    - cp -r -f $SITE_PATH/* $RELEASE_PATH
    # Zip the content and publish the zip again
    # - zip -r "content.zip" "public"
    # - mv "content.zip" "public/"
    # - mv $SITE_ARCHIVE $BETA_PATH/content.zip
    # - mv $SITE_ARCHIVE $RELEASE_PATH/content.zip
  artifacts:
    paths:
      - public
@@ -258,7 +272,7 @@ pages:
  # only:
    # - tags  

release:
release-job:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  needs:
@@ -266,6 +280,10 @@ release:
      artifacts: true
    - job: build-job
      artifacts: true
  extends: 
    - main-branch-key
    - dev-branch-key
    - ttf-branch-key
  rules:
    - !reference [.default_rules, rules]
  script:
@@ -278,11 +296,30 @@ release:
        --tag-name $VERSION \
        --ref $CI_COMMIT_SHA \
        --assets-link "{\"name\":\"${PACKAGE_NAME}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${ARCHIVE_NAME}\",\"filepath\":\"/repository-archive\"}" \
        --assets-link "{\"name\":\"${PACKAGE_NAME} (latest repository (exipres in 7 days))\",\"url\":\"${REPO_PREFIX}/${BUILD_JOB_ID}/${REPO_PATH}\",\"filepath\":\"/repository\"}" \
        --assets-link "{\"name\":\"${PACKAGE_NAME} (latest beta (permalink))\",\"url\":\"${BETA_PAGE}\"}" \
        --assets-link "{\"name\":\"${PACKAGE_NAME} (latest ${RELEASE_KEY} repository (exipres in 7 days))\",\"url\":\"${REPO_PREFIX}/${BUILD_JOB_ID}/${REPO_PATH}\",\"filepath\":\"/repository\"}" \
        --assets-link "{\"name\":\"${PACKAGE_NAME} (latest ${RELEASE_KEY} release (permalink))\",\"url\":\"${RELEASE_PAGE}\"}" \
        # --assets-link "{\"name\":\"${PACKAGE_NAME} (latest standalone (exipres in 7 days))\",\"url\":\"${PACKAGE_REGISTRY_URL}/${STANDALONE_NAME}\"}" \
        # --assets-link "{\"name\":\"${PACKAGE_NAME} (latest)\",\"url\":\"${PACKAGE_LATEST_URL}/${ARCHIVE_NAME}\"}" \
        # --assets-link "{\"name\":\"${MACOS_GUI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${MACOS_GUI_JAR}\"}" \
        # --assets-link "{\"name\":\"${WINDOWS_GUI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WINDOWS_GUI_JAR}\"}" \
        # --assets-link "{\"name\":\"${CLI_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${CLI_JAR}\"}" \
        # --assets-link "{\"name\":\"${LIB_JAR}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LIB_JAR}\"}"

# assign variables depending on the branch
main-branch-key:
  variables:
    RELEASE_KEY: $MAIN_KEY
  rules:
    - if: $CI_COMMIT_BRANCH == $MAIN_CI_TARGET_BRANCH
  
dev-branch-key:
  variables:
    RELEASE_KEY: $BETA_KEY
  rules:
    - if: $CI_COMMIT_BRANCH == $DEV_CI_TARGET_BRANCH

ttf-branch-key:
  variables:
    RELEASE_KEY: $BETA_KEY
  rules:
    - if: $CI_COMMIT_BRANCH == "ttf-022"