Skip to content

refactor: use DaqScalersSequence from coatjava to generate QA bins #1600

refactor: use DaqScalersSequence from coatjava to generate QA bins

refactor: use DaqScalersSequence from coatjava to generate QA bins #1600

Workflow file for this run

name: ci
on:
pull_request:
push:
branches:
- main
defaults:
run:
shell: bash
env:
dataset: ci_test
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# build
#############################################################################
build_timeline:
runs-on: ubuntu-latest
container:
image: codecr.jlab.org/hallb/clas12/container-forge/base:latest
options: --user root
steps:
- uses: actions/checkout@v5
- name: build
run: mvn install
- run: bin/qtl --version
- name: tar # to preserve any permissions
run: |
tar cavf build_timeline.tar.zst target
- uses: actions/upload-artifact@v4
with:
name: build_timeline
retention-days: 1
path: build_timeline.tar.zst
# download test data
#############################################################################
download_test_data:
runs-on: ubuntu-latest
# NOTE: using Ubuntu runner, rather than a `container-forge` image, since it's much faster for cache hits
strategy:
fail-fast: true
matrix:
type: [ detectors, physics ]
include:
- { type: detectors, schema: mon }
- { type: physics, schema: dst }
env:
xrootd_file: xroot://sci-xrootd.jlab.org//osgpool/hallb/clas12/validation/recon/${{ matrix.schema }}/validation_files.tar.zst
steps:
- uses: actions/cache@v4
id: cache
with:
key: validation_files_${{ matrix.type }}
path: validation_files.tar.zst
lookup-only: true
- name: install dependencies
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: |
sudo apt -y update
sudo apt -y upgrade
sudo apt -y install xrootd-client
- name: download
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: xrdcp ${{ env.xrootd_file }} ./
- run: ls -lh .
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
# histogramming
#############################################################################
run_histogram:
needs:
- build_timeline
- download_test_data
runs-on: ubuntu-latest
container:
image: codecr.jlab.org/hallb/clas12/container-forge/base:latest
options: --user root
strategy:
fail-fast: false
matrix:
type: [ detectors, physics ]
steps:
- uses: actions/checkout@v5
- uses: actions/cache/restore@v4
with:
key: validation_files_${{ matrix.type }}
path: validation_files.tar.zst
- name: download timeline build
uses: actions/download-artifact@v5
with:
name: build_timeline
- name: untar
run: ls *.tar.zst | xargs -I{} tar xavf {}
- run: tree
- name: qtl histogram
run: |
bin/qtl histogram \
-d ${{env.dataset}} \
--findhipo \
--series \
--focus-${{matrix.type}} \
validation_files
- run: tree slurm
- run: tree outfiles
- uses: actions/upload-artifact@v4
with:
name: slurm_${{ matrix.type }}
retention-days: 1
path: slurm
- uses: actions/upload-artifact@v4
with:
name: outfiles_histogram_${{ matrix.type }}
retention-days: 14
path: outfiles
test_swifjob:
needs:
- build_timeline
- download_test_data
runs-on: ubuntu-latest
container:
image: codecr.jlab.org/hallb/clas12/container-forge/base:latest
options: --user root
strategy:
fail-fast: false
matrix:
type: [ detectors, physics ]
steps:
- uses: actions/checkout@v5
- uses: actions/cache/restore@v4
with:
key: validation_files_${{ matrix.type }}
path: validation_files.tar.zst
- name: download timeline build
uses: actions/download-artifact@v5
with:
name: build_timeline
- name: untar
run: ls *.tar.zst | xargs -I{} tar xavf {}
- run: tree
- name: test swifjob
run: |
single_rundir=$(find validation_files -mindepth 1 -maxdepth 1 -type d | head -n1)
echo "single_rundir = $single_rundir"
util/test-swifjob.sh $single_rundir runner --focus-${{ matrix.type }}
- run: tree runner
# timeline production
#############################################################################
run_analysis:
needs:
- run_histogram
runs-on: ubuntu-latest
container:
image: codecr.jlab.org/hallb/clas12/container-forge/base:latest
options: --user root
strategy:
fail-fast: false
matrix:
type: [ detectors, physics ]
include:
- { type: detectors, qtl_cmd: 'bin/qtl analysis', args: '-j 4 --skip-mya' }
- { type: physics, qtl_cmd: 'bin/qtl physics', args: '' }
steps:
- uses: actions/checkout@v5
- name: download outfiles
uses: actions/download-artifact@v5
with:
pattern: outfiles_*
merge-multiple: true
path: outfiles
- name: download timeline build
uses: actions/download-artifact@v5
with:
name: build_timeline
- name: untar
run: ls *.tar.zst | xargs -I{} tar xavf {}
- run: tree
- name: qtl analysis
run: |
${{matrix.qtl_cmd}} \
-d ${{env.dataset}} \
-p web \
--custom-pub \
${{matrix.args}}
- run: tree outfiles
- name: summarize
run: |
echo "# Output File Tree" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
tree web | xargs -0 -I{} echo {} >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
- uses: actions/upload-artifact@v4
with:
name: outfiles_timelines_${{ matrix.type }}
retention-days: 14
path: outfiles
- uses: actions/upload-artifact@v4
with:
name: web_timelines_${{ matrix.type }}
retention-days: 14
path: web