Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish gt-contrib artifacts automatically to SonaType via CircleCI #236

Merged
merged 1 commit into from Sep 27, 2019

Conversation

CloudNiner
Copy link
Contributor

@CloudNiner CloudNiner commented Sep 25, 2019

Overview

Switch from manual Bintray publishing to automated CI-driven publishing to SonaType, using the same general workflow currently in use on https://github.com/geotrellis/geotrellis-server and https://github.com/geotrellis/maml

TODO:

  • Hook up PR UI in GitHub to include a CircleCI "tests passing" check
  • Add a docker-compose container for the benchmark subproject in order to cleanup running benchmarks
  • Bump to Scala 2.12.10?

Demo

Screen Shot 2019-09-25 at 1 48 35 PM

Notes

See discussion on original issue regarding the choice of the machine executor that just runs the new local docker-compose setup: #222 (comment)

As part of this effort, I updated this repo to default to develop and protected both the develop and master branch.

I removed the TravisCI webhooks for this repo from the repo settings in GitHub. I also turned off all toggles that I could get to from the TravisCI dashboard. I believe TravisCI is purged from this repo, but it would be worth double-checking.

Kudos to @rbreslow for constructing a straightforward, reusable workflow to follow for this effort.

The first publish task I attempted ran into a 503 Service Temporarily Unavailable error for sonatype. Not sure how transient those are... https://circleci.com/gh/geotrellis/geotrellis-contrib/17

Testing Instructions

./scripts/test should complete, running vlm, gdal and slick tests inside Docker via docker-compose.

./scripts/benchmark should build and begin running. Once its running, feel free to kill, as on a typical laptop processor it will take a very long time (> 1hr) to complete.

The build for this branch should be green: https://circleci.com/gh/geotrellis/geotrellis-contrib/tree/feature%2Fawf%2Fci

Closes #222, Closes #122

@CloudNiner
Copy link
Contributor Author

@geotrellis/operations this is ready for an initial look. All the core work is done AFAIK.

Copy link
Contributor

@rbreslow rbreslow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm glad the workflow was pretty easy to decipher and carry over from maml and geotrellis-server.

Tests are passing. ./scripts/benchmark is able to produce a container image and begin running benchmarks.

A few minor comments, but otherwise, looks good 👍

build.sbt Outdated Show resolved Hide resolved
docker-compose.yml Show resolved Hide resolved
.circleci/config.yml Show resolved Hide resolved
scripts/benchmark Outdated Show resolved Hide resolved
Using the same general strategy as
geotrellis/geotrellis-server and geotrellis/maml

Update sbt runner to commit 5fd24eb
dwijnand/sbt-extras@5fd24eb

Switch tests to use a docker-compose setup
for ease of use and consistency with other
projects.
Tests should now be run from ./scripts/test

Add circleci config running scripts/cibuild
We use the latest available machine image so we
can run our existing docker-compose setup.
A writeup considering various options:
#222 (comment)

Update to azavea-hosted openjdk-gdal image

Publish build artifacts to OSS SonaType Nexus

Remove old Travis CI configuration

Run benchmarks with scripts/benchmark
and cleanup the order of operations in the Dockerfile
- Move all package installation to beginning and run
  in one step for better layer caching
- Move all external dependency additions before sbt
  and other ops to improve layer caching
- Reorder ops so we don't have to modify WORKDIR a bunch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Steamlined release process (like maml and GT Server) Improve TravisCI builds
3 participants