From d8233f58fbf69f5f36ba6f7d815cdbfff9b83703 Mon Sep 17 00:00:00 2001 From: Silvio Kunaschk Date: Sat, 11 May 2019 17:11:56 +0200 Subject: [PATCH] run Linux build jobs with docker container fix container reference fixed GCC container job fixed script PATH environment removed sudo from container build step check user in container install missing sudo in container fix script add missing pip package installation fix install package cmd try to debug env in container try fix pip errors removed duplicated cmd upgrade packages before install run pip --upgrade now don't upgrade pip use official ubuntu container fix pip install packages fix apt package add missing git add build=missing use ubuntu disco container fix PATH in build step add container clang build build with clang 8.0 fixed clang profile removed old clang job added autotools added libtool package try fix clang build set clang as CC and CXX --- ...ux_clang6.0 => conan_profile_linux_clang8} | 6 +- azure-pipelines.yml | 71 +++++++++++-------- 2 files changed, 47 insertions(+), 30 deletions(-) rename .ci/{conan_profile_linux_clang6.0 => conan_profile_linux_clang8} (65%) diff --git a/.ci/conan_profile_linux_clang6.0 b/.ci/conan_profile_linux_clang8 similarity index 65% rename from .ci/conan_profile_linux_clang6.0 rename to .ci/conan_profile_linux_clang8 index 7f25ac46..f65bd1ed 100644 --- a/.ci/conan_profile_linux_clang6.0 +++ b/.ci/conan_profile_linux_clang8 @@ -1,13 +1,15 @@ -# this is a conan profile for Linux Clang 6.0 +# this is a conan profile for Linux Clang 8 [settings] os=Linux os_build=Linux arch=x86_64 arch_build=x86_64 compiler=clang -compiler.version=6.0 +compiler.version=8 compiler.libcxx=libstdc++11 build_type=Release [options] [build_requires] [env] +CC=clang +CXX=clang++ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cced5e10..cf687353 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,60 +7,75 @@ variables: conan-pkg: "conan" cpt-pkg: "conan_package_tools" bpt-pkg: "bincrafters_package_tools" + linux-deps: "python3-setuptools python3-pip build-essential automake autoconf libtool cmake gcc g++ clang ninja-build git" # Xcode Version overview: https://gist.github.com/yamaya/2924292 # available versions: https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/macos/macos-10.14-Readme.md XCODE_VERSION: 10.2 +# https://docs.microsoft.com/en-us/azure/devops/pipelines/process/container-phases?view=azure-devops&tabs=yaml jobs: - # Todo - run Linux build in a container with a more recent Ubuntu version, maybe also try CentOS and Arch builds? + # maybe also try CentOS and Arch builds? - job: LinuxGCC pool: - vmImage: Ubuntu-16.04 + vmImage: 'ubuntu-16.04' + # add missing sudo to container - https://github.com/Microsoft/azure-pipelines-agent/issues/2043 + container: + image: ubuntu:disco + options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro" steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: $(python-version) - script: | - export PATH="$PATH:/home/vsts/.local/bin" - sudo apt install -y python3-setuptools - pip install --user --upgrade pip - pip install --user $(conan-pkg) - pip install --user $(cpt-pkg) $(bpt-pkg) + /tmp/docker exec -t -u 0 ci-container \ + sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo" + displayName: install sudo in container + - script: | + export PATH="$PATH:$HOME/.local/bin" + sudo apt install -y $(linux-deps) + pip3 install --user $(conan-pkg) + pip3 install --user $(cpt-pkg) $(bpt-pkg) conan user conan remote add conan-community https://api.bintray.com/conan/conan-community/conan conan remote add qno https://api.bintray.com/conan/qno/conan-public conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan + displayName: setup dependencies + - script: | + export PATH="$PATH:$HOME/.local/bin" pushd . mkdir build && cd build - conan install .. -s compiler.libcxx=libstdc++11 -s build_type=Release - cmake -DCMAKE_BUILD_TYPE=Release .. - VERBOSE=1 make -j + conan install .. -s compiler.libcxx=libstdc++11 -s build_type=Release --build=missing + cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. + ninja -v displayName: build VCVRack - job: LinuxClang pool: - vmImage: Ubuntu-16.04 + vmImage: 'ubuntu-16.04' + container: + image: ubuntu:disco + options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro" steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: $(python-version) - script: | - export PATH="$PATH:/home/vsts/.local/bin" - export CC=clang-6.0 - export CXX=clang++-6.0 - sudo apt install -y python3-setuptools - pip install --user --upgrade pip - pip install --user $(conan-pkg) - pip install --user $(cpt-pkg) $(bpt-pkg) + /tmp/docker exec -t -u 0 ci-container \ + sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo" + displayName: install sudo in container + - script: | + export PATH="$PATH:$HOME/.local/bin" + sudo apt install -y $(linux-deps) + pip3 install --user $(conan-pkg) + pip3 install --user $(cpt-pkg) $(bpt-pkg) conan user conan remote add conan-community https://api.bintray.com/conan/conan-community/conan conan remote add qno https://api.bintray.com/conan/qno/conan-public conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan + displayName: setup dependencies + - script: | + export PATH="$PATH:$HOME/.local/bin" + export CC=clang + export CXX=clang++ pushd . mkdir build && cd build - conan install .. -s build_type=Release --profile ../.ci/conan_profile_linux_clang6.0 --build=missing - cmake -DCMAKE_BUILD_TYPE=Release .. - VERBOSE=1 make -j + conan install .. -s build_type=Release --profile ../.ci/conan_profile_linux_clang8 --build=missing + cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. + ninja -v displayName: build VCVRack - job: MacOS1014 pool: @@ -71,7 +86,7 @@ jobs: versionSpec: $(python-version) - script: | /bin/bash -c "sudo xcode-select -s /Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer" - export PATH=$PATH:$HOME/.local/bin + export PATH="$HOME/.local/bin:$PATH" pip install --upgrade pip brew update || brew update brew install autoconf automake libtool pkg-config