Skip to content

Commit

Permalink
Add CYLC_SHARE_CYCLE_DIR to task script.
Browse files Browse the repository at this point in the history
  • Loading branch information
wxtim committed May 31, 2024
1 parent 450728a commit 02e0c65
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 0 deletions.
1 change: 1 addition & 0 deletions changes.d/6117.feat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Make workflow/share/cycle/<cycle> available as CYLC_SHARE_CYCLE_DIR
2 changes: 2 additions & 0 deletions cylc/flow/etc/job.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ cylc__job__main() {
CYLC_TASK_WORK_DIR_BASE="${CYLC_TASK_CYCLE_POINT}/${CYLC_TASK_NAME}"
fi
export CYLC_TASK_WORK_DIR="${CYLC_WORKFLOW_WORK_DIR}/${CYLC_TASK_WORK_DIR_BASE}"
export CYLC_SHARE_CYCLE_DIR="${CYLC_WORKFLOW_SHARE_DIR}/cycle/${CYLC_TASK_CYCLE_POINT}"
typeset contact="${CYLC_WORKFLOW_RUN_DIR}/.service/contact"
if [[ -f "${contact}" ]]; then
# (contact file not present for polled platforms)
Expand Down Expand Up @@ -135,6 +136,7 @@ cylc__job__main() {
export PYTHONPATH="${CYLC_WORKFLOW_RUN_DIR}/share/lib/python:${CYLC_WORKFLOW_RUN_DIR}/lib/python:${PYTHONPATH:-}"
# Create share and work directories
mkdir -p "${CYLC_WORKFLOW_SHARE_DIR}" || true
mkdir -p "${CYLC_SHARE_CYCLE_DIR}" || true
mkdir -p "$(dirname "${CYLC_TASK_WORK_DIR}")" || true
mkdir -p "${CYLC_TASK_WORK_DIR}"
cd "${CYLC_TASK_WORK_DIR}"
Expand Down
31 changes: 31 additions & 0 deletions tests/functional/jobscript/02-share-cycle-cycle.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
# THIS FILE IS PART OF THE CYLC WORKFLOW ENGINE.
# Copyright (C) NIWA & British Crown (Met Office) & Contributors.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# Assert that workflow/share/cycle/<cycle> is created and exported.

. "$(dirname "$0")/test_header"
set_test_number 4

# Setup:
install_workflow "${TEST_NAME_BASE}" "${TEST_NAME_BASE}"
run_ok "${TEST_NAME_BASE}.validate" cylc validate "${WORKFLOW_NAME}"
workflow_run_ok "${TEST_NAME_BASE}.play" cylc play --no-detach "${WORKFLOW_NAME}"

grep_ok "Hello World" "${WORKFLOW_RUN_DIR}/share/cycle/19900211T0000Z/stuff"
grep_ok "Hello World" "${WORKFLOW_RUN_DIR}/share/cycle/19900212T0000Z/stuff"

purge
11 changes: 11 additions & 0 deletions tests/functional/jobscript/02-share-cycle-cycle/flow.cylc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[scheduling]
initial cycle point = 19900211
final cycle point = 19900212
[[graph]]
P1D = task

[runtime]
[[task]]
script = """
echo "Hello World" > "${CYLC_SHARE_CYCLE_DIR}/stuff"
"""

0 comments on commit 02e0c65

Please sign in to comment.