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

Polish Azure Pipelines build #1810

Closed
10 tasks done
sormuras opened this issue Mar 12, 2019 · 22 comments
Closed
10 tasks done

Polish Azure Pipelines build #1810

sormuras opened this issue Mar 12, 2019 · 22 comments

Comments

@sormuras
Copy link
Member

sormuras commented Mar 12, 2019

After-math for #1807 and closes #1795.

Deliverables

@sormuras
Copy link
Member Author

/cc @ethomson @brunoborges

sormuras added a commit that referenced this issue Mar 12, 2019
@sormuras
Copy link
Member Author

Added the "overall pipeline status badge" via

It is possible to show off all (or some) jobs in a table:

  • Linux (OpenJDK 11) 🤜 Build Status
  • Linux (OpenJDK 12) 🤜 Build Status
  • Linux (OpenJDK 13) 🤜 Build Status

sormuras added a commit that referenced this issue Mar 12, 2019
@sormuras
Copy link
Member Author

sormuras commented Mar 12, 2019

Click Advanced settings in the Get Sources task to see some of the above options.

I can't find the "Advanced settings..." described here https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git?view=azure-devops to activate the "Shallow fetch" option.

sormuras added a commit that referenced this issue Mar 12, 2019
This commit will be reverted when credentials are stored in the Azure
Pipeline account.

Addresses #1810
@ethomson
Copy link
Contributor

I can't find the "Advanced settings..." described here https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git?view=azure-devops to activate the "Shallow fetch" option.

Sorry for the confusion - we have two independent ways to configure CI, either the visual designer or the YAML. It's pretty much all or nothing (all visual designer or all YAML) and those instructions guide you to the visual designer path. We're using YAML which is right and true, so I opened #1812 to add the shallow clone rules to the YAML.

@sormuras
Copy link
Member Author

Understood.

We are trying to insert our secret credentials via UI right now. Looking forward to merge #1812 and proceed with the switch.

@sormuras
Copy link
Member Author

sormuras commented Mar 12, 2019

Current status

image

Todo

  • The two last jobs should only start if the five above were successfully executed.

@ethomson
Copy link
Contributor

The two last jobs should only start if the five above were successfully executed.

Should be something like:

- job: publish_artifacts
  displayName: Publish Snapshot Artifacts
  dependsOn:
  - linux_11
  - linux_12
  - Mac
  - Windows
  - coverage

@sormuras I can send a PR unless you're in the middle of this.

@sormuras
Copy link
Member Author

About to push it in a second... ;-)

sormuras added a commit that referenced this issue Mar 12, 2019
- "Linux (OpenJDK 11)" published its test results
- "Publish Snapshot Artifacts" is longer allowed to fail
- "Publish Snapshot Artifacts" depends on "Linux (OpenJDK 11)"
- "Update Snapshot Documentation" depends on "Linux (OpenJDK 11)"

Addresses #1810
@sormuras
Copy link
Member Author

See 6706691 ... chose linux_11 as single dependency for now.

@sormuras
Copy link
Member Author

sormuras commented Mar 12, 2019

"Not started" as expected...

image

@sormuras
Copy link
Member Author

@ethomson ... those two publish/update jobs (and the coverage job as well) are good candidates for a dedicated "Release Pipeline", aren't they?

@ethomson
Copy link
Contributor

those two publish/update jobs (and the coverage job as well) are good candidates for a dedicated "Release Pipeline", aren't they?

@sormuras - I actually would not in this case. There's a couple of reasons:

  1. Pipelines are really useful when you have additional levels of complexity. For example: if you want to deploy to a staging server, then QA, then production, pipelines help manage that. They're still useful for a single deployment like this but you're not taking advantage of a lot of the complex parts.

  2. It also adds a complication, related to the first point: since pipelines are created for a way to arbitrarily deploy artifacts, you need to build an artifact. So you'll probably run ./gradlew --scan publish -x check then zip up the artifacts and publish them. Then your release pipeline will take that zip and do the publish. So it's slower and has another moving piece.

  3. Release pipelines can't be defined as YAML (yet).

So, to be honest, I would keep this as-is for now, it's simpler and gets the job done. If you want to scale things up or increase the complexity then it makes sense to reconsider.

@sormuras
Copy link
Member Author

Keeping things as-is. Thanks for the details.

@sormuras
Copy link
Member Author

Updated deliverables with "clean up" entries.

@sormuras
Copy link
Member Author

Performance comparison

But

  • Travis spent 10 seconds to restore cached /home/travis/.gradle/caches scan
  • Azure spent 2 minutes 24 seconds on downloading plugins and dependencies scan

@sormuras
Copy link
Member Author

Caching is not yet supported at Azure Pipelines: https://devblogs.microsoft.com/devops/adding-caching-to-azure-pipelines/

@ethomson
Copy link
Contributor

VPffJLd

@marcphilipp
Copy link
Member

I guess we could build our own Docker image with a "pre-warmed" cache but it's probably not worth the complexity.

@sormuras
Copy link
Member Author

Let's wait for ... "SOON".

@sormuras
Copy link
Member Author

sormuras commented Mar 16, 2019

"Publish" jobs were executed although "Build+Test" jobs failed?

https://dev.azure.com/junit-team/junit5/_build/results?buildId=59

image

@ethomson
Copy link
Contributor

"Publish" jobs were executed although "Build+Test" jobs failed?

Sorry, that's my fault. I thought it was an accurate translation of the Travis but I may be wrong. Either way I didn't think through the logic very well. 😝

We should just need a succeeded() conditional, I can send a PR.

ethomson added a commit to ethomson/junit5 that referenced this issue Mar 16, 2019
sormuras pushed a commit that referenced this issue Mar 16, 2019
marcphilipp pushed a commit that referenced this issue Mar 16, 2019
This commit will be reverted when credentials are stored in the Azure
Pipeline account.

Addresses #1810
marcphilipp pushed a commit that referenced this issue Mar 16, 2019
- "Linux (OpenJDK 11)" published its test results
- "Publish Snapshot Artifacts" is longer allowed to fail
- "Publish Snapshot Artifacts" depends on "Linux (OpenJDK 11)"
- "Update Snapshot Documentation" depends on "Linux (OpenJDK 11)"

Addresses #1810
marcphilipp pushed a commit that referenced this issue Mar 16, 2019
marcphilipp pushed a commit that referenced this issue Mar 16, 2019
@marcphilipp
Copy link
Member

We'll look into caching dependencies in #1826.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants