variables: GIT_STRATEGY: fetch GIT_SSL_NO_VERIFY: "true" GIT_SUBMODULE_STRATEGY: recursive GIT_LFS_SKIP_SMUDGE: 1 .docker-before-script: &docker_before_script # This is an anchor before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN http://$CI_REGISTRY .git-before-script: &git_before_script before_script: - git config --global user.name "CR (covid cron)" - git config --global user.email "beepbop@example.com" - url_host=`git remote get-url origin | sed -e "s/https:\/\/gitlab-ci-token:.*@//g"` - cd /tmp/ - git clone "https://oauth2:${CI_PUSH_TOKEN}@${url_host}" - cd covid-19-public-data - git lfs install --local - PATH=$PATH:~/.local/bin stages: - build - datasets-update - notebooks-update - finalize-update image_build: stage: build image: docker:stable except: - /^auto-update.*$/ - schedules <<: *docker_before_script script: - CI_COMMIT_SHA_7=$(echo $CI_COMMIT_SHA | cut -c1-7) - docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7 . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7 tags: - image-build update-build: stage: build image: docker:stable # only: # - schedules <<: *docker_before_script script: - docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-update . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-update tags: - image-build datasets: stage: datasets-update image: name: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-update entrypoint: [""] # only: # - schedules <<: *git_before_script script: - export BRANCH_NAME=auto-update-datasets-${CI_COMMIT_SHORT_SHA} - git checkout -b $BRANCH_NAME # - renku dataset update covid-19_jhu-csse # - renku dataset add covid-19_jhu-csse --force --source csse_covid_19_data/csse_covid_19_daily_reports https://github.com/CSSEGISandData/COVID-19.git # - renku dataset update covid-19-tweet-ids - renku dataset update openzh-covid-19 # - renku dataset update covid-19-italy # - renku dataset update covid-19-spain # - renku dataset update covid-19-us-nyt # - renku dataset add covid-19-ecdc -d covid-19-ecdc.csv https://opendata.ecdc.europa.eu/covid19/casedistribution/csv --force || true # - renku dataset add covid-19-chile -s data/*.csv -s data/covid19_chile.rds https://github.com/itoledor/coronavirus.git --force || true # - renku dataset add covidtracker https://ocgptweb.azurewebsites.net/CSVDownload -d covidtracker.csv --force || true # - renku rerun data/covidtracking/states-metadata.json data/covidtracking/states-daily.json - git push --set-upstream origin $BRANCH_NAME notebooks: stage: notebooks-update image: name: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-update entrypoint: [""] # only: # refs: # - schedules <<: *git_before_script script: - export BRANCH_NAME=auto-update-notebooks-${CI_COMMIT_SHORT_SHA} - git checkout auto-update-datasets-${CI_COMMIT_SHORT_SHA} - git checkout -b $BRANCH_NAME - renku update --with-siblings - git push --set-upstream origin $BRANCH_NAME finalize: stage: finalize-update image: name: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA-update entrypoint: [""] # only: # - schedules <<: *git_before_script when: always script: | set -x export BRANCH_NAME="auto-update"_$(date -u +"%Y-%m-%d_%H-%M") git checkout auto-update-notebooks-${CI_COMMIT_SHORT_SHA} || git checkout auto-update-datasets-${CI_COMMIT_SHORT_SHA} git rev-parse --abbrev-ref HEAD git checkout -b $BRANCH_NAME git push origin --delete auto-update-notebooks-${CI_COMMIT_SHORT_SHA} || true git push origin --delete auto-update-datasets-${CI_COMMIT_SHORT_SHA} || true git push origin $BRANCH_NAME BODY="{ \"id\": ${CI_PROJECT_ID}, \"source_branch\": \"${BRANCH_NAME}\", \"target_branch\": \"test-MR\", \"remove_source_branch\": true, \"title\": \"Automatic update - ${BRANCH_NAME}\" }"; MR_ID=$(curl -s -X POST "https://renkulab.io/gitlab/api/v4/projects/${CI_PROJECT_ID}/merge_requests" \ --header "PRIVATE-TOKEN: ${CI_PUSH_TOKEN}" \ --header "Content-Type: application/json" \ --data "${BODY}" | jq .iid) BODY="{ \"id\": ${CI_PROJECT_ID}, \"iid\": ${MR_ID}, \"should_remove_source_branch\": true, \"merge_when_pipeline_succeeds\": true. \"target_branch\": \"test-MR\" }"; RES=$(curl -s -X PUT "https://renkulab.io/gitlab/api/v4/projects/${CI_PROJECT_ID}/merge_requests/merge" \ --header "PRIVATE-TOKEN: ${CI_PUSH_TOKEN}" \ --header "Content-Type: application/json" \ --data "${BODY}") echo $RES