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

1250: rebuild containers in CI when dockerfiles change #1251

Merged
merged 5 commits into from
Feb 4, 2021

Conversation

cz4rs
Copy link
Contributor

@cz4rs cz4rs commented Feb 3, 2021

fixes #1250

@cz4rs
Copy link
Contributor Author

cz4rs commented Feb 3, 2021

note: 72d5254 tests the mechanism for only one build, update to azure-workflow-template.yml is required

@codecov
Copy link

codecov bot commented Feb 3, 2021

Codecov Report

❗ No coverage uploaded for pull request base (develop@48a8104). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##             develop    #1251   +/-   ##
==========================================
  Coverage           ?   81.23%           
==========================================
  Files              ?      738           
  Lines              ?    28211           
  Branches           ?        0           
==========================================
  Hits               ?    22917           
  Misses             ?     5294           
  Partials           ?        0           

@cz4rs cz4rs force-pushed the 1250-rebuild-containers-automatically branch 10 times, most recently from 6a79d31 to 47ad690 Compare February 3, 2021 14:35
@lifflander
Copy link
Collaborator

This looks great! Good idea on the implementation.

@cz4rs cz4rs force-pushed the 1250-rebuild-containers-automatically branch from 47ad690 to a21dca9 Compare February 3, 2021 21:39
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@cz4rs
Copy link
Contributor Author

cz4rs commented Feb 3, 2021

This looks great! Good idea on the implementation.

Thanks! This is almost ready, but there are still some things to clarify/consider:

  • we only check the content of last PR merged (develop) or current PR (branches) to see if dockerfiles were made
  • on develop this can cause problems if we don't update the images in registry (what if penultimate PR triggered rebuild, but the last one didn't? back to docker-compose pull)
  • luckily we already have Push container to registry task and it should work as intended after this PR is merged

note: Push container to registry doesn't seem to work on develop at the moment - we (always) pull, and then push the same image we've just pulled

  • clang-5.0 image was correctly built and pushed from this branch (see recently added libomp-dev on the screenshot below)
    image

TODO:

  • we should probably limit pushing to develop branch (any others? release branches require different tags probably)
  • all images are built if at least one dockerfile is changed - we could add more fine-grained detection / control, but honestly I don't think that added complexity if worth it (we don't change dockerfiles often)

@cz4rs cz4rs force-pushed the 1250-rebuild-containers-automatically branch from a21dca9 to a358d8d Compare February 3, 2021 23:09
@cz4rs cz4rs marked this pull request as ready for review February 3, 2021 23:09
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 3, 2021
Copy link
Collaborator

@lifflander lifflander left a comment

Choose a reason for hiding this comment

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

Looks great. I just had a question about the threading change here. Was that just to test that this is working? Isn't that what the removal of whitespace did?

ci/azure/azure-clang-5.0-ubuntu-mpich.yml Show resolved Hide resolved
Copy link
Contributor

@jstrzebonski jstrzebonski left a comment

Choose a reason for hiding this comment

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

Looks good to me.

@cz4rs
Copy link
Contributor Author

cz4rs commented Feb 3, 2021

15958a9 makes sure that we only push from develop branch.
I will merge this in the morning (CET) if the builds are green.

@cz4rs cz4rs force-pushed the 1250-rebuild-containers-automatically branch from ff7031b to 15958a9 Compare February 4, 2021 00:05
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 4, 2021
@DARMA-tasking DARMA-tasking deleted a comment from azure-pipelines bot Feb 4, 2021
@cz4rs cz4rs force-pushed the 1250-rebuild-containers-automatically branch from 15958a9 to 53595d6 Compare February 4, 2021 00:07
@azure-pipelines
Copy link

