Skip to content

Commit

Permalink
Merge pull request #555 from LLNL/rc-v0.5.0
Browse files Browse the repository at this point in the history
release v0.5.0
  • Loading branch information
ltaylor16 committed May 13, 2021
2 parents 38c0d74 + 9522f7c commit 008da77
Show file tree
Hide file tree
Showing 974 changed files with 42,386 additions and 18,061 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/docker_build_tpls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Docker TPL build

# Manually triggered
on:
workflow_dispatch:
# No input required

jobs:
build_images:
runs-on: ubuntu-latest
name: Builds a docker image and extracts generated hostconfigs
strategy:
matrix:
compiler: [clang-10, gcc-8]
env:
REPO: axom/tpls
HOSTCONFIG_LOC: /home/axom/export_hostconfig
DOCKERFILE_PREFIX: ./scripts/docker/dockerfile_
steps:
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Get dockerfile name
shell: bash
run: echo "##[set-output name=filename;]$(echo ${DOCKERFILE_PREFIX}${{ matrix.compiler }})"
id: dockerfile_name
- name: Get dockerhub repo name
shell: bash
run: |
echo ${REPO}:${{ matrix.compiler }}_`date "+%m-%d-%y_%Hh-%Mm"`
echo "##[set-output name=repo_plus_tag;]$(echo ${REPO}:${{ matrix.compiler }}_`date "+%m-%d-%y_%Hh-%Mm"`)"
echo "##[set-output name=repo_plus_latest;]$(echo ${REPO}:${{ matrix.compiler }}_latest)"
id: repo_name

- name: Checkout
uses: actions/checkout@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ steps.repo_name.outputs.repo_plus_tag }},${{ steps.repo_name.outputs.repo_plus_latest }}
file: ${{ steps.dockerfile_name.outputs.filename }}
context: .
platforms: linux/amd64
build-args: branch=${{ steps.extract_branch.outputs.branch }}

- name: Get hostconfig
run: |
echo ${{ steps.docker_build.outputs.digest }}
docker pull ${{ steps.repo_name.outputs.repo_plus_tag }}
docker create --name extract_hc ${{ steps.repo_name.outputs.repo_plus_tag }}
mkdir -p extracted_hc
docker cp extract_hc:${{ env.HOSTCONFIG_LOC }} ./extracted_hc
docker rm extract_hc
- name: Upload hostconfig
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.compiler }}_hostconfigs
path: ./extracted_hc/export_hostconfig/*
81 changes: 81 additions & 0 deletions .github/workflows/test_windows_tpls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# This is a basic workflow that is manually triggered

name: Manual test for Axom's TPLs on Windows

# Controls when the action will run.
# This workflow runs when manually triggered using the UI or API.
on:
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This job invokes uberenv to build our TPLs for two "triplets"
run_uberenv:
name: Runs ${{ matrix.triplet }} ${{ matrix.cfg }} uberenv with vcpkg
# The type of runner that the job will run on
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
arch: ["x64", "x86"]
cfg: ["Debug", "Release"]
include:
- arch: "x64"
triplet: "x64-windows"
msvc: "201964"
- arch: "x86"
triplet: "x86-windows"
msvc: "2019"

steps:
- name: Checkout repo w/ submodules
uses: actions/checkout@v2
with:
submodules: recursive

- name: Set up python
uses: actions/setup-python@v2
with:
python-version: '3.7'

- name: List path and files
run: ls
- name: Run uberenv (${{ matrix.triplet }})
run: python3 ./scripts/uberenv/uberenv.py --triplet ${{ matrix.triplet }}
- name: Save Uberenv logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: uberenv_artifacts_${{ matrix.triplet }}_${{ matrix.cfg }}.zip
path: |
${{ github.workspace }}/uberenv_libs/vcpkg/buildtrees/*/*.log
${{ github.workspace }}/uberenv_libs/vcpkg/buildtrees/*/*.err
${{ github.workspace }}/uberenv_libs/*.cmake
- name: Copy host-config
run: |
ls
Copy-Item -Path ".\uberenv_libs\*.cmake" -Destination ".\hc.cmake"
- name: Configure axom
run: |
python3 config-build.py -bp build_axom -ip install_axom -hc hc.cmake --msvc ${{ matrix.msvc }}
- name: Build axom (${{ matrix.triplet }} ${{ matrix.cfg }})
run: |
cd build_axom
ls
cmake --build . --config ${{ matrix.cfg }}
- name: Test axom (${{ matrix.triplet }} ${{ matrix.cfg }})
run: |
cd build_axom
ls
ctest -C ${{ matrix.cfg }} --no-compress-output -T Test
- name: Save CTest logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: ctest_artifacts_${{ matrix.triplet }}_${{ matrix.cfg }}.zip
path: |
${{ github.workspace }}/build_axom/**/*.xml
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ tpl_dirs_summary.json
*.swp
*.vscode*
uberenv_libs
*_build*
60 changes: 60 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC and
# other Axom Project Developers. See the top-level LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)

variables:
GIT_SUBMODULE_STRATEGY: recursive
PROJECT_ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
BUILD_ROOT: ${CI_PROJECT_DIR}
FULL_BUILD_ROOT: ${CI_BUILDS_DIR}/axom/${CI_JOB_NAME}

stages:
- allocate
- build
- release

.src_workflow:
rules:
- if: '$FULL_BUILD != "ON"'

.full_workflow:
rules:
- if: '$FULL_BUILD == "ON"'

