From 8a560a5a66977b7d0165eeebcc2e8b42bde670eb Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Wed, 4 Mar 2020 18:32:41 +0300 Subject: [PATCH 1/4] Initial post-commit checks implementation Signed-off-by: Alexander Batashev --- .github/workflows/linux_post_commit.yml | 49 +++++++++++++++++++++++++ buildbot/configure.py | 11 +++++- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/linux_post_commit.yml diff --git a/.github/workflows/linux_post_commit.yml b/.github/workflows/linux_post_commit.yml new file mode 100644 index 0000000000000..571ab7f004a73 --- /dev/null +++ b/.github/workflows/linux_post_commit.yml @@ -0,0 +1,49 @@ +name: Linux Post Commit Checks + +on: + push: + branches: + - sycl + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + path: src + - name: Install Ubuntu deps + run: sudo apt install -y ninja-build + - name: Build + shell: bash + run: | + mkdir -p $GITHUB_WORKSPACE/build + cd $GITHUB_WORKSPACE/build + python $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release --no-ocl + cmake --build . --target sycl-toolchain -- -j3 + - name: check-llvm + if: false + run: | + cd $GITHUB_WORKSPACE/build + cmake --build . --target check-llvm + - name: check-clang + run: | + cd $GITHUB_WORKSPACE/build + cmake --build . --target check-clang + - name: check-sycl + run: | + cd $GITHUB_WORKSPACE/build + cmake --build . --target check-sycl + - name: Install + run: | + cd $GITHUB_WORKSPACE/build + cmake --build . --target deploy-sycl-toolchain + - name: Pack + run: tar -czvf llvm_sycl.tar.gz $GITHUB_WORKSPACE/build/install + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: sycl_linux + path: llvm_sycl.tar.gz + diff --git a/buildbot/configure.py b/buildbot/configure.py index c0e4dc3eb6d31..64aacbb5a4f11 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -56,10 +56,16 @@ def do_configure(args): "-DSYCL_ENABLE_WERROR=ON", "-DCMAKE_INSTALL_PREFIX={}".format(install_dir), "-DSYCL_INCLUDE_TESTS=ON", # Explicitly include all kinds of SYCL tests. - "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_doxygen), - llvm_dir + "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_doxygen) ] + if not args.no_ocl: + cmake_cmd.extend([ + "-DOpenCL_INCLUDE_DIR={}".format(ocl_header_dir), + "-DOpenCL_LIBRARY={}".format(icd_loader_lib)]) + + cmake_cmd.append(llvm_dir) + print(cmake_cmd) try: @@ -90,6 +96,7 @@ def main(): parser.add_argument("--cuda", action='store_true', help="switch from OpenCL to CUDA") parser.add_argument("--assertions", action='store_true', help="build with assertions") parser.add_argument("--docs", action='store_true', help="build Doxygen documentation") + parser.add_argument("--no-ocl", action='store_true', help="download OpenCL deps via CMake") args = parser.parse_args() From 4ee3269a5948b4f7eb6e06991ba4f9616d9c8a78 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 12 Mar 2020 21:53:14 +0300 Subject: [PATCH 2/4] Add different configurations Signed-off-by: "Alexander Batashev " --- .github/workflows/linux_post_commit.yml | 103 ++++++++++++++---------- buildbot/configure.py | 11 ++- 2 files changed, 70 insertions(+), 44 deletions(-) diff --git a/.github/workflows/linux_post_commit.yml b/.github/workflows/linux_post_commit.yml index 571ab7f004a73..0f8b605b5f68c 100644 --- a/.github/workflows/linux_post_commit.yml +++ b/.github/workflows/linux_post_commit.yml @@ -4,46 +4,67 @@ on: push: branches: - sycl - jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - path: src - - name: Install Ubuntu deps - run: sudo apt install -y ninja-build - - name: Build - shell: bash - run: | - mkdir -p $GITHUB_WORKSPACE/build - cd $GITHUB_WORKSPACE/build - python $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \ - -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release --no-ocl - cmake --build . --target sycl-toolchain -- -j3 - - name: check-llvm - if: false - run: | - cd $GITHUB_WORKSPACE/build - cmake --build . --target check-llvm - - name: check-clang - run: | - cd $GITHUB_WORKSPACE/build - cmake --build . --target check-clang - - name: check-sycl - run: | - cd $GITHUB_WORKSPACE/build - cmake --build . --target check-sycl - - name: Install - run: | - cd $GITHUB_WORKSPACE/build - cmake --build . --target deploy-sycl-toolchain - - name: Pack - run: tar -czvf llvm_sycl.tar.gz $GITHUB_WORKSPACE/build/install - - name: Upload artifacts - uses: actions/upload-artifact@v1 - with: - name: sycl_linux - path: llvm_sycl.tar.gz + check: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + config: ["Default", "SharedLibs", "Assertions"] + + steps: + - uses: actions/checkout@v2 + with: + path: src + - name: Install Ubuntu deps + run: sudo apt install -y doxygen graphviz ninja-build + - name: Configure + run: | + CONFIG=${{ matrix.config }} + case $CONFIG in + Default) + export ARGS="" + ;; + SharedLibs) + export ARGS="--shared-libs" + ;; + Assertiosn) + export ARGS="--assertions" + ;; + esac + mkdir -p $GITHUB_WORKSPACE/build + cd $GITHUB_WORKSPACE/build + python3 $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release --no-ocl $ARGS + - name: Compile + run: | + python3 $GITHUB_WORKSPACE/src/buildbot/compile.py -w %GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build + - name: check-llvm + if: always() + run: | + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm + - name: check-clang + if: always() + run: | + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-clang + - name: check-sycl + if: always() + run: | + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-sycl + - name: check-llvm-spirv + if: always() + run: | + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm-spirv + - name: Pack + run: tar -czvf llvm_sycl.tar.gz -C $GITHUB_WORKSPACE/build/install . + - name: Upload artifacts + uses: actions/upload-artifact@v1 + with: + name: sycl_linux_${{ matrix.config }} + path: llvm_sycl.tar.gz diff --git a/buildbot/configure.py b/buildbot/configure.py index 64aacbb5a4f11..88daa315cafba 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -18,6 +18,7 @@ def do_configure(args): sycl_build_pi_cuda = 'OFF' llvm_enable_assertions = 'ON' llvm_enable_doxygen = 'OFF' + llvm_build_shared_libs = 'OFF' if platform.system() == 'Linux': icd_loader_lib = os.path.join(icd_loader_lib, "libOpenCL.so") @@ -36,6 +37,9 @@ def do_configure(args): if args.docs: llvm_enable_doxygen = 'ON' + if args.shared_libs: + llvm_build_shared_libs = 'ON' + install_dir = os.path.join(args.obj_dir, "install") cmake_cmd = [ @@ -56,7 +60,9 @@ def do_configure(args): "-DSYCL_ENABLE_WERROR=ON", "-DCMAKE_INSTALL_PREFIX={}".format(install_dir), "-DSYCL_INCLUDE_TESTS=ON", # Explicitly include all kinds of SYCL tests. - "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_doxygen) + "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_doxygen), + "-DBUILD_SHARED_LIBS={}".format(llvm_build_shared_libs), + llvm_dir ] if not args.no_ocl: @@ -64,8 +70,6 @@ def do_configure(args): "-DOpenCL_INCLUDE_DIR={}".format(ocl_header_dir), "-DOpenCL_LIBRARY={}".format(icd_loader_lib)]) - cmake_cmd.append(llvm_dir) - print(cmake_cmd) try: @@ -97,6 +101,7 @@ def main(): parser.add_argument("--assertions", action='store_true', help="build with assertions") parser.add_argument("--docs", action='store_true', help="build Doxygen documentation") parser.add_argument("--no-ocl", action='store_true', help="download OpenCL deps via CMake") + parser.add_argument("--shared-libs", action='store_true', help="Build shared libraries") args = parser.parse_args() From 3c52acfa2b351fe648f65fbec0c6f3ded79e2b6f Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 13 Mar 2020 16:47:31 +0300 Subject: [PATCH 3/4] Fix yaml syntax Signed-off-by: Alexander Batashev --- .github/workflows/linux_post_commit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux_post_commit.yml b/.github/workflows/linux_post_commit.yml index 0f8b605b5f68c..74e0c8a4e7805 100644 --- a/.github/workflows/linux_post_commit.yml +++ b/.github/workflows/linux_post_commit.yml @@ -12,7 +12,7 @@ jobs: matrix: config: ["Default", "SharedLibs", "Assertions"] - steps: + steps: - uses: actions/checkout@v2 with: path: src From 97e43020b64a65b3909f536b6f37a65f9f12abee Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 13 Mar 2020 17:11:05 +0300 Subject: [PATCH 4/4] Apply suggestions Signed-off-by: Alexander Batashev --- .github/workflows/linux_post_commit.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linux_post_commit.yml b/.github/workflows/linux_post_commit.yml index 74e0c8a4e7805..1180493d4dfae 100644 --- a/.github/workflows/linux_post_commit.yml +++ b/.github/workflows/linux_post_commit.yml @@ -17,7 +17,7 @@ jobs: with: path: src - name: Install Ubuntu deps - run: sudo apt install -y doxygen graphviz ninja-build + run: sudo apt install -y ninja-build - name: Configure run: | CONFIG=${{ matrix.config }} @@ -38,27 +38,27 @@ jobs: -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release --no-ocl $ARGS - name: Compile run: | - python3 $GITHUB_WORKSPACE/src/buildbot/compile.py -w %GITHUB_WORKSPACE \ + python3 $GITHUB_WORKSPACE/src/buildbot/compile.py -w $GITHUB_WORKSPACE \ -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build - name: check-llvm if: always() run: | - python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \ -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm - name: check-clang if: always() run: | - python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \ -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-clang - name: check-sycl if: always() run: | - python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \ -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-sycl - name: check-llvm-spirv if: always() run: | - python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w %GITHUB_WORKSPACE \ + python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \ -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm-spirv - name: Pack run: tar -czvf llvm_sycl.tar.gz -C $GITHUB_WORKSPACE/build/install .