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

[FLINK-13978][build system] Add experimental support for building on Azure Pipelines #10976

Closed
wants to merge 5 commits into from

Conversation

rmetzger
Copy link
Contributor

What is the purpose of the change

This pull request adds support for building and testing Flink on Azure Pipelines.
There are two entry files (build definitions) in this pull request
a) azure-pipelines.yml for the use with free Azure Pipelines accounts (executes all tests with default parameters)
b) tools/azure-pipelines/build-apache-repo.yml is a build definition specifically for the apache/flink repo. It uses a custom build machines through the flink-ci/flink repository. These machines have a lot of performance, thus providing faster build times.

Both entry files rely on the same build job definitions in tools/azure-pipelines/jobs-template.yml.
In addition to that, there are some utilities for running tests on Azure added in this PR. Travis test execution should be unaffected by this change.

Verifying this change

Note: e2e test execution does currently fail, due to an issue with minikube.

Does this pull request potentially affect one of the following parts:

  • this PR only affects the build system, potentially Travis.

Documentation

(work in progress) documentation is available here: https://cwiki.apache.org/confluence/display/FLINK/%5Bpreview%5D+Azure+Pipelines

@flinkbot
Copy link
Collaborator

Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community
to review your pull request. We will use this comment to track the progress of the review.

Automated Checks

Last check on commit 322bf18 (Thu Jan 30 15:17:40 UTC 2020)

Warnings:

  • No documentation files were touched! Remember to keep the Flink docs up to date!

Mention the bot in a comment to re-run the automated checks.

Review Progress

  • ❓ 1. The [description] looks good.
  • ❓ 2. There is [consensus] that the contribution should go into to Flink.
  • ❓ 3. Needs [attention] from.
  • ❓ 4. The change fits into the overall [architecture].
  • ❓ 5. Overall code [quality] is good.

Please see the Pull Request Review Guide for a full explanation of the review process.


The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required Bot commands
The @flinkbot bot supports the following commands:

  • @flinkbot approve description to approve one or more aspects (aspects: description, consensus, architecture and quality)
  • @flinkbot approve all to approve all aspects
  • @flinkbot approve-until architecture to approve everything until architecture
  • @flinkbot attention @username1 [@username2 ..] to require somebody's attention
  • @flinkbot disapprove architecture to remove an approval you gave earlier

@flinkbot
Copy link
Collaborator

flinkbot commented Jan 30, 2020

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run travis re-run the last Travis build
  • @flinkbot run azure re-run the last Azure build

Copy link
Contributor

@zentol zentol left a comment

Choose a reason for hiding this comment

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

Did a quick skim, will do a more thorough review another time.

flink-end-to-end-tests/test-scripts/kafka-common.sh Outdated Show resolved Hide resolved
tools/travis_watchdog.sh Outdated Show resolved Hide resolved
tools/travis/setup_maven.sh Outdated Show resolved Hide resolved
tools/travis/setup_maven.sh Outdated Show resolved Hide resolved
azure-pipelines.yml Outdated Show resolved Hide resolved
tools/azure-pipelines/build-apache-repo.yml Outdated Show resolved Hide resolved
tools/azure_controller.sh Outdated Show resolved Hide resolved
tools/travis_watchdog.sh Outdated Show resolved Hide resolved
@zentol
Copy link
Contributor

zentol commented Jan 30, 2020

Do we have to make any changes to CiBot?

@rmetzger
Copy link
Contributor Author

Do we have to make any changes to CiBot?

Not that I'm aware of. If we want to trigger e2e tests through CiBot, the variable "MODE=e2e" needs to be passed. But I can change that to whatever you like.

Copy link
Contributor

@zentol zentol left a comment

Choose a reason for hiding this comment

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

second round

