Skip to content

Commit ec4e7b5

Browse files
authored
Merge pull request #310 from JCSDA-internal/release/2.0.0
Release/2.0.0
2 parents 3cbf144 + 6fca1b5 commit ec4e7b5

File tree

423 files changed

+46178
-7589
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

423 files changed

+46178
-7589
lines changed

.clang-format

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
Language: Cpp
3+
BasedOnStyle: Google
4+
AccessModifierOffset: -2
5+
AlignAfterOpenBracket: Align
6+
AlignConsecutiveAssignments: true
7+
AlignEscapedNewlines: Right
8+
AlignOperands: true
9+
BreakBeforeBinaryOperators: true
10+
ColumnLimit: 100
11+
ConstructorInitializerIndentWidth: 4
12+
ContinuationIndentWidth: 2
13+
FixNamespaceComments: true
14+
IndentPPDirectives: AfterHash
15+
IndentWidth: 2
16+
NamespaceIndentation: None
17+
PointerAlignment: Right
18+
ReflowComments: false
19+
SortIncludes: true
20+
SortUsingDeclarations: true
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Bug report
3+
about: Use this template to report bugs
4+
title: "[Bug]"
5+
labels: 'bug'
6+
assignees: ''
7+
8+
---
9+
10+
## Current behavior (describe the bug)
11+
>[Be sure to add a Pipeline, Label, Estimate, Assignees, and Epic](https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/inside/practices/issues.html)
12+
13+
## To Reproduce
14+
15+
> What computer are you running on?
16+
17+
> What compilers/modules are you using?
18+
19+
> Steps to reproduce the behavior
20+
21+
1.
22+
2.
23+
3.
24+
...
25+
26+
## Expected behavior
27+
28+
## Additional information (optional)

.github/ISSUE_TEMPLATE/config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: JCSDA
4+
url: https://jcsda.org/
5+
about: JCSDA web site
6+
- name: Forums
7+
url: https://forums.jcsda.org/
8+
about: JCSDA user/developer forums
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: General issue template
3+
about: Use this template for general issues
4+
title: "[New issue]"
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
## Description
11+
>Provide a detailed description of this issue.
12+
>What problem needs to be fixed? What new capability needs to be added?
13+
>If this is a bug, describe the current behavior (or use the bug template).
14+
>[Be sure to add a Pipeline, Label, Estimate, Assignees, and Epic](https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/inside/practices/issues.html)
15+
16+
## Requirements
17+
18+
>If this is a new feature: What does the new code need to accomplish? Does it require new software dependencies (e.g. new jedi-stack components or new python modules?)
19+
>If this is a bugfix: What is the expected behavior?
20+
21+
## Acceptance Criteria (Definition of Done)
22+
>What does it mean for this to be finished?
23+
24+
## Dependencies
25+
>What must be done before this can be done? Add issue dependencies in ZenHub as appropriate
26+
>Does this block progress on other issues? Add this issue as a dependency to other ZenHub issues as appropriate

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
*DS_Store*
22
._*
33
*.swp
4+
/.vs
5+
/out/build
6+
build
7+
/ioda-data
8+
/jedicmake
9+
/CMakeSettings.json
10+
.vs

CI/CMakeLists.txt

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# (C) Copyright 2017 UCAR
1+
# (C) Copyright 2017-2021 UCAR
22
#
33
# This software is licensed under the terms of the Apache Licence Version 2.0
44
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
@@ -9,22 +9,52 @@
99

1010
cmake_minimum_required( VERSION 3.12 FATAL_ERROR )
1111

12-
project( ioda-bundle LANGUAGES C CXX Fortran )
12+
project( ioda-bundle VERSION 1.0.0 LANGUAGES C CXX Fortran )
13+
14+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1315

14-
find_package(ecbuild)
15-
set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_CURRENT_SOURCE_DIR}/ecbuild/cmake;${CMAKE_MODULE_PATH}")
1616
include( ecbuild_bundle )
1717

1818
set( ENABLE_MPI ON CACHE BOOL "Compile with MPI" )
1919

2020
ecbuild_bundle_initialize()
2121

