1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
name: MEMKIND
on: [push, pull_request]
jobs:
linting:
runs-on: ubuntu-20.04
name: Code Linting - clang-format
steps:
- name: Install basic dependencies
run: sudo apt install autoconf clang-format-11 libnuma-dev
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run code-style check
run: |
./autogen.sh
./configure
make code-style-check
codespell:
runs-on: ubuntu-20.04
name: Code Linting - Codespell
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: codespell-project/actions-codespell@master
with:
skip: ./jemalloc,./test/gtest_fused/gtest,./.github/workflows/gha.yml
ignore_words_list: "ue"
docker-build:
runs-on: ${{ matrix.os }}
name: Docker build ${{ matrix.docker_image }}
strategy:
matrix:
os: [ubuntu-20.04]
docker_image: [fedora-34, ubuntu-20.04, centos-7]
env:
MEMKIND_HOST_WORKDIR: ${{ github.workspace }}
ENABLE_HWLOC: 1
DOCKER_RUN_SCRIPT: utils/docker/run_local.sh
DOCKER_IMAGE_FULL_PATH: utils/docker/Dockerfile.${{ matrix.docker_image }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Change permissions for Docker user
run: sudo chmod -R o+rwx ${{ github.workspace }}
- name: Run Docker build
run: |
if [ "${{ matrix.docker_image }}" == centos-7 ]; then
sudo --preserve-env=MEMKIND_HOST_WORKDIR "${{ env.DOCKER_RUN_SCRIPT }}" "${{ env.DOCKER_IMAGE_FULL_PATH }}"
else
sudo --preserve-env=MEMKIND_HOST_WORKDIR,ENABLE_HWLOC "${{ env.DOCKER_RUN_SCRIPT }}" "${{ env.DOCKER_IMAGE_FULL_PATH }}"
fi
python-linting:
runs-on: ubuntu-20.04
name: Code Linting - Python
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python environment
uses: actions/setup-python@v2
- name: flake8 Lint
uses: py-actions/flake8@v1
with:
exclude: "./jemalloc"
ignore: "W503"
building:
runs-on: ${{ matrix.os }}
name: Building memkind daxctl ${{ matrix.daxctl }} | hwloc ${{ matrix.hwloc }} | ${{ matrix.os }} | ${{ matrix.env.cc }}-${{ matrix.compiler_version }}
strategy:
matrix:
os: [ubuntu-20.04]
compiler_version: [10]
env:
- { cc: gcc, cxx: g++}
- { cc: clang, cxx: clang++}
daxctl: [false, true]
hwloc: [false, true]
env:
CC: ${{ matrix.env.cc }}-${{ matrix.compiler_version }}
CXX: ${{ matrix.env.cxx }}-${{ matrix.compiler_version }}
CCACHE_COMPRESS: 1
CCACHE_TEMPDIR: /tmp/.ccache-temp
CC_BUILD_ID: ${{ matrix.os }}-${{ matrix.env.cc }}-${{ matrix.compiler_version }}-d${{ matrix.daxctl }}-h${{ matrix.hwloc }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Ccache setup
uses: actions/cache@v2.1.4
with:
path: ~/.ccache
key: ccache-${{ env.CC_BUILD_ID }}-static-build-${{ github.sha }}
restore-keys: ccache-${{ env.CC_BUILD_ID }}-static-build-
- name: Install basic dependencies
run: sudo apt install autoconf ccache libnuma-dev
- name: Install daxctl dependency
run: |
if [ "${{ matrix.daxctl }}" == true ]; then
sudo apt install libdaxctl-dev
else
echo "Skipping daxctl installation"
fi
- name: Install hwloc dependency
run: |
if [ "${{ matrix.hwloc }}" == true ]; then
./utils/docker/docker_install_hwloc.sh
else
echo "Skipping hwloc installation"
fi
- name: Build memkind
run: |
ccache --max-size=150M
./build.sh
make dist
|