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

Now using Travis stages to test, upload artifacts, and publish #17

Closed
wants to merge 14 commits into from

Conversation

jverbus
Copy link
Contributor

@jverbus jverbus commented May 27, 2020

Using Travis stages in this way ensures that all build versions are successful before we publish any artifacts. This is in contrast to the previous version where it was possible, but unlikely, for a new version to be published for the baseline dependencies (Spark 2.3.0 and Scala 2.11.8), even if another build using different Spark/Scala versions failed.

New build pipeline using Travis stages

The first "test" stage runs all build variations in parallel to ensure they succeed.

The second "upload" stage is a kludge to work around a limitation of Shipkit: mockito/shipkit#858. This second stage uploads all artifacts using the current project version defined in version.properties. This only runs if the code has been merged into the master branch.

The third "release" stage runs the Shipkit ciPerformRelease command. This (sadly, but inconsequently) re-uploads the baseline (Spark 2.3.0 and Scala 2.11.8) artifact, but it also pushes another commit to the GitHub repo adding version documentation, bumps the version in the version.properties file, and creates a git tag with the version number. This only runs if the code has been merged into the master branch.

Testing

I did some testing to verify the new stages definitions work. Here is a successful run when on a non-master branch:

https://travis-ci.org/github/linkedin/isolation-forest/builds/691611286

One can see only the "test" stage jobs run.

Here is a run (intentionally killed) that simulates the stages when on master:

https://travis-ci.org/github/linkedin/isolation-forest/builds/691610972

As you can see, the test and upload stages have three jobs as expected, and the release stage has one job.

We won't be able to actually validate with a proper release until it is merged to master.

@jverbus jverbus requested a review from fastier-li May 27, 2020 06:36
@jverbus jverbus self-assigned this May 27, 2020
@jverbus jverbus added the enhancement New feature or request label May 27, 2020
@jverbus jverbus marked this pull request as draft May 27, 2020 06:54
@jverbus jverbus removed the request for review from fastier-li May 27, 2020 06:54
@jverbus jverbus closed this May 27, 2020
@jverbus jverbus deleted the travis-stages branch May 28, 2020 00:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant