stages:
  - build
  - upload
  - release

variables:
  #PROJECT_AUTHOR: "${CI_COMMIT_AUTHOR}"
  PROJECT_NAME: "${CI_PROJECT_NAME}"
  CHECKMK_PLUGIN_FILENAME: "${PROJECT_NAME}-${CI_COMMIT_TAG}.mkp"
  PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PROJECT_NAME}/${CI_COMMIT_TAG}"

build:
  stage: build
  image: gitlab.ard.de:4567/checkmk/build-mkp:latest
  #image: "${CI_REGISTRY}/checkmk/build-mkp:latest"
  tags:
    - global-runner
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - cp /dist.py ./
    - python dist.py
  artifacts:
    paths:
      - dist/*.mkp

upload:
  stage: upload
  image:
    name: curlimages/curl:latest
    pull_policy: always # available: always, if-not-present, never
  tags:
    - global-runner
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - |
      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \
        --upload-file dist/${CHECKMK_PLUGIN_FILENAME} "${PACKAGE_REGISTRY_URL}/${CHECKMK_PLUGIN_FILENAME}"

release_job:
  image: gitlab/glab:latest
  stage: release
  tags:
    - global-runner
  script:
    - pwd
    - ls -la
    - ls -la dist
    - echo ${CHECKMK_PLUGIN_FILENAME}
    - glab config set check_update false --global
    - glab auth login --job-token $CI_JOB_TOKEN --hostname $CI_SERVER_HOST --api-protocol $CI_SERVER_PROTOCOL
    - GITLAB_HOST=$CI_SERVER_URL glab release list -R $CI_PROJECT_PATH
    - glab release create $CI_COMMIT_TAG -T $CI_COMMIT_TAG --notes "${CI_COMMIT_TAG_MESSAGE}" -r "${CI_COMMIT_SHA}" -n "Release ${CI_COMMIT_TAG}"
    - glab release create $CI_COMMIT_TAG --assets-links='[{"name":"$CHECKMK_PLUGIN_FILENAME","url":"${PACKAGE_REGISTRY_URL}/${CHECKMK_PLUGIN_FILENAME}","link_type":"package"}]'
    #- glab release create $CI_COMMIT_TAG -T $CI_COMMIT_TAG --notes "${CI_COMMIT_TAG_MESSAGE}" ./dist/*.mkp