Skip to content

Commit

Permalink
[build.ps1/setup.sh] do not export vcpkg_root anymore, add setup scri…
Browse files Browse the repository at this point in the history
…pts to CI (#7751)

* [build.ps1] do not export vcpkg_root anymore

* [README.md] add a build step related to Set-ExecutionPolicy on Windows

* use scope currentuser to avoid admin powershell

* simplify even more set-executionpolicy command order

* remove unnecessary decoration to shell commands to improve user experience with copy button

* write instructions to build using only cmake

* Update README.md

* add target install

* improve setup scripts for future tests

* improve setup.sh script for more tool installations and add command line flags handling

* add CI tests for setup scripts

* use nuget artifact cache to improve CI build times

* disable interactivity for build script when called from setup script, add kitware gpg key in CI

* enable cudnn in setup.sh

* add a workaround for missing nvidia drivers in CI

* setup CUDA env variables

* remove some very slow builds from travis and move them to github actions

* chmod sh scripts

* use deploy-cuda scripts also in PR pipelines

* install asm tools

* restore links missing for CI when using deploy-cuda.sh

* enable cudnn on ubuntu ci pipelines

* pass CUDA env variables

* add missing cuda install for opencv2 and opencv3 ci pipelines

* remove unnecessary steps

Co-authored-by: Alexey <AlexeyAB@users.noreply.github.com>
  • Loading branch information
cenit and AlexeyAB committed Jun 4, 2021
1 parent 5853e51 commit 8c85eb7
Show file tree
Hide file tree
Showing 16 changed files with 718 additions and 508 deletions.
182 changes: 132 additions & 50 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,13 @@ jobs:
run: sudo apt install libopencv-dev

- name: 'Install CUDA'
run: ./scripts/deploy-cuda.sh

- name: 'Create softlinks for CUDA'
run: |
sudo apt update
sudo apt-get dist-upgrade -y
sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ /"
sudo apt-get install -y --no-install-recommends cuda-compiler-11-2 cuda-libraries-dev-11-2 cuda-driver-dev-11-2 cuda-cudart-dev-11-2
sudo apt-get install -y --no-install-recommends libcudnn8-dev
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/stubs/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH
nvcc --version
gcc --version
- name: 'LIBSO=1 GPU=0 CUDNN=0 OPENCV=0'
run: |
Expand Down Expand Up @@ -72,37 +61,21 @@ jobs:
make clean
ubuntu-vcpkg-cuda:
ubuntu-vcpkg-opencv4-cuda:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Update apt
run: sudo apt update
- name: Install dependencies
run: sudo apt install yasm nasm

- uses: lukka/get-cmake@latest

- name: 'Install CUDA'
run: ./scripts/deploy-cuda.sh

- name: 'Create softlinks for CUDA'
run: |
sudo apt update
sudo apt-get dist-upgrade -y
sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ /"
sudo apt-get install -y --no-install-recommends cuda-compiler-11-2 cuda-libraries-dev-11-2 cuda-driver-dev-11-2 cuda-cudart-dev-11-2
sudo apt-get install -y --no-install-recommends libcudnn8-dev
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/stubs/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH
nvcc --version
gcc --version
- name: 'Setup vcpkg and NuGet artifacts backend'
shell: bash
Expand All @@ -123,7 +96,7 @@ jobs:
CUDA_PATH: "/usr/local/cuda"
CUDA_TOOLKIT_ROOT_DIR: "/usr/local/cuda"
LD_LIBRARY_PATH: "/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH"
run: ./build.ps1 -UseVCPKG -DoNotUpdateVCPKG -EnableOPENCV -EnableCUDA -DisableInteractive -DoNotUpdateDARKNET
run: ./build.ps1 -UseVCPKG -DoNotUpdateVCPKG -EnableOPENCV -EnableCUDA -EnableCUDNN -DisableInteractive -DoNotUpdateDARKNET

- uses: actions/upload-artifact@v2
with:
Expand All @@ -143,6 +116,82 @@ jobs:
path: ${{ github.workspace }}/uselib*


ubuntu-vcpkg-opencv3-cuda:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- uses: lukka/get-cmake@latest

- name: 'Install CUDA'
run: ./scripts/deploy-cuda.sh

- name: 'Create softlinks for CUDA'
run: |
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/stubs/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so
- name: 'Setup vcpkg and NuGet artifacts backend'
shell: bash
run: >
git clone https://github.com/microsoft/vcpkg ;
./vcpkg/bootstrap-vcpkg.sh ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1) sources add
-Name "vcpkgbinarycache"
-Source http://93.49.111.10:5555/v3/index.json ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1)
setapikey ${{ secrets.BAGET_API_KEY }}
-Source http://93.49.111.10:5555/v3/index.json
- name: 'Build'
shell: pwsh
env:
CUDACXX: "/usr/local/cuda/bin/nvcc"
CUDA_PATH: "/usr/local/cuda"
CUDA_TOOLKIT_ROOT_DIR: "/usr/local/cuda"
LD_LIBRARY_PATH: "/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH"
run: ./build.ps1 -UseVCPKG -DoNotUpdateVCPKG -EnableOPENCV -EnableCUDA -EnableCUDNN -ForceOpenCVVersion 3 -DisableInteractive -DoNotUpdateDARKNET


