Skip to content

Retrying build coverage step on failure #2979

Retrying build coverage step on failure

Retrying build coverage step on failure #2979

Workflow file for this run

name: Build Sphinx
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened, closed]
env:
GH_BOT_NAME: 'github-actions[bot]'
GH_BOT_EMAIL: 'github-actions[bot]@users.noreply.github.com'
GH_EVENT_OPEN_PR_UPSTREAM: ${{ github.event_name == 'pull_request' && github.event.action != 'closed' &&
github.event.pull_request && !github.event.pull_request.head.repo.fork }}
GH_EVENT_PUSH_UPSTREAM: ${{ github.ref == 'refs/heads/master' && github.event_name == 'push' &&
github.event.ref == 'refs/heads/master' && github.event.repository && !github.event.repository.fork }}
PUBLISH_DIR: doc/_build/html/
defaults:
run:
shell: bash -l {0}
jobs:
build-and-deploy:
name: Build and Deploy Docs
runs-on: ubuntu-20.04
env:
python-ver: '3.9'
CHANNELS: '-c dppy/label/dev -c intel -c conda-forge --override-channels'
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: |
echo "$GITHUB_CONTEXT"
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
docker-images: false
- name: Install Intel repository
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
sudo apt-get update
- name: Update libstdc++-dev
run: |
sudo apt remove -y gcc-7 g++-7 gcc-8 g++-8 gcc-10 g++-10
sudo apt remove -y libstdc++-10-dev
sudo apt autoremove
sudo apt install --reinstall -y gcc-9 g++-9 libstdc++-9-dev
- name: Install Intel OneAPI
run: |
sudo apt-get install intel-oneapi-mkl \
intel-oneapi-mkl-devel \
intel-oneapi-compiler-dpcpp-cpp
# https://github.com/marketplace/actions/checkout
- name: Install nvidia-cuda support drivers
run: |
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install -y libnvidia-gl-450
sudo apt-get install -y nvidia-cuda-toolkit clinfo
- name: Checkout repo
uses: actions/checkout@v3.5.2
with:
fetch-depth: 0
# https://github.com/marketplace/actions/setup-miniconda
- name: Setup miniconda
uses: conda-incubator/setup-miniconda@v2.2.0
with:
auto-update-conda: true
python-version: ${{ env.python-ver }}
miniconda-version: 'latest'
activate-environment: 'docs'
channels: intel, conda-forge
- name: Install sphinx dependencies
run: |
conda install sphinx sphinx_rtd_theme
pip install sphinxcontrib-googleanalytics
- name: Install dpnp dependencies
run: |
conda install numpy"<1.24" dpctl">=0.15.1dev2" mkl-devel-dpcpp onedpl-devel tbb-devel dpcpp_linux-64"<2024.0.1" \
cmake cython pytest ninja scikit-build sysroot_linux-64">=2.28" ${{ env.CHANNELS }}
- name: Install cuPy dependencies
run: conda install cupy cudatoolkit=10.0
- name: Conda info
run: conda info
- name: Conda list
run: conda list
- name: Build library
run: |
CC=icx CXX=icpx python setup.py develop -G Ninja -- -DDPCTL_MODULE_PATH=$(python -m dpctl --cmakedir)
- name: Build docs
run: make html
working-directory: doc
- name: Set a project number to current release
run: |
export PROJECT_NUMBER=$(git describe --tags --abbrev=0)
echo PROJECT_NUMBER=${PROJECT_NUMBER}
echo "PROJECT_NUMBER=$PROJECT_NUMBER" >> $GITHUB_ENV
# https://github.com/marketplace/actions/doxygen-action
- name: Build backend docs
uses: mattnotmitt/doxygen-action@v1.9.5
with:
working-directory: 'dpnp/backend/doc'
- name: Copy backend docs
run: cp -r dpnp/backend/doc/html ${{ env.PUBLISH_DIR }}/backend_doc
# https://github.com/marketplace/actions/github-pages-action
# The step is only used to build docs while pushing a PR to "master"
- name: Deploy docs
if: env.GH_EVENT_PUSH_UPSTREAM
uses: peaceiris/actions-gh-pages@v3.9.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ${{ env.PUBLISH_DIR }}
keep_files: true
commit_message: ${{ github.event.head_commit.message }}
publish_branch: gh-pages
user_name: ${{ env.GH_BOT_NAME }}
user_email: ${{ env.GH_BOT_EMAIL }}
# The step is only used to build docs while pushing to PR branch
- name: Publish pull-request docs
if: env.GH_EVENT_OPEN_PR_UPSTREAM
uses: peaceiris/actions-gh-pages@v3.9.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ${{ env.PUBLISH_DIR }}
destination_dir: ./pull/${{ github.event.number }}
allow_empty_commit : true
keep_files: true
commit_message: ${{ github.event.pull_request.title }}
publish_branch: gh-pages
user_name: ${{ env.GH_BOT_NAME }}
user_email: ${{ env.GH_BOT_EMAIL }}
# The step is only used to build docs while pushing to PR branch
- name: Comment with URL to published pull-request docs
if: env.GH_EVENT_OPEN_PR_UPSTREAM
env:
PR_NUM: ${{ github.event.number }}
uses: mshick/add-pr-comment@v2.8.1
with:
message: |
View rendered docs @ https://intelpython.github.io/dpnp/pull/${{ env.PR_NUM }}/index.html
allow-repeats: false
# The job is only used to build docs when PR is closed (action from PR branch)
clean:
if: |
github.event_name == 'pull_request' && github.event.action == 'closed' &&
github.event.pull_request && !github.event.pull_request.head.repo.fork
needs: build-and-deploy
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3.5.2
with:
fetch-depth: 0
- name: Remove docs [PR closed]
env:
PR_NUM: ${{ github.event.number }}
run: |
git remote add tokened_docs https://IntelPython:${{ secrets.GITHUB_TOKEN }}@github.com/IntelPython/dpnp.git
git fetch tokened_docs
git checkout --track tokened_docs/gh-pages
echo `pwd`
[ -d pull/${PR_NUM} ] && git rm -rf pull/${PR_NUM}
git config --global user.name ${{ env.GH_BOT_NAME }}
git config --global user.email ${{ env.GH_BOT_EMAIL }}
git commit -m "Removing docs for closed pull request ${PR_NUM}"
git push tokened_docs gh-pages
- name: Modify the comment with URL to official documentation
uses: mshick/add-pr-comment@v2.8.1
with:
find: |
View rendered docs @.+
replace: |
View rendered docs @ https://intelpython.github.io/dpnp/index.html