Sets heavy GitHub CI workflows to not trigger on text documentation-only changes. #229
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: rocprofiler-register Continuous Integration | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| paths: | |
| - 'projects/rocprofiler-register/**' | |
| - '.github/workflows/rocprofiler-register-continuous-integration.yml' | |
| - '!**/*.md' | |
| - '!**/*.rtf' | |
| - '!**/*.rst' | |
| - '!**/.markdownlint-ci2.yaml' | |
| - '!**/.readthedocs.yaml' | |
| - '!**/.spellcheck.local.yaml' | |
| - '!**/.wordlist.txt' | |
| pull_request: | |
| paths: | |
| - 'projects/rocprofiler-register/**' | |
| - '.github/workflows/rocprofiler-register-continuous-integration.yml' | |
| - '!**/*.md' | |
| - '!**/*.rtf' | |
| - '!**/*.rst' | |
| - '!**/.markdownlint-ci2.yaml' | |
| - '!**/.readthedocs.yaml' | |
| - '!**/.spellcheck.local.yaml' | |
| - '!**/.wordlist.txt' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| ci: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: ['clang-14', 'clang-15', 'gcc-11', 'gcc-12'] | |
| ci-args: [''] | |
| ci-tag: [''] | |
| include: | |
| - compiler: 'gcc-12' | |
| ci-args: '--coverage' | |
| ci-tag: '-codecov' | |
| - compiler: 'clang-15' | |
| ci-args: '--linter clang-tidy' | |
| ci-tag: '-clang-tidy' | |
| - compiler: 'clang-13' | |
| ci-args: '' | |
| ci-tag: '' | |
| - compiler: 'gcc-12' | |
| ci-args: '--memcheck ThreadSanitizer' | |
| ci-tag: '-thread-sanitizer' | |
| - compiler: 'gcc-12' | |
| ci-args: '--memcheck AddressSanitizer' | |
| ci-tag: '-address-sanitizer' | |
| - compiler: 'gcc-12' | |
| ci-args: '--memcheck LeakSanitizer' | |
| ci-tag: '-leak-sanitizer' | |
| # - compiler: 'gcc-12' | |
| # ci-args: '--memcheck UndefinedBehaviorSanitizer' | |
| # ci-tag: '-undefined-behavior-sanitizer' | |
| runs-on: linux-mi325-1gpu-ossci-rocm-frac | |
| container: | |
| image: docker.io/rocm/rocprofiler-private:ubuntu-22.04-gfx94X-latest | |
| credentials: | |
| username: ${{ secrets.ROCPROFILER_AZURE_CI_USER }} | |
| password: ${{ secrets.ROCPROFILER_AZURE_CI_PASS }} | |
| options: --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined | |
| env: | |
| BUILD_TYPE: RelWithDebInfo | |
| INSTALL_PREFIX: /opt/rocprofiler-register | |
| PACKAGING_INSTALL_PREFIX: /opt/rocm | |
| GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 | |
| PATH: /usr/bin:$PATH | |
| steps: | |
| - name: Install Latest Nightly ROCm | |
| shell: bash | |
| working-directory: /tmp | |
| run: | | |
| tar -xf ${{ env.PACKAGING_INSTALL_PREFIX }}-gfx94X.tar.gz -C ${{ env.PACKAGING_INSTALL_PREFIX }} | |
| echo "ROCm installed to: ${{ env.PACKAGING_INSTALL_PREFIX }}" | |
| - name: Setup Git | |
| shell: bash | |
| run: | | |
| apt-get update | |
| apt-get install -y software-properties-common | |
| add-apt-repository ppa:git-core/ppa | |
| apt update | |
| apt install -y git | |
| - uses: actions/checkout@v5 | |
| with: | |
| sparse-checkout: projects/rocprofiler-register | |
| submodules: true | |
| set-safe-directory: true | |
| - name: Install Packages | |
| timeout-minutes: 25 | |
| run: | | |
| cd projects/rocprofiler-register | |
| CC=${{ matrix.compiler }} && | |
| CXX=$(echo ${{ matrix.compiler }} | sed 's/clang-/clang++-/1' | sed 's/gcc-/g++-/1') && | |
| apt-get update && | |
| apt-get install -y build-essential python3 environment-modules ${{ matrix.compiler }} ${CXX} && | |
| update-alternatives --install /usr/bin/cc cc /usr/bin/${CC} 100 && | |
| update-alternatives --install /usr/bin/c++ c++ /usr/bin/${CXX} 100 && | |
| python3 -m pip install --upgrade pip && | |
| python3 -m pip install 'cmake==3.22.0' && | |
| python3 -m pip install -r requirements.txt | |
| - name: Setup GCov | |
| timeout-minutes: 25 | |
| if: ${{ matrix.compiler == 'gcc-12' }} | |
| run: | | |
| cd projects/rocprofiler-register | |
| update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-12 100 | |
| - name: Setup Clang-Tidy | |
| timeout-minutes: 25 | |
| if: ${{ matrix.compiler == 'clang-15' }} | |
| run: | | |
| cd projects/rocprofiler-register | |
| apt-get install -y clang-tidy-15 | |
| update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-15 100 | |
| - name: Configure, Build, and Test | |
| timeout-minutes: 115 | |
| shell: bash | |
| working-directory: projects/rocprofiler-register | |
| run: | |
| python3 ./scripts/run-ci.py -B build | |
| --name ${{ github.repository_owner }}-${{ github.ref_name }}-azure-mi300x-${{ matrix.compiler }}${{ matrix.ci-tag }} | |
| --build-jobs 2 | |
| --site GitHub | |
| ${{ matrix.ci-args }} | |
| --disable-cdash | |
| -- | |
| -DCMAKE_C_COMPILER=/usr/bin/cc | |
| -DCMAKE_CXX_COMPILER=/usr/bin/c++ | |
| -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} | |
| -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_PREFIX }} | |
| -DROCPROFILER_REGISTER_BUILD_TESTS=ON | |
| -DROCPROFILER_REGISTER_BUILD_SAMPLES=ON | |
| -- | |
| -VV | |
| - name: Install | |
| timeout-minutes: 10 | |
| working-directory: projects/rocprofiler-register | |
| run: | |
| cmake --build build --target install --parallel 2 | |
| - name: CPack and Install | |
| working-directory: projects/rocprofiler-register | |
| run: | | |
| cd build | |
| cpack -G STGZ | |
| rm -rf ${{ env.PACKAGING_INSTALL_PREFIX }}/lib/*rocprofiler-register* \ | |
| ${{ env.PACKAGING_INSTALL_PREFIX }}/lib/cmake/*rocprofiler-register* \ | |
| ${{ env.PACKAGING_INSTALL_PREFIX }}/share/*rocprofiler-register* \ | |
| ${{ env.PACKAGING_INSTALL_PREFIX }}/libexec/*rocprofiler-register* \ | |
| ${{ env.PACKAGING_INSTALL_PREFIX }}/include/rocprofiler-register | |
| mkdir -p ${{ env.PACKAGING_INSTALL_PREFIX }} | |
| ./rocprofiler-register-*-Linux.sh --prefix=${{ env.PACKAGING_INSTALL_PREFIX }} --exclude-subdir --skip-license | |
| ls -lah ${{ env.PACKAGING_INSTALL_PREFIX }}/lib | |
| - name: Test Installed Packages | |
| if: ${{ contains(matrix.compiler, 'clang-15') }} | |
| timeout-minutes: 10 | |
| shell: bash | |
| run: | | |
| cd projects/rocprofiler-register | |
| CMAKE_PREFIX_PATH=/opt/rocm cmake -B build-tests-deb | |
| cmake --build build-tests-deb --target all --parallel 16 | |
| export PATH=${{ env.PACKAGING_INSTALL_PREFIX }}/bin:$PATH | |
| export LD_LIBRARY_PATH=${{ env.PACKAGING_INSTALL_PREFIX }}/lib:$LD_LIBRARY_PATH | |
| ctest --test-dir build-tests-deb --output-on-failure | |
| - name: Test Install Modulefile | |
| timeout-minutes: 15 | |
| shell: bash | |
| run: | | |
| cd projects/rocprofiler-register | |
| set -v | |
| source /usr/share/modules/init/$(basename ${SHELL}) | |
| module use ${{ env.INSTALL_PREFIX }}/share/modulefiles | |
| module avail | |
| module load rocprofiler-register | |
| pushd tests | |
| BUILD_DIR=${PWD}/build-rocp-reg-modulefile | |
| cmake -B ${BUILD_DIR} . | |
| cmake --build ${BUILD_DIR} --target all | |
| rm -rf ${BUILD_DIR} | |
| - name: Test Install Setup Env | |
| timeout-minutes: 15 | |
| shell: bash | |
| run: | | |
| cd projects/rocprofiler-register | |
| set -v | |
| source ${{ env.INSTALL_PREFIX }}/share/rocprofiler-register/setup-env.sh | |
| pushd samples/library-implementation | |
| BUILD_DIR=${PWD}/build-rocp-reg-setup-env | |
| cmake -B ${BUILD_DIR} . | |
| cmake --build ${BUILD_DIR} --target all | |
| rm -rf ${BUILD_DIR} | |
| - name: Test Install CPack Modulefile | |
| timeout-minutes: 15 | |
| shell: bash | |
| run: | | |
| cd projects/rocprofiler-register | |
| set -v | |
| source /usr/share/modules/init/$(basename ${SHELL}) | |
| module use ${{ env.PACKAGING_INSTALL_PREFIX }}/share/modulefiles | |
| module avail | |
| module load rocprofiler-register | |
| pushd tests | |
| BUILD_DIR=${PWD}/build-rocp-reg-modulefile-cpack | |
| cmake -B ${BUILD_DIR} . | |
| cmake --build ${BUILD_DIR} --target all | |
| rm -rf ${BUILD_DIR} | |
| - name: Test Install CPack Setup Env | |
| timeout-minutes: 15 | |
| shell: bash | |
| run: | | |
| cd projects/rocprofiler-register | |
| set -v | |
| source ${{ env.PACKAGING_INSTALL_PREFIX }}/share/rocprofiler-register/setup-env.sh | |
| pushd samples/library-implementation | |
| BUILD_DIR=${PWD}/build-rocp-reg-setup-env-cpack | |
| cmake -B ${BUILD_DIR} . | |
| cmake --build ${BUILD_DIR} --target all | |
| rm -rf ${BUILD_DIR} |