ubuntu-vcpkg-opencv2-cuda:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- uses: lukka/get-cmake@latest

- name: 'Install CUDA'
run: ./scripts/deploy-cuda.sh

- name: 'Create softlinks for CUDA'
run: |
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/stubs/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so
- name: 'Setup vcpkg and NuGet artifacts backend'
shell: bash
run: >
git clone https://github.com/microsoft/vcpkg ;
./vcpkg/bootstrap-vcpkg.sh ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1) sources add
-Name "vcpkgbinarycache"
-Source http://93.49.111.10:5555/v3/index.json ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1)
setapikey ${{ secrets.BAGET_API_KEY }}
-Source http://93.49.111.10:5555/v3/index.json
- name: 'Build'
shell: pwsh
env:
CUDACXX: "/usr/local/cuda/bin/nvcc"
CUDA_PATH: "/usr/local/cuda"
CUDA_TOOLKIT_ROOT_DIR: "/usr/local/cuda"
LD_LIBRARY_PATH: "/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH"
run: ./build.ps1 -UseVCPKG -DoNotUpdateVCPKG -EnableOPENCV -EnableCUDA -EnableCUDNN -ForceOpenCVVersion 2 -DisableInteractive -DoNotUpdateDARKNET


ubuntu:
runs-on: ubuntu-20.04
steps:
Expand Down Expand Up @@ -195,24 +244,13 @@ jobs:
- uses: lukka/get-cmake@latest

- name: 'Install CUDA'
run: ./scripts/deploy-cuda.sh

- name: 'Create softlinks for CUDA'
run: |
sudo apt update
sudo apt-get dist-upgrade -y
sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ /"
sudo apt-get install -y --no-install-recommends cuda-compiler-11-2 cuda-libraries-dev-11-2 cuda-driver-dev-11-2 cuda-cudart-dev-11-2
sudo apt-get install -y --no-install-recommends libcudnn8-dev
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/stubs/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so.1
sudo ln -s /usr/local/cuda-11.2/lib64/stubs/libcuda.so /usr/local/cuda-11.2/lib64/libcuda.so
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH
nvcc --version
gcc --version
- name: 'Build'
shell: pwsh
Expand All @@ -221,7 +259,7 @@ jobs:
CUDA_PATH: "/usr/local/cuda"
CUDA_TOOLKIT_ROOT_DIR: "/usr/local/cuda"
LD_LIBRARY_PATH: "/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH"
run: ./build.ps1 -EnableOPENCV -EnableCUDA -DisableInteractive -DoNotUpdateDARKNET
run: ./build.ps1 -EnableOPENCV -EnableCUDA -EnableCUDNN -DisableInteractive -DoNotUpdateDARKNET

- uses: actions/upload-artifact@v2
with:
Expand Down Expand Up @@ -253,6 +291,28 @@ jobs:
run: ./build.ps1 -ForceCPP -DisableInteractive -DoNotUpdateDARKNET


ubuntu-setup-sh:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: 'Setup vcpkg and NuGet artifacts backend'
shell: bash
run: >
git clone https://github.com/microsoft/vcpkg ;
./vcpkg/bootstrap-vcpkg.sh ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1) sources add
-Name "vcpkgbinarycache"
-Source http://93.49.111.10:5555/v3/index.json ;
mono $(./vcpkg/vcpkg fetch nuget | tail -n 1)
setapikey ${{ secrets.BAGET_API_KEY }}
-Source http://93.49.111.10:5555/v3/index.json
- name: 'Setup'
shell: bash
run: ./scripts/setup.sh -InstallCUDA -BypassDRIVER


osx-vcpkg:
runs-on: macos-latest
steps:
Expand Down Expand Up @@ -419,6 +479,28 @@ jobs:
path: ${{ github.workspace }}/uselib*


win-setup-ps1:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2

- name: 'Setup vcpkg and NuGet artifacts backend'
shell: bash
run: >
git clone https://github.com/microsoft/vcpkg ;
./vcpkg/bootstrap-vcpkg.sh ;
$(./vcpkg/vcpkg fetch nuget | tail -n 1) sources add
-Name "vcpkgbinarycache"
-Source http://93.49.111.10:5555/v3/index.json ;
$(./vcpkg/vcpkg fetch nuget | tail -n 1)
setapikey ${{ secrets.BAGET_API_KEY }}
-Source http://93.49.111.10:5555/v3/index.json
- name: 'Setup'
shell: pwsh
run: ./scripts/setup.ps1 -InstallCUDA


win-intlibs-cpp:
runs-on: windows-latest
steps:
Expand Down
Loading

0 comments on commit 8c85eb7

Please sign in to comment.