22-
option("BUNDLE_SKIP_ECKIT" "Don't build eckit" "ON") #Skip eckit build unless user passes -DBUNDLE_SKIP_ECKIT=OFF
23-
ecbuild_bundle( PROJECT fckit GIT "https://github.com/JCSDA-internal/fckit.git" )
24-
ecbuild_bundle( PROJECT atlas GIT "https://github.com/JCSDA-internal/atlas.git" )
22+
ecbuild_bundle( PROJECT jedicmake GIT "https://github.com/JCSDA-internal/jedi-cmake.git" )
23+
include( jedicmake/cmake/Functions/git_functions.cmake )
24+
25+
# ECMWF libs
26+
# ----------
27+
option("BUNDLE_SKIP_ECKIT" "Don't build eckit" "ON" ) # Skip eckit build unless user passes -DBUNDLE_SKIP_ECKIT=OFF
28+
option("BUNDLE_SKIP_FCKIT" "Don't build fckit" "ON") # Build fckit unless user passes -DBUNDLE_SKIP_FCKIT=OFF
29+
option("BUNDLE_SKIP_ATLAS" "Don't build atlas" "ON") # Build atlas unless user passes -DBUNDLE_SKIP_ATLAS=OFF
30+
31+
ecbuild_bundle( PROJECT eckit GIT "https://github.com/ecmwf/eckit.git" TAG 1.16.0 )
32+
ecbuild_bundle( PROJECT fckit GIT "https://github.com/ecmwf/fckit.git" TAG 0.9.2 )
33+
ecbuild_bundle( PROJECT atlas GIT "https://github.com/ecmwf/atlas.git" TAG 0.24.1 )
34+
35+
# Core JEDI repositories
36+
ecbuild_bundle( PROJECT oops GIT "https://github.com/JCSDA-internal/oops.git" )
37+
ecbuild_bundle( PROJECT ioda GIT "https://github.com/JCSDA-internal/ioda.git" )
38+
39+
40+
# If IODA branch is being built set GIT_BRANCH_FUNC to IODA's current branch.
41+
# If a tagged version of IODA is being built set GIT_TAG_FUNC to ioda's current tag. In this case,
42+
# IODA test files will be download from UCAR DASH and ioda-data repo will not be cloned.
43+
find_branch_name(REPO_DIR_NAME ioda)
44+
45+
# When LOCAL_PATH_JEDI_TESTFILES is set to the directory of IODA test files stored
46+
# in a local directory, ioda-data repo will not be cloned
47+
if( NOT DEFINED ENV{LOCAL_PATH_JEDI_TESTFILES} AND NOT DEFINED ${GIT_TAG_FUNC} )
48+
ecbuild_bundle( PROJECT ioda-data GIT "https://github.com/JCSDA-internal/ioda-data.git" )
49+
endif()
50+
51+
# If IODA's current branch is available in ioda-data repo, that branch will be checked out
52+
branch_checkout (REPO_DIR_NAME ioda-data
53+
BRANCH ${GIT_BRANCH_FUNC} )
54+
2555

26-
ecbuild_bundle( PROJECT oops GIT "https://github.com/JCSDA/oops.git" )
27-
ecbuild_bundle( PROJECT ioda GIT "https://github.com/JCSDA/ioda.git" )
56+
# Build IODA converters
57+
#ecbuild_bundle( PROJECT iodaconv GIT "https://github.com/JCSDA-internal/ioda-converters.git" )
2858

2959
# Build Doxygen documentation
3060
option(BUILD_IODA_BUNDLE_DOC "Build documentation" OFF)

CI/buildspec_clang.yml

Lines changed: 100 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
version: 0.2
2-
2+
33
env:
44
parameter-store:
55
GIT_USER: "/CodeBuild/Git_USER"
@@ -22,8 +22,11 @@ phases:
2222
- echo $CODEBUILD_WEBHOOK_TRIGGER
2323
- echo $CODEBUILD_WEBHOOK_BASE_REF
2424