azure-pipelines.yml Show resolved Hide resolved
azure-pipelines.yml Show resolved Hide resolved
tools/azure-pipelines/build-apache-repo.yml Outdated Show resolved Hide resolved
tools/azure-pipelines/build-apache-repo.yml Outdated Show resolved Hide resolved
azure-pipelines.yml Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Show resolved Hide resolved
tools/azure_controller.sh Outdated Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Outdated Show resolved Hide resolved
tools/azure-pipelines/build-apache-repo.yml Outdated Show resolved Hide resolved
tools/azure-pipelines/build-apache-repo.yml Show resolved Hide resolved
@rmetzger
Copy link
Contributor Author

rmetzger commented Feb 12, 2020

Thanks a lot for your review.
I have fixed the end to end test execution since the last time I responded to your comments.
Once #11067 is merged, all tests should pass on Azure.

Please let me know if you have further comments.
Subsequent changes are in separate commits, for easier review.

tools/azure-pipelines/setup_kubernetes.sh Show resolved Hide resolved
tools/azure_controller.sh Outdated Show resolved Hide resolved
tools/azure_controller.sh Outdated Show resolved Hide resolved
tools/azure_controller.sh Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Outdated Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Show resolved Hide resolved
tools/azure-pipelines/jobs-template.yml Show resolved Hide resolved
@rmetzger
Copy link
Contributor Author

I believe I have reacted to all your comments. Please let me know if there's more feedback.
I re-enabled the google mirror. Let's see if this build is passing: https://dev.azure.com/rmetzger/Flink/_build/results?buildId=5129&view=results

Do we have to make any changes to CiBot?

Maybe you actually need to do a minor change in there, as the name of the builds has changed.

@zentol
Copy link
Contributor

zentol commented Feb 13, 2020

Maybe you actually need to do a minor change in there, as the name of the builds has changed.

Good to know; it's just a simple configuration change that I can already apply. Will they be called like in the build you linked? (compile_ci_build, e2e_ci_build, test_ci_*)

@zentol
Copy link
Contributor

zentol commented Feb 13, 2020

I believe I have reacted to all your comments.

You missed #10976 (comment)

@rmetzger
Copy link
Contributor Author

I have updated this, the GitHub UI just doesn't show it next to your review comment:
image

@zentol
Copy link
Contributor

zentol commented Feb 13, 2020

I have seen that, but that's not a reason. You're explaining what you are doing, not why.

tools/azure_controller.sh Outdated Show resolved Hide resolved
@zentol
Copy link
Contributor

zentol commented Feb 14, 2020

[FAIL] 'State Migration end-to-end test from 1.6' failed after 0 minutes and 0 seconds! Test exited with exit code 1

/home/vsts/work/1/s/flink-end-to-end-tests/test-scripts/common.sh: line 414: /bin/stop-cluster.sh: No such file or directory
rm: cannot remove '/lib/terminfo/x/xterm-mono': Permission denied
rm: cannot remove '/lib/terminfo/x/xterm-debian': Permission denied

You weren't kidding when you said the tests are invasive :P

@rmetzger
Copy link
Contributor Author

Maybe you actually need to do a minor change in there, as the name of the builds has changed.

Good to know; it's just a simple configuration change that I can already apply. Will they be called like in the build you linked? (compile_ci_build, e2e_ci_build, test_ci_*)

Yes

@zentol
Copy link
Contributor

zentol commented Feb 14, 2020

I have adjusted CiBot; if everything is setup correctly it should start linking azure builds in this PR for new commits.

@rmetzger
Copy link
Contributor Author

Awesome, thanks

@rmetzger rmetzger force-pushed the FLINK-13978-pr branch 3 times, most recently from da5a1bf to af8c961 Compare February 16, 2020 13:13
@rmetzger rmetzger force-pushed the FLINK-13978-pr branch 2 times, most recently from ae57643 to 7c444b5 Compare February 16, 2020 16:49
Copy link
Contributor

@zentol zentol left a comment

Choose a reason for hiding this comment

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

+1

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