Skip to content

Commit

Permalink
Add CYLC_TASK_SHARE_CYCLE_DIR to task script. (cylc#6117)
Browse files Browse the repository at this point in the history
Add `CYLC_TASK_SHARE_CYCLE_DIR` environment variable

* Create `share/cycle/<cycle>`.
* Expose it to jobs as `CYLC_TASK_SHARE_CYCLE_DIR`

---------

Co-authored-by: Oliver Sanders <[email protected]>
Co-authored-by: Ronnie Dutta <[email protected]>
  • Loading branch information
3 people authored Jan 14, 2025
1 parent 0ba5275 commit 690e610
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 1 deletion.
1 change: 1 addition & 0 deletions changes.d/6117.feat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Create `workflow/share/cycle/<cycle>` and make it available to jobs as `$CYLC_TASK_SHARE_CYCLE_DIR`.
3 changes: 2 additions & 1 deletion 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_TASK_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 @@ -134,7 +135,7 @@ cylc__job__main() {
export PATH="${CYLC_WORKFLOW_RUN_DIR}/share/bin:${CYLC_WORKFLOW_RUN_DIR}/bin:${PATH}"
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_TASK_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
1 change: 1 addition & 0 deletions tests/functional/cylc-clean/01-remote.t
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ ${TEST_DIR}/${SYM_NAME}/cycle/cylc-run/${CYLC_TEST_REG_BASE}
| \`-- ${TEST_NAME_BASE}
| \`-- share
| \`-- cycle
| \`-- 1
\`-- leave-me-alone
${TEST_DIR}/${SYM_NAME}/job/cylc-run/${CYLC_TEST_REG_BASE}
\`-- ${FUNCTIONAL_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_TASK_SHARE_CYCLE_DIR}/stuff"
"""

0 comments on commit 690e610

Please sign in to comment.