.deploy_job_template:
  stage: deploy
  image: $ESP_ENV_IMAGE
  tags:
    - deploy

# Check this before push_to_github
check_submodule_sync:
  extends:
    - .deploy_job_template
    - .rules:test:submodule
  stage: test_deploy
  tags:
    - github_sync
  retry: 2
  variables:
    GIT_STRATEGY: clone
    SUBMODULES_TO_FETCH: "none"
    PUBLIC_IDF_URL: "https://github.com/espressif/esp-idf.git"
  dependencies: []
  script:
    - git submodule deinit --force .
    # setting the default remote URL to the public one, to resolve relative location URLs
    - git config remote.origin.url ${PUBLIC_IDF_URL}
    # check if all submodules are correctly synced to public repository
    - git submodule init
    - git config --get-regexp '^submodule\..*\.url$' || true
    - git submodule update --recursive
    - echo "IDF was cloned from ${PUBLIC_IDF_URL} completely"

push_to_github:
  extends:
    - .deploy_job_template
    - .before_script_minimal
    - .rules:push_to_github
  needs:
    - check_submodule_sync
  script:
    - add_github_ssh_keys
    - git remote remove github &>/dev/null || true
    - git remote add github git@github.com:espressif/esp-idf.git
    - tools/ci/push_to_github.sh

deploy_update_SHA_in_esp-dockerfiles:
  extends:
    - .deploy_job_template
    - .before_script_minimal
    - .rules:protected-no_label-always
  dependencies: []
  variables:
    GIT_DEPTH: 2
  tags: [ shiny, build ]
  script:
    - 'curl --header "PRIVATE-TOKEN: ${ESPCI_SCRIPTS_TOKEN}" -o create_MR_in_esp_dockerfile.sh $GITLAB_HTTP_SERVER/api/v4/projects/1260/repository/files/create_MR_in_esp_dockerfile%2Fcreate_MR_in_esp_dockerfile.sh/raw\?ref\=master'
    - chmod +x create_MR_in_esp_dockerfile.sh
    - ./create_MR_in_esp_dockerfile.sh