From 6292c2783f66e1fd61d4aeee07b03f7cd53a80e3 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 13 Feb 2020 18:00:28 +0300 Subject: [PATCH 1/6] [SYCL] Enable doc generation via GitHub Pages Signed-off-by: Alexander Batashev --- .github/workflows/gh_pages.yml | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/gh_pages.yml diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml new file mode 100644 index 0000000000000..68720a0abc7b1 --- /dev/null +++ b/.github/workflows/gh_pages.yml @@ -0,0 +1,47 @@ +name: GitHub Pages + +on: + schedule: + - cron: 0 1 * * * + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + run: | + mkdir -p $GITHUB_WORKSPACE/repo + cd $GITHUB_WORKSPACE/repo + git clone https://github.com/$GITHUB_REPOSITORY . + - name: Install deps + run: sudo apt-get install -y doxygen graphviz ssh + - name: Build Docs + run: | + mkdir -p $GITHUB_WORKSPACE/build + cd $GITHUB_WORKSPACE/build + cmake -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_EXTERNAL_PROJECTS="llvm-spirv;sycl" \ + -DLLVM_ENABLE_PROJECTS="clang;llvm-spirv;sycl" \ + -DLLVM_EXTERNAL_SYCL_SOURCE_DIR=$GITHUB_WORKSPACE/repo/sycl \ + -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=$GITHUB_WORKSPACE/repo/llvm-spirv \ + -DLLVM_ENABLE_DOXYGEN=ON \ + $GITHUB_WORKSPACE/repo/llvm + cmake --build . --target doxygen-sycl + - name: Deploy + env: + SSH_KEY: ${{secrets.ACTIONS_DEPLOY_KEY}} + run: | + mkdir -p ~/.ssh + echo "$SSH_KEY" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + eval "$(ssh-agent -s)" + ssh-add -k ~/.ssh/id_rsa + mkdir -p $GITHUB_WORKSPACE/docs + cd $GITHUB_WORKSPACE/docs + git clone --single-branch --branch gh-pages git@github.com:$GITHUB_REPOSITORY.git . + yes | \cp -rf $GITHUB_WORKSPACE/build/tools/sycl/doc/doxygen/html/* . + git config --global user.name "iclsrc" + git config --global user.email "ia.compiler.tools.git@intel.com" + git add . + git diff-index --quiet HEAD || git commit -m "Update docs" -s + git push From 0c2368c410df324a9d5830ca666edc3854e90699 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 25 Feb 2020 13:33:52 +0300 Subject: [PATCH 2/6] Store docs in a separate repo Signed-off-by: Alexander Batashev --- .github/workflows/gh_pages.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml index 68720a0abc7b1..72f14f2435319 100644 --- a/.github/workflows/gh_pages.yml +++ b/.github/workflows/gh_pages.yml @@ -1,4 +1,4 @@ -name: GitHub Pages +name: Generate Doxygen documentation on: schedule: @@ -8,11 +8,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout - run: | - mkdir -p $GITHUB_WORKSPACE/repo - cd $GITHUB_WORKSPACE/repo - git clone https://github.com/$GITHUB_REPOSITORY . + - uses: actions/checkout@v2 + with: + path: repo - name: Install deps run: sudo apt-get install -y doxygen graphviz ssh - name: Build Docs @@ -38,7 +36,7 @@ jobs: ssh-add -k ~/.ssh/id_rsa mkdir -p $GITHUB_WORKSPACE/docs cd $GITHUB_WORKSPACE/docs - git clone --single-branch --branch gh-pages git@github.com:$GITHUB_REPOSITORY.git . + git clone --single-branch --branch gh-pages git@github.com:intel/llvm-docs.git . yes | \cp -rf $GITHUB_WORKSPACE/build/tools/sycl/doc/doxygen/html/* . git config --global user.name "iclsrc" git config --global user.email "ia.compiler.tools.git@intel.com" From b97f3cc8bede6596ce0689ce54e8eac3dce1f0e8 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 25 Feb 2020 13:48:28 +0300 Subject: [PATCH 3/6] Checkout sycl branch Signed-off-by: Alexander Batashev --- .github/workflows/gh_pages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml index 72f14f2435319..1d6fe7e972a84 100644 --- a/.github/workflows/gh_pages.yml +++ b/.github/workflows/gh_pages.yml @@ -10,6 +10,7 @@ jobs: steps: - uses: actions/checkout@v2 with: + ref: 'sycl' path: repo - name: Install deps run: sudo apt-get install -y doxygen graphviz ssh From c85c6ade217df3f39074372c0f46d1c7217454ad Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Tue, 25 Feb 2020 16:46:27 +0300 Subject: [PATCH 4/6] React to comments Signed-off-by: Alexander Batashev --- .github/workflows/gh_pages.yml | 17 +++++++---------- buildbot/configure.py | 1 + 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml index 1d6fe7e972a84..225f84c5dd351 100644 --- a/.github/workflows/gh_pages.yml +++ b/.github/workflows/gh_pages.yml @@ -10,21 +10,20 @@ jobs: steps: - uses: actions/checkout@v2 with: - ref: 'sycl' + ref: sycl path: repo + - uses: actions/checkout@v2 + with: + repository: intel/llvm-docs + path: docs - name: Install deps run: sudo apt-get install -y doxygen graphviz ssh - name: Build Docs run: | mkdir -p $GITHUB_WORKSPACE/build cd $GITHUB_WORKSPACE/build - cmake -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_EXTERNAL_PROJECTS="llvm-spirv;sycl" \ - -DLLVM_ENABLE_PROJECTS="clang;llvm-spirv;sycl" \ - -DLLVM_EXTERNAL_SYCL_SOURCE_DIR=$GITHUB_WORKSPACE/repo/sycl \ - -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=$GITHUB_WORKSPACE/repo/llvm-spirv \ - -DLLVM_ENABLE_DOXYGEN=ON \ - $GITHUB_WORKSPACE/repo/llvm + python $GITHUB_WORKSPACE/repo/buildbot/configure.py -w $GITHUB_WORKSPACE \ + -s $GITHUB_WORKSPACE/repo -o $GITHUB_WORKSPACE/build -t Release cmake --build . --target doxygen-sycl - name: Deploy env: @@ -35,9 +34,7 @@ jobs: chmod 600 ~/.ssh/id_rsa eval "$(ssh-agent -s)" ssh-add -k ~/.ssh/id_rsa - mkdir -p $GITHUB_WORKSPACE/docs cd $GITHUB_WORKSPACE/docs - git clone --single-branch --branch gh-pages git@github.com:intel/llvm-docs.git . yes | \cp -rf $GITHUB_WORKSPACE/build/tools/sycl/doc/doxygen/html/* . git config --global user.name "iclsrc" git config --global user.email "ia.compiler.tools.git@intel.com" diff --git a/buildbot/configure.py b/buildbot/configure.py index 9bb1d26ad52f1..0b906f9bed8cd 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -52,6 +52,7 @@ 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=ON", llvm_dir ] From 0477ed5d9e7cdbc71f7e9cf5146b95f0f5c610fd Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Wed, 26 Feb 2020 11:03:57 +0300 Subject: [PATCH 5/6] Make Doxygen generation optional Signed-off-by: Alexander Batashev --- .github/workflows/gh_pages.yml | 2 +- buildbot/configure.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml index 225f84c5dd351..c6cd43458919e 100644 --- a/.github/workflows/gh_pages.yml +++ b/.github/workflows/gh_pages.yml @@ -23,7 +23,7 @@ jobs: mkdir -p $GITHUB_WORKSPACE/build cd $GITHUB_WORKSPACE/build python $GITHUB_WORKSPACE/repo/buildbot/configure.py -w $GITHUB_WORKSPACE \ - -s $GITHUB_WORKSPACE/repo -o $GITHUB_WORKSPACE/build -t Release + -s $GITHUB_WORKSPACE/repo -o $GITHUB_WORKSPACE/build -t Release --docs cmake --build . --target doxygen-sycl - name: Deploy env: diff --git a/buildbot/configure.py b/buildbot/configure.py index 0b906f9bed8cd..dd2cfd9ca6d6a 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -17,6 +17,7 @@ def do_configure(args): libclc_targets_to_build = '' sycl_build_pi_cuda = 'OFF' llvm_enable_assertions = 'ON' + llvm_enable_doxygen = 'OFF' if platform.system() == 'Linux': icd_loader_lib = os.path.join(icd_loader_lib, "libOpenCL.so") @@ -32,6 +33,9 @@ def do_configure(args): if args.assertions: llvm_enable_assertions = 'ON' + if args.docs: + llvm_enable_doxygen = 'ON' + install_dir = os.path.join(args.obj_dir, "install") cmake_cmd = [ @@ -52,7 +56,7 @@ 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=ON", + "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_docs), llvm_dir ] @@ -85,6 +89,7 @@ def main(): metavar="BUILD_TYPE", required=True, help="build type, debug or release") 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") args = parser.parse_args() From 86f7c64a634c33a1d6677014f70170877efd5d12 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Wed, 26 Feb 2020 12:36:26 +0300 Subject: [PATCH 6/6] Fix build Signed-off-by: Alexander Batashev --- buildbot/configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildbot/configure.py b/buildbot/configure.py index dd2cfd9ca6d6a..c0e4dc3eb6d31 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -56,7 +56,7 @@ 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_docs), + "-DLLVM_ENABLE_DOXYGEN={}".format(llvm_enable_doxygen), llvm_dir ]