From a683d4182c3710c691f47852529f69c5f535162d Mon Sep 17 00:00:00 2001 From: Nick Bearson <nick.bearson@ssec.wisc.edu> Date: Wed, 14 Oct 2020 17:31:08 -0500 Subject: [PATCH] adds a .gitlab-ci.yml which builds the package and uploads artifacts. we also now use the master branch from glmtools. --- .gitlab-ci.yml | 68 ++++++++++++++++++++++++++++++++++++++++++ buildbucket/package.sh | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..21c9c53 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,68 @@ +# Define environment variables for all stages +variables: + # Tell docker images where the host docker daemon is + # and how to talk to it + DOCKER_TLS_CERTDIR: "" + DOCKER_HOST: "tcp://docker:2375" + BUILDBUCKET_IMAGE: $CI_REGISTRY_IMAGE/buildbucket + GRIDDED_GLM_IMAGE: $CI_REGISTRY_IMAGE/gridded_glm + +stages: + - buildbucket_build + - gridded_glm_build + - gridded_glm_tester_build + - test + - release + +create the Gridded GLM buildbucket: + stage: buildbucket_build + image: docker:19.03.1 + tags: + - docker + services: + - docker:19.03.1-dind + script: + - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build -f buildbucket/Dockerfile --tag $BUILDBUCKET_IMAGE:$CI_COMMIT_SHORT_SHA --cache-from $BUILDBUCKET_IMAGE:latest buildbucket/ + - docker push $BUILDBUCKET_IMAGE:$CI_COMMIT_SHORT_SHA + +create the Gridded GLM package: + stage: gridded_glm_build + image: docker:19.03.1 + tags: + - docker + services: + - docker:19.03.1-dind + script: + - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY + # Creates the gridded GLM package + - docker run --rm -v "${PWD}":/dock -v $PWD:/work/cspp-geo-gridded-glm $BUILDBUCKET_IMAGE:$CI_COMMIT_SHORT_SHA ./package.sh $CI_COMMIT_SHORT_SHA + # Create a simple Docker image with the gridded GLM package included + # TODO: this should probably be its own stage? + - docker build . -f Dockerfile -t $GRIDDED_GLM_IMAGE:$CI_COMMIT_SHORT_SHA + - docker push $GRIDDED_GLM_IMAGE:$CI_COMMIT_SHORT_SHA +# worry about this later; rsync isn't available in busybox. we probably need some refactoring to use a build image more directly & upload from there. +# # upload the package to /apollo/ via a limited-use key on espresso +# - rsync -auv -e "ssh -T -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -o ForwardAgent=no -i $NICKB_UPLOAD_KEY" cspp-geo-gridded-glm-$CI_COMMIT_SHORT_SHA.tar.xz nickb@espresso:/apollo/csppgeo/packages/gridded-glm/ci/cspp-geo-gridded-glm-$CI_COMMIT_SHORT_SHA.tar.xz + +push our images as latest tags: + stage: release + image: docker:19.03.1 + tags: + - docker + services: + - docker:19.03.1-dind + script: + - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY +# buildbucket + - docker pull $BUILDBUCKET_IMAGE:$CI_COMMIT_SHORT_SHA + - docker tag $BUILDBUCKET_IMAGE:$CI_COMMIT_SHORT_SHA $BUILDBUCKET_IMAGE:latest + - docker push $BUILDBUCKET_IMAGE:latest +# gridded_glm + - docker pull $GRIDDED_GLM_IMAGE:$CI_COMMIT_SHORT_SHA + - docker tag $GRIDDED_GLM_IMAGE:$CI_COMMIT_SHORT_SHA $GRIDDED_GLM_IMAGE:latest + - docker push $GRIDDED_GLM_IMAGE:latest + + only: + - tags + - master diff --git a/buildbucket/package.sh b/buildbucket/package.sh index 6c22178..cffb35e 100755 --- a/buildbucket/package.sh +++ b/buildbucket/package.sh @@ -26,7 +26,7 @@ fi pkg_name=cspp-geo-gridded-glm-${version} DIST=${DIST:-"/dock"} LMATOOLS_REF=${LMATOOLS_REF:-"minvaluegrids"} -GLMTOOLS_REF=${GLMTOOLS_REF:-"ugf-newgrid"} +GLMTOOLS_REF=${GLMTOOLS_REF:-"master"} GLMTOOLS_REPOS=${GLMTOOLS_REPOS:-"https://github.com/deeplycloudy/glmtools.git"} GGLM_REPOS=${GGLM_REPOS:-"https://gitlab.ssec.wisc.edu/cspp_geo/cspp-geo-gridded-glm.git"} GGLM_REF=${GGLM_REF:-"master"} -- GitLab