25-
- ls
26-
- if [ "$CODEBUILD_WEBHOOK_EVENT" = "PULL_REQUEST_MERGED" ];
25+
# Codebuild only runs on PUSH events if HEAD_REF
26+
# is refs/heads/develop (merge to develop). In this
27+
# case CODEBUILD_GIT_BRANCH="develop"
28+
29+
- if [ "$CODEBUILD_WEBHOOK_EVENT" = "PUSH" ];
2730
then export CODEBUILD_GIT_BRANCH="develop";
2831
echo "Merging to develop";
2932
else export CODEBUILD_GIT_BRANCH=${CODEBUILD_WEBHOOK_HEAD_REF#refs/heads/};
@@ -37,13 +40,102 @@ phases:
3740
- echo Executing pre_build phase
3841
- git lfs install # creates .gitconfig
3942
- cp ~/.gitconfig .
43+
- mkdir /build_container
44+
- mkdir /jcsda
45+
46+
- if [ "$CODEBUILD_GIT_BRANCH" = "develop" ];
47+
then export CODEBUILD_GIT_BRANCH_FORK="release-stable";
48+
export CODEBUILD_GIT_BRANCH_CRTM=${CRTM_JEDI_BRANCH};
49+
else export CODEBUILD_GIT_BRANCH_FORK=${CODEBUILD_GIT_BRANCH};
50+
export CODEBUILD_GIT_BRANCH_CRTM=${CODEBUILD_GIT_BRANCH};
51+
echo "CODEBUILD_GIT_BRANCH_FORK=${CODEBUILD_GIT_BRANCH_FORK}";
52+
fi
53+
54+
# Upload branch name and commit sha as CodeBuild artifact to S3
55+
- mkdir -p /jcsda/artifacts
56+
- echo ${CODEBUILD_GIT_BRANCH} > /jcsda/artifacts/branch_name.txt
57+
- echo ${CODEBUILD_RESOLVED_SOURCE_VERSION} > /jcsda/artifacts/commit_sha.tx
58+
59+
- cd CI
60+
61+
# jedi-cmake
62+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/jedi-cmake $CODEBUILD_GIT_BRANCH jedicmake /jcsda/ioda-bundle develop
63+
64+
# ioda
65+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/ioda $CODEBUILD_GIT_BRANCH ioda /jcsda/ioda-bundle develop
66+
67+
# oops
68+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/oops $CODEBUILD_GIT_BRANCH oops /jcsda/ioda-bundle develop
69+
70+
# internal repos
71+
#fckit
72+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/fckit $CODEBUILD_GIT_BRANCH_FORK fckit /jcsda/ioda-bundle release-stable
73+
74+
# atlas
75+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/atlas $CODEBUILD_GIT_BRANCH_FORK atlas /jcsda/ioda-bundle release-stable
4076

77+
# ioda-test
78+
- ./clone.sh $GIT_USER $GIT_PASS jcsda-internal/ioda-data $CODEBUILD_GIT_BRANCH ioda-data /jcsda/ioda-bundle develop
79+
80+
- cp CMakeLists.txt /jcsda/ioda-bundle
81+
- cp -r cmake /jcsda/ioda-bundle/
82+
# cdash upload setup
83+
- cp /jcsda/ioda-bundle/cmake/CTestConfig.cmake /jcsda/ioda-bundle
84+
85+
- chmod 777 -R /jcsda/ioda-bundle
86+
- cd /jcsda/ioda-bundle
87+
- ls
4188

42-
# get jedi-build-package
43-
- git clone https://$GIT_USER:[email protected]/jcsda-internal/jedi-build-package
44-
- cd jedi-build-package
45-
- pip install --user -e .
4689
build:
90+
on-failure: CONTINUE
4791
commands:
48-
- ~/.local/bin/jedi-build --gh-token=$GIT_PASS -j 4 --env-id=docker-clang --branch-map atlas:release-stable fckit:release-stable -br ${CODEBUILD_GIT_BRANCH} -p ioda -vvv -3 -u --submit-dashboard --site AWS --abort-on-build-errors --abort-on-test-errors
92+
- echo Executing build phase
93+
- echo $CODEBUILD_BUILD_SUCCEEDING
94+
- export BUILD_STATUS="0"
95+
- echo $BUILD_STATUS
96+
97+
# configure and build
98+
- cd /build_container
99+
- ecbuild -Wno-dev -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCDASH_OVERRIDE_GIT_BRANCH=$CODEBUILD_GIT_BRANCH -DCTEST_UPDATE_VERSION_ONLY=FALSE -DBUILD_PYTHON_BINDINGS=ON /jcsda/ioda-bundle
100+
- cd /build_container/ioda
101+
- cp ../DartConfiguration.tcl .
102+
- sed -i 's/ioda-bundle/ioda-bundle\/ioda/' DartConfiguration.tcl
103+
- sed -i 's/build_container/build_container\/ioda/' DartConfiguration.tcl
104+
- cat DartConfiguration.tcl
105+
- make -j4
106+
107+
- if [ "$CODEBUILD_BUILD_SUCCEEDING" = "1" ];
108+
then export BUILD_STATUS="1";
109+
echo "Build passed";
110+
fi
111+
- echo $BUILD_STATUS
112+
113+
# run ctest
114+
- cd /build_container/ioda
115+
- ctest -C RelWithDebInfo -D ExperimentalTest
116+
117+
finally:
118+
- cd /build_container/ioda
119+
- ctest -C RelWithDebInfo -D ExperimentalSubmit -M Continuous -- --track Continuous --group Continuous
120+
121+
post_build:
122+
commands:
123+
- echo Executing post_build phase
124+
- echo $CODEBUILD_BUILD_SUCCEEDING
125+
- echo $BUILD_STATUS
126+
127+
# upload find cdash url and upload it as CodeBuild artifact to S3
128+
- if [ "$BUILD_STATUS" = "1" ];
129+
then echo "Build & tests passed, find cdash url";
130+
bash /jcsda/ioda-bundle/ioda/CI/cdash-url.sh /build_container/ioda/Testing;
131+
url=$(bash /jcsda/ioda-bundle/ioda/CI/cdash-url.sh /build_container/ioda/Testing);
132+
echo $url;
133+
echo ${url} > /jcsda/artifacts/cdash-url.txt;
134+
cat /jcsda/artifacts/cdash-url.txt;
135+
else echo "Build failed";
136+
fi
49137

138+
artifacts:
139+
files:
140+
- '/jcsda/artifacts/*'
141+
name: ioda-clang-url

0 commit comments

Comments
 (0)