Test #129
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: PR CI | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| - main | |
| - v* | |
| paths: | |
| - "configure.ac" | |
| - "Makefile.am" | |
| - "autogen.sh" | |
| - "include/**" | |
| - "m4/**" | |
| - "src/**" | |
| - "tests/**" | |
| - "topology/**" | |
| - ".github/workflows/**" | |
| - ".github/actions/**" | |
| pull_request: | |
| paths: | |
| - "configure.ac" | |
| - "Makefile.am" | |
| - "autogen.sh" | |
| - "include/**" | |
| - "m4/**" | |
| - "src/**" | |
| - "tests/**" | |
| - "topology/**" | |
| - ".github/workflows/**" | |
| - ".github/actions/**" | |
| env: | |
| APT_PACKAGES: >- | |
| build-essential | |
| git | |
| libhwloc-dev | |
| make | |
| # note, related to issue around actions/checkout@v4, linked below. This | |
| # environment variable is also now needed, as of july 2024. | |
| # ref: https://github.com/actions/runner/issues/2906#issuecomment-2208546951 | |
| ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: 'true' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| amazonlinux: | |
| strategy: | |
| matrix: | |
| sdk: | |
| - cuda | |
| - neuron | |
| container: | |
| - public.ecr.aws/amazonlinux/amazonlinux:2023 | |
| efainstaller: | |
| - latest | |
| - 1.25.0 | |
| include: | |
| - efainstaller: latest | |
| platform-aws: enable | |
| - efainstaller: 1.25.0 | |
| platform-aws: disable | |
| - container: public.ecr.aws/amazonlinux/amazonlinux:2023 | |
| displayname: al2023 | |
| efainstallerdir: ALINUX2023 | |
| nvidiadistro: amzn2023 | |
| configmanager: dnf config-manager | |
| cudapackages: cuda-cudart-devel-12-6 cuda-crt-12-6 | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.container }} | |
| name: ${{ matrix.displayname }}/${{ matrix.sdk }}/efa@${{ matrix.efainstaller }}/build+test | |
| steps: | |
| # note, do not bump to v4: https://github.com/actions/checkout/issues/1590 | |
| - uses: actions/checkout@v3 | |
| - name: Setup Environment | |
| uses: ./.github/actions/setup-environment | |
| with: | |
| container-type: ${{ matrix.container }} | |
| efa-installer-version: ${{ matrix.efainstaller }} | |
| efa-installer-dir: ${{ matrix.efainstallerdir }} | |
| sdk: ${{ matrix.sdk }} | |
| cuda-packages: ${{ matrix.cudapackages }} | |
| config-manager: ${{ matrix.configmanager }} | |
| nvidia-distro: ${{ matrix.nvidiadistro }} | |
| - name: Build, Test and Install | |
| uses: ./.github/actions/configure-build-test | |
| with: | |
| sdk: ${{ matrix.sdk }} | |
| platform-aws: ${{ matrix.platform-aws }} | |
| distcheck: | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 60 | |
| strategy: | |
| matrix: | |
| cc-variant: | |
| - latest | |
| - legacy | |
| cc: | |
| - gcc | |
| - clang | |
| tracing: | |
| - lttng | |
| - none | |
| sdk: | |
| - cuda | |
| - neuron | |
| include: | |
| - cc-variant: latest | |
| cc: clang | |
| cc-version: 18 | |
| - cc-variant: latest | |
| cc: gcc | |
| cc-version: 13 | |
| exclude: | |
| # Remove some combinations to reduce matrix size | |
| - cc: clang | |
| sdk: neuron | |
| tracing: lttng | |
| name: u2204/${{ matrix.sdk }}/${{matrix.cc}}-${{matrix.cc-variant}}/build+test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure Compilers | |
| uses: ./.github/actions/configure-compiler | |
| with: | |
| cc: ${{ matrix.cc }} | |
| cc-variant: ${{ matrix.cc-variant }} | |
| cc-version: ${{ matrix.cc-version }} | |
| - name: Install Base Dependencies | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y ${{ env.APT_PACKAGES }} | |
| - name: Install CUDA SDK | |
| if: matrix.sdk == 'cuda' | |
| run: | | |
| sudo apt-get update -y && sudo apt-get install -y wget lsb-release | |
| repo="ubuntu$(lsb_release -r | cut -d':' -f2 | xargs | sed 's/[.]//g')" | |
| wget https://developer.download.nvidia.com/compute/cuda/repos/${repo}/$(uname -m)/cuda-keyring_1.1-1_all.deb | |
| sudo dpkg -i cuda-keyring_1.1-1_all.deb | |
| sudo apt-get update -y | |
| sudo apt-get install -y cuda-cudart-dev-12-6 cuda-crt-12-6 | |
| - name: Install lttng | |
| if: matrix.tracing == 'lttng' | |
| run: | | |
| sudo apt-get install -y liblttng-ust-dev | |
| - name: Cache EFA Installer | |
| id: cache-efa-installer | |
| uses: actions/cache@v3 | |
| with: | |
| path: aws-efa-installer-latest.tar.gz | |
| key: efa-installer-latest | |
| - name: Fetch and Install EFA Installer Dependencies | |
| run: | | |
| if [ "${{ steps.cache-efa-installer.outputs.cache-hit }}" != "true" ]; then | |
| curl -O https://efa-installer.amazonaws.com/aws-efa-installer-latest.tar.gz | |
| fi | |
| tar -xf aws-efa-installer-*.tar.gz | |
| pushd aws-efa-installer/ | |
| sudo ./efa_installer.sh -y --skip-kmod | |
| popd | |
| - name: Build, Test and Install | |
| uses: ./.github/actions/configure-build-test | |
| with: | |
| sdk: ${{ matrix.sdk }} | |
| platform-aws: enable | |
| sudo: true | |
| codechecker: | |
| runs-on: ubuntu-22.04 | |
| needs: [distcheck] | |
| timeout-minutes: 60 | |
| strategy: | |
| matrix: | |
| sdk: | |
| - cuda | |
| - neuron | |
| name: CodeChecker - ${{ matrix.sdk }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.9' | |
| - name: Cache Pip Packages | |
| uses: actions/cache@v3 | |
| id: pip-cache | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install Base Dependencies | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y ${{ env.APT_PACKAGES }} | |
| - name: Install CUDA SDK | |
| if: matrix.sdk == 'cuda' | |
| run: | | |
| sudo apt-get update -y && sudo apt-get install -y wget lsb-release | |
| repo="ubuntu$(lsb_release -r | cut -d':' -f2 | xargs | sed 's/[.]//g')" | |
| wget https://developer.download.nvidia.com/compute/cuda/repos/${repo}/$(uname -m)/cuda-keyring_1.1-1_all.deb | |
| sudo dpkg -i cuda-keyring_1.1-1_all.deb | |
| sudo apt-get update -y | |
| sudo apt-get install -y cuda-cudart-dev-12-6 cuda-crt-12-6 | |
| - name: Install cppcheck | |
| run: | | |
| sudo apt-get install -y cppcheck | |
| - name: Cache EFA Installer | |
| id: cache-efa-installer | |
| uses: actions/cache@v3 | |
| with: | |
| path: aws-efa-installer-latest.tar.gz | |
| key: efa-installer-latest | |
| - name: Fetch and Install EFA Installer Dependencies | |
| run: | | |
| if [ "${{ steps.cache-efa-installer.outputs.cache-hit }}" != "true" ]; then | |
| curl -O https://efa-installer.amazonaws.com/aws-efa-installer-latest.tar.gz | |
| fi | |
| tar -xf aws-efa-installer-*.tar.gz | |
| pushd aws-efa-installer/ | |
| sudo ./efa_installer.sh -y --skip-kmod | |
| popd | |
| - name: Run Configure | |
| run: | | |
| ./autogen.sh | |
| if [ "${{ matrix.sdk }}" == "neuron" ]; then | |
| ./configure --with-mpi=/opt/amazon/openmpi \ | |
| --with-libfabric=/opt/amazon/efa \ | |
| --enable-tests=yes \ | |
| --enable-werror=yes \ | |
| --enable-picky-compiler=yes \ | |
| --enable-platform-aws \ | |
| --enable-neuron | |
| else | |
| ./configure --with-mpi=/opt/amazon/openmpi \ | |
| --with-libfabric=/opt/amazon/efa \ | |
| --enable-tests=yes \ | |
| --enable-werror=yes \ | |
| --enable-picky-compiler=yes \ | |
| --enable-platform-aws \ | |
| --with-cuda=/usr/local/cuda/ | |
| fi | |
| - name: Run CodeChecker | |
| uses: whisperity/codechecker-analysis-action@v1 | |
| id: codechecker | |
| with: | |
| build-command: make | |
| ctu: true | |
| config: .github/codechecker.yaml | |
| install-custom: true | |
| version: v6.23.1 | |
| llvm-version: '18' | |
| - name: Save CodeChecker HTML output | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: CodeChecker Bug Reports for ${{ matrix.sdk }} | |
| path: ${{ steps.codechecker.outputs.result-html-dir }}/*.html | |
| - name: CodeChecker Pass Or Fail? | |
| if: steps.codechecker.outputs.warnings-in-diff == 'true' | |
| shell: bash | |
| run: | | |
| echo "::error title=Static Analyzers Failed::Analysed commit(s) caused static analysis warnings" | |
| exit 0 |