Skip to content

Feature #3033 v12.0.0 (#3042) #19

Feature #3033 v12.0.0 (#3042)

Feature #3033 v12.0.0 (#3042) #19

name: Compilation Options
# Test matrix of MET configuration/compilation options
on:
# Note that scheduled cron events are run on the default branch.
# Enable this schedule when main_v12.0 becomes the default branch.
# schedule:
# - cron: '0 7 * * 0''
push:
tags:
- '**'
workflow_dispatch:
env:
DOCKERHUB_REPO: dtcenter/met-dev
jobs:
job_control:
name: Determine which jobs to run
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set job controls
id: job_status
run: .github/jobs/set_job_controls.sh
env:
commit_msg: ${{ github.event.head_commit.message }}
force_tests: ${{ github.event.inputs.force_tests }}
outputs:
met_base_repo: ${{ steps.job_status.outputs.met_base_repo }}
met_base_tag: ${{ steps.job_status.outputs.met_base_tag }}
branch_name: ${{ steps.job_status.outputs.branch_name }}
compile:
name: Config Opts
runs-on: ubuntu-latest
needs: job_control
strategy:
matrix:
include:
- jobid: 'job1'
config: ''
- jobid: 'job2'
config: '--enable-all'
- jobid: 'job3'
config: '--enable-grib2'
- jobid: 'job4'
config: '--enable-python'
- jobid: 'job5'
config: '--enable-ugrid'
- jobid: 'job6'
config: '--enable-lidar2nc'
- jobid: 'job7'
config: '--enable-mode_graphics'
- jobid: 'job8'
config: '--enable-modis'
- jobid: 'job9'
config: '--enable-all MET_CXX_STANDARD=11'
- jobid: 'job10'
config: '--enable-all MET_CXX_STANDARD=14'
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Create directories to store output
run: mkdir -p ${RUNNER_WORKSPACE}/logs
- name: Compile MET in Docker
run: .github/jobs/build_docker_image.sh
env:
SOURCE_BRANCH: ${{ needs.job_control.outputs.branch_name }}
MET_BASE_REPO: ${{ needs.job_control.outputs.met_base_repo }}
MET_BASE_TAG: ${{ needs.job_control.outputs.met_base_tag }}
MET_CONFIG_OPTS: ${{ matrix.config }}
- name: Copy all build log files into logs directory
if: always()
run: cp ${GITHUB_WORKSPACE}/*.log ${RUNNER_WORKSPACE}/logs/
- name: Upload logs as artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: logs_${{ matrix.jobid }}
path: ${{ runner.workspace }}/logs
if-no-files-found: ignore