####
# Template
.src_build_script:
script:
# Use pre-existing allocation if any
- JOBID=$(if [[ "$SYS_TYPE" == "toss_3_x86_64_ib" ]]; then squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A; fi)
- ASSIGN_ID=$(if [[ -n "${JOBID}" ]]; then echo "--jobid=${JOBID}"; fi)
# BUILD + TEST
- echo -e "section_start:$(date +%s):src_build_and_test\r\e[0K
Source Build and Test ${CI_PROJECT_NAME}"
- ${ALLOC_COMMAND} python3 scripts/llnl_scripts/build_src.py -v --host-config ${HOST_CONFIG} --extra-cmake-options -DENABLE_DOCS=OFF
- echo -e "section_end:$(date +%s):src_build_and_test\r\e[0K"
artifacts:
paths:
- _axom_build_and_test_*/output.log*.txt
- _axom_build_and_test_*/build-*/output.log*.txt
reports:
junit: _axom_build_and_test_*/build-*/junit.xml

.full_build_script:
script:
- echo -e "section_start:$(date +%s):full_build_and_test\r\e[0K
Full Build and Test ${CI_PROJECT_NAME}"
- ${ALLOC_COMMAND} python3 scripts/llnl_scripts/build_tpls.py -v --spec="${SPEC} ${EXTRA_SPEC}" --directory=${FULL_BUILD_ROOT}
- echo -e "section_end:$(date +%s):full_build_and_test\r\e[0K"
artifacts:
paths:
- ${FULL_BUILD_ROOT}/${SYS_TYPE}/*/_axom_build_and_test_*/output.log*.txt
- ${FULL_BUILD_ROOT}}/${SYS_TYPE}/*/_axom_build_and_test_*/build-*/output.log*.txt
reports:
junit: ${FULL_BUILD_ROOT}/${SYS_TYPE}/*/_axom_build_and_test_*/build-*/junit.xml

# This is where jobs are included
include:
- local: .gitlab/build_ruby.yml
- local: .gitlab/build_lassen.yml
105 changes: 105 additions & 0 deletions .gitlab/build_lassen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Copyright (c) 2017-2021, Lawrence Livermore National Security, LLC and
# other Axom Project Developers. See the top-level LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)

####
# This is the share configuration of jobs for lassen
.on_lassen:
variables:
tags:
- shell
- lassen
rules:
- if: '$CI_COMMIT_BRANCH =~ /_lnone/ || $ON_LASSEN == "OFF"' #run except if ...
when: never
- when: on_success

####
# Load required CUDA module
.with_cuda:
before_script:
- module load cuda/10.1.243

####
# Template
.src_build_on_lassen:
stage: build
variables:
ALLOC_COMMAND: "lalloc 1 -W 25 -q pdebug"
extends: [.src_build_script, .on_lassen, .src_workflow]
needs: []

.full_build_on_lassen:
stage: build
variables:
ALLOC_COMMAND: "lalloc 1 -W 45 -q pdebug"
extends: [.full_build_script, .on_lassen, .full_workflow]
needs: []

####
# PR Build jobs
lassen-clang_8_0_1_nvcc_xlf-src:
variables:
COMPILER: "clang@8.0.1_nvcc_xlf"
HOST_CONFIG: "lassen-blueos_3_ppc64le_ib_p9-${COMPILER}.cmake"
extends: [.src_build_on_lassen, .with_cuda]

lassen-clang_9_0_0_upstream_xlf-src:
variables:
COMPILER: "clang@9.0.0_upstream_xlf"
HOST_CONFIG: "lassen-blueos_3_ppc64le_ib_p9-${COMPILER}.cmake"
extends: [.src_build_on_lassen]

lassen-gcc_7_3_1-src:
variables:
COMPILER: "gcc@7.3.1"
HOST_CONFIG: "lassen-blueos_3_ppc64le_ib_p9-${COMPILER}.cmake"
extends: [.src_build_on_lassen]

lassen-xl_16_1_1-src:
variables:
COMPILER: "xl@16.1.1_coral"
HOST_CONFIG: "lassen-blueos_3_ppc64le_ib_p9-${COMPILER}.cmake"
extends: [.src_build_on_lassen]

lassen-xl_16_1_1_nvcc-src:
variables:
COMPILER: "xl@16.1.1_nvcc"
HOST_CONFIG: "lassen-blueos_3_ppc64le_ib_p9-${COMPILER}.cmake"
extends: [.src_build_on_lassen, .with_cuda]


####
# Full Build jobs
lassen-clang_8_0_1_nvcc_xlf-full:
variables:
COMPILER: "clang@8.0.1_nvcc_xlf"
SPEC: "%${COMPILER}+mfem+cuda~openmp"
EXTRA_SPEC: "cuda_arch=70"
extends: [.full_build_on_lassen, .with_cuda]

lassen-clang_9_0_0_upstream_xlf-full:
variables:
COMPILER: "clang@9.0.0_upstream_xlf"
SPEC: "%${COMPILER}+mfem~openmp"
extends: [.full_build_on_lassen]

lassen-gcc_7_3_1-full:
variables:
COMPILER: "gcc@7.3.1"
SPEC: "%${COMPILER}+mfem"
extends: [.full_build_on_lassen]

lassen-xl_16_1_1_coral-full:
variables:
COMPILER: "xl@16.1.1_coral"
SPEC: "%${COMPILER}+mfem~openmp~cpp14"
extends: [.full_build_on_lassen]

lassen-xl_16_1_1_nvcc-full:
variables:
COMPILER: "xl@16.1.1_nvcc"
SPEC: "%${COMPILER}+mfem+cuda~openmp~cpp14"
EXTRA_SPEC: "cuda_arch=70"
extends: [.full_build_on_lassen, .with_cuda]

0 comments on commit 008da77

Please sign in to comment.