Wangdi/google 26 dfuse 1 #45369
This file contains 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: Build | |
on: | |
pull_request: | |
concurrency: | |
group: ci2-${{ github.head_ref }} | |
cancel-in-progress: true | |
permissions: {} | |
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-24.04 | |
permissions: | |
# https://github.com/EnricoMi/publish-unit-test-result-action#permissions | |
checks: write | |
pull-requests: write | |
strategy: | |
matrix: | |
distro: [ubuntu] | |
include: | |
- distro: ubuntu | |
base: ubuntu | |
with: ubuntu:oracular | |
env: | |
DEPS_JOBS: 10 | |
COMPILER: clang | |
BASE_DISTRO: ${{ matrix.with }} | |
DOCKER_BASE: ${{ matrix.base }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
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-24.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@v4 | |
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 |