Skip to content

DAOS-623 build: Various build improvements #37256

DAOS-623 build: Various build improvements

DAOS-623 build: Various build improvements #37256

Workflow file for this run

name: Build
on:
pull_request:
concurrency:
group: ci2-${{ github.head_ref }}
cancel-in-progress: true
jobs:
# reuse the cache from the landing-builds workflow if available, if not then build the images
# from scratch, but do not save them.
Build-and-test:
name: Run DAOS/NLT tests
runs-on: ubuntu-22.04
strategy:
matrix:
distro: [ubuntu]
include:
- distro: ubuntu
base: ubuntu
with: ubuntu:mantic
env:
DEPS_JOBS: 10
COMPILER: clang
BASE_DISTRO: ${{ matrix.with }}
DOCKER_BASE: ${{ matrix.base }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 500
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup git hash
run: ./ci/gha_helper.py
id: commit-hash
- name: Fetch docker images from cache.
uses: jpribyl/action-docker-layer-caching@v0.1.1
continue-on-error: true
with:
key: ${{ steps.commit-hash.outputs.key }}
restore-keys: |
${{ steps.commit-hash.outputs.restore }}
${{ steps.commit-hash.outputs.restore_prev }}
skip-save: true
- name: Update dependencies in image.
run: docker build . --file utils/docker/Dockerfile.${{ matrix.distro }}
--build-arg DAOS_BUILD=no
--build-arg DEPS_JOBS
--build-arg BASE_DISTRO
--build-arg DAOS_KEEP_SRC=yes
--tag build-image
- name: Build and Test
run: docker run --name build-post --mount type=tmpfs,destination=/mnt/daos_0,tmpfs-mode=1777
--env COMPILER --env DEPS_JOBS --user root:root build-image
./daos/utils/ci/run_in_gha.sh
- name: Fetch results
if: always()
run: docker cp build-post:/home/daos/daos/nlt-junit.xml ./
- name: Publish NLT test results
if: always()
uses: EnricoMi/publish-unit-test-result-action@v1.17
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
files: nlt-junit.xml
comment_mode: off # yamllint disable-line rule:truthy
fail_on: nothing
Build:
name: Build DAOS
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
distro: [rocky, fedora, leap.15]
compiler: [clang, gcc]
include:
- distro: rocky
base: el.9
with: rockylinux/rockylinux:9
- distro: fedora
base: el.8
with: fedora:38
- distro: leap.15
base: leap.15
with: opensuse/leap:15.5
env:
DEPS_JOBS: 10
BASE_DISTRO: ${{ matrix.with }}
DOCKER_BASE: ${{ matrix.base }}
COMPILER: ${{ matrix.compiler }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 500
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup git hash
run: ./ci/gha_helper.py
id: commit-hash
- name: Fetch docker images from cache.
uses: jpribyl/action-docker-layer-caching@v0.1.1
continue-on-error: true
with:
key: ${{ steps.commit-hash.outputs.key }}
restore-keys: |
${{ steps.commit-hash.outputs.restore }}
${{ steps.commit-hash.outputs.restore_prev }}
skip-save: true
- name: Build in docker.
run: docker build . --file utils/docker/Dockerfile.${{ matrix.base }}
--build-arg DEPS_JOBS
--build-arg BASE_DISTRO
--build-arg DAOS_JAVA_BUILD=no
--build-arg COMPILER
--build-arg DAOS_KEEP_SRC=yes
--tag build-image
- name: Build Java in docker.
run: docker build . --file utils/docker/Dockerfile.${{ matrix.base }}
--build-arg DEPS_JOBS
--build-arg BASE_DISTRO
--build-arg DAOS_JAVA_BUILD=yes
--build-arg COMPILER
- name: Build debug in docker.
run: docker build . --file utils/docker/Dockerfile.${{ matrix.base }}
--build-arg DEPS_JOBS
--build-arg BASE_DISTRO
--build-arg DAOS_JAVA_BUILD=no
--build-arg DAOS_BUILD_TYPE=debug
--build-arg COMPILER
- name: Build devel in docker.
run: docker build . --file utils/docker/Dockerfile.${{ matrix.base }}
--build-arg DEPS_JOBS
--build-arg BASE_DISTRO
--build-arg DAOS_JAVA_BUILD=no
--build-arg DAOS_BUILD_TYPE=dev
--build-arg COMPILER
# Should work, but enable on master only for now.
# - name: Run NLT
# run: docker run --mount type=tmpfs,destination=/mnt/daos_0,tmpfs-mode=1777 --user root:root
# --name build-post build-image
# ./daos/utils/node_local_test.py --no-root --memcheck no --test cont_copy