[U-Boot] [PATCH v2 8/8] Add Micirosoft Azure pipelines configuration

Bin Meng bmeng.cn at gmail.com
Thu Oct 24 15:31:30 UTC 2019


On Thu, Oct 24, 2019 at 11:10 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Tom,
>
> On Thu, Oct 24, 2019 at 11:01 PM Tom Rini <trini at konsulko.com> wrote:
> >
> > On Wed, Oct 23, 2019 at 08:11:52PM -0700, Bin Meng wrote:
> >

Oops, just noticed a typo in the commit summary. Will correct it in v3.

> > > Microsoft Azure Pipelines provides unlimited CI/CD minutes and 10
> > > parallel jobs to every open source project for free [1].
> > >
> > > This adds a configuration file for Azure Pipelines to utilize the
> > > free Windows VM hosted by Microsoft to ensure no build broken in
> > > building U-Boot host tools for Windows.
> > >
> > > [1] https://azure.microsoft.com/en-us/blog/announcing-azure-pipelines-with-unlimited-ci-cd-minutes-for-open-source/
> > >
> > > Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> > >
> > > ---
> > > See the build result at:
> > > https://dev.azure.com/bmeng/GitHub/_build/results?buildId=53
> > >
> > > Changes in v2:
> > > - new patch: Add Micirosoft Azure pipelines configuration
> > >
> > >  azure-pipelines.yml | 35 +++++++++++++++++++++++++++++++++++
> > >  1 file changed, 35 insertions(+)
> > >  create mode 100644 azure-pipelines.yml
> >
> > Thanks a lot for doing this.  I'm starting to look at what's needed so
> > that I can also run this automatically and perhaps evaluate it for other
> > uses in U-Boot as well.  One thing I would like to change is that it
> > looks like under pipeline settings we can specify the file and I'd like
> > to call this ".azure-pipelines.yml" instead to match travis/gitlab
> > files.
>
> I named this as I see examples from other open source projects have
> such a name. Let me try ".azure-pipelines.yml".

I tried to rename it to ".azure-pipelines.yml", but the Azure
pipelines does not recognize it.

>
> >
> > > diff --git a/azure-pipelines.yml b/azure-pipelines.yml
> > > new file mode 100644
> > > index 0000000..cc0514b
> > > --- /dev/null
> > > +++ b/azure-pipelines.yml
> > > @@ -0,0 +1,35 @@
> > > +jobs:
> > > +  - job: tools_only_windows
> > > +    displayName: 'Ensure host tools build for Windows'
> > > +    pool:
> > > +      vmImage: vs2015-win2012r2
> > > +    strategy:
> > > +      matrix:
> > > +        i686:
> > > +          MSYS_DIR: msys32
> > > +          BASE_REPO: msys2-ci-base-i686
> > > +        x86_64:
> > > +          MSYS_DIR: msys64
> > > +          BASE_REPO: msys2-ci-base
> > > +    steps:
> > > +      - script: |
> > > +          git clone https://github.com/msys2/$(BASE_REPO).git %CD:~0,2%\$(MSYS_DIR)
> > > +        displayName: 'Install MSYS2'
> > > +      - script: |
> > > +          set PATH=%CD:~0,2%\$(MSYS_DIR)\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
> > > +          %CD:~0,2%\$(MSYS_DIR)\usr\bin\pacman --noconfirm -Syyuu
> > > +        displayName: 'Update MSYS2'
> > > +      - script: |
> > > +          set PATH=%CD:~0,2%\$(MSYS_DIR)\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
> > > +          %CD:~0,2%\$(MSYS_DIR)\usr\bin\pacman --noconfirm --needed -S make gcc bison diffutils openssl-devel
> > > +        displayName: 'Install Toolchain'
> > > +      - script: |
> > > +          set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
> > > +          echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh
> > > +          %CD:~0,2%\$(MSYS_DIR)\usr\bin\bash -lc "bash build-tools.sh"
> > > +        displayName: 'Build Host Tools'
> > > +        env:
> > > +          # Tell MSYS2 we need a POSIX emulation layer
> > > +          MSYSTEM: MSYS
> > > +          # Tell MSYS2 not to ‘cd’ our startup directory to HOME
> > > +          CHERE_INVOKING: yes
> >
> > While I start understanding overall syntax, is this particular style one
> > that would allow us to add in more jobs, like say all of the ones we do
> > in GitLab, and in that staged fashion (do all of the testsuites, then
> > test.py runs then world build)?  Thanks!
>
> Yes, it supports concepts like pipeline / stage / job. A pipeline is
> composed of stages, and only when the first stage finishes can the
> second stage start. A stage is composed of jobs.

Jobs can be paralleled executed. Up to 10 jobs for free.

> Please see https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema

Regards,
Bin


More information about the U-Boot mailing list