PR tests (nvidia cuda 10.1, ubuntu, mpich)

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<TestMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=MyCol, MsgT=TestMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<MyCol, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(155): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=MyCol, T=TestMsg, f=colHan, CbkT=vt::pipe::callback::cbunion::CallbackTyped<TestMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(116): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=MyCol, MsgT=TestMsg, f=colHan]" 
/vt/examples/callback/callback.cc(151): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb1DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb1DJacobi, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, T=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb1DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi1d_vt.cc(179): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb2DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb2DJacobi, vt::Index2D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, T=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb2DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi2d_vt.cc(221): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<Hello::ReduceMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=Hello, MsgT=Hello::ReduceMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<Hello, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=Hello, T=Hello::ReduceMsg, f=&Hello::done, CbkT=vt::pipe::callback::cbunion::CallbackTyped<Hello::ReduceMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=Hello, MsgT=Hello::ReduceMsg, f=&Hello::done]" 
/vt/examples/hello_world/hello_world_collection_reduce.cc(64): here

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

@azure-pipelines
Copy link

PR tests (nvidia cuda 11.0, ubuntu, mpich)

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/linear_model.cc(66): warning: integer conversion resulted in a change of sign

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<TestMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=MyCol, MsgT=TestMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<MyCol, TestMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<MyCol, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(155): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=MyCol, T=TestMsg, f=&colHan, CbkT=vt::pipe::callback::cbunion::CallbackTyped<TestMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(116): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=MyCol, MsgT=TestMsg, f=&colHan]" 
/vt/examples/callback/callback.cc(151): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb1DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb1DJacobi, LinearPb1DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb1DJacobi, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, T=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb1DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb1DJacobi, MsgT=LinearPb1DJacobi::ReduxMsg, f=&LinearPb1DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi1d_vt.cc(179): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<LinearPb2DJacobi::ReduxMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<LinearPb2DJacobi, LinearPb2DJacobi::ReduxMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<LinearPb2DJacobi, vt::Index2D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, T=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB, CbkT=vt::pipe::callback::cbunion::CallbackTyped<LinearPb2DJacobi::ReduxMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=LinearPb2DJacobi, MsgT=LinearPb2DJacobi::ReduxMsg, f=&LinearPb2DJacobi::checkCompleteCB]" 
/vt/examples/collection/jacobi2d_vt.cc(221): here

/vt/src/vt/pipe/callback/proxy_send/callback_proxy_send.h(61): warning: overloaded virtual function "vt::pipe::callback::CallbackBase<SignalT>::trigger_ [with SignalT=vt::pipe::signal::Signal<Hello::ReduceMsg>]" is only partially overridden in class "vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>"
          detected during:
            instantiation of class "vt::pipe::callback::CallbackProxySend<ColT, MsgT> [with ColT=Hello, MsgT=Hello::ReduceMsg]" 
/usr/include/c++/7/bits/unique_ptr.h(821): here
            instantiation of "std::_MakeUniq<_Tp>::__single_object std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=vt::pipe::callback::CallbackProxySend<Hello, Hello::ReduceMsg>, _Args=<const vt::HandlerType &, vt::vrt::VirtualElmProxyType<Hello, vt::Index1D> &>]" 
/vt/src/vt/pipe/pipe_manager_tl.impl.h(176): here
            instantiation of "CbkT vt::pipe::PipeManagerTL::makeCallbackSingleProxySend<ColT,T,f,CbkT>(ColT::ProxyType) [with ColT=Hello, T=Hello::ReduceMsg, f=&Hello::done, CbkT=vt::pipe::callback::cbunion::CallbackTyped<Hello::ReduceMsg>]" 
/vt/src/vt/pipe/pipe_manager.impl.h(121): here
            instantiation of "vt::Callback<MsgT> vt::pipe::PipeManager::makeSend<ColT,MsgT,f>(ColT::ProxyType) [with ColT=Hello, MsgT=Hello::ReduceMsg, f=&Hello::done]" 
/vt/examples/hello_world/hello_world_collection_reduce.cc(64): here

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

/vt/src/vt/vrt/collection/balance/model/raw_data.h(81): warning: integer conversion resulted in a change of sign

@cz4rs cz4rs merged commit 4ff10a3 into develop Feb 4, 2021
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.

rebuild containers in CI when dockerfiles change
3 participants