From 19d1220eae33b0ab31a208bf0ef5a77a44a7ac4c Mon Sep 17 00:00:00 2001 From: appel_c Date: Tue, 23 Sep 2025 23:15:21 -0500 Subject: [PATCH] refactor: add log outputs to jobs --- action.yml | 111 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 86 insertions(+), 25 deletions(-) diff --git a/action.yml b/action.yml index 07e8e9c..4df5918 100644 --- a/action.yml +++ b/action.yml @@ -63,66 +63,101 @@ runs: echo "PLUGIN_REPO_NAME=${PLUGIN_REPO_NAME}" >> $GITHUB_ENV #$GITEA_ENV echo "Plugin repository name: $PLUGIN_REPO_NAME" + echo "Exit Code: 0" >> $LOG_FILE + - name: Checkout BEC Core shell: bash id: bec_core_checkout run: | + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/checkout_bec_core.log" + + echo "Cloning BEC Core repository" >> $LOG_FILE 2>&1 + echo "Using branch: ${{ inputs.BEC_CORE_BRANCH }}" >> $LOG_FILE 2>&1 + # Create a temporary directory for the plugin repository mkdir -p ./_bec_checkout_/ cd ./_bec_checkout_/ # Clone the repository with fallback for branch - if git clone --depth 1 --branch "${{ inputs.BEC_CORE_BRANCH }}" https://github.com/bec-project/bec.git; then - echo "Successfully cloned with branch ${{ inputs.BEC_CORE_BRANCH }}" + if git clone --depth 1 --branch "${{ inputs.BEC_CORE_BRANCH }}" https://github.com/bec-project/bec.git >> $LOG_FILE 2>&1; then + echo "Successfully cloned with branch ${{ inputs.BEC_CORE_BRANCH }}" >> $LOG_FILE 2>&1 else - echo "Failed to clone with branch ${{ inputs.BEC_CORE_BRANCH }}, trying without specific branch" - git clone --depth 1 https://github.com/bec-project/bec.git + echo "Failed to clone with branch ${{ inputs.BEC_CORE_BRANCH }}, trying without specific branch" >> $LOG_FILE 2>&1 + git clone --depth 1 https://github.com/bec-project/bec.git >> $LOG_FILE 2>&1 fi + echo "Exit Code: 0" >> $LOG_FILE + cd ../ - name: Install Ophyd Devices shell: bash id: ophyd_devices_checkout run: | + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/checkout_ophyd_devices.log" + # Create a temporary directory for the plugin repository mkdir -p ./_ophyd_devices_checkout_/ cd ./_ophyd_devices_checkout_/ + echo "Cloning Ophyd Devices repository" >> $LOG_FILE 2>&1 + echo "Using branch: ${{ inputs.OPHYD_DEVICES_BRANCH }}" >> $LOG_FILE 2>&1 + # Clone the repository with fallback for branch - if git clone --depth 1 --branch "${{ inputs.OPHYD_DEVICES_BRANCH }}" https://github.com/bec-project/ophyd_devices.git; then - echo "Successfully cloned with branch ${{ inputs.OPHYD_DEVICES_BRANCH }}" + if git clone --depth 1 --branch "${{ inputs.OPHYD_DEVICES_BRANCH }}" https://github.com/bec-project/ophyd_devices.git >> $LOG_FILE 2>&1; then + echo "Successfully cloned with branch ${{ inputs.OPHYD_DEVICES_BRANCH }}" >> $LOG_FILE 2>&1 else - echo "Failed to clone with branch ${{ inputs.OPHYD_DEVICES_BRANCH }}, trying without specific branch" - git clone --depth 1 https://github.com/bec-project/ophyd_devices.git + echo "Failed to clone with branch ${{ inputs.OPHYD_DEVICES_BRANCH }}, trying without specific branch" >> $LOG_FILE 2>&1 + git clone --depth 1 https://github.com/bec-project/ophyd_devices.git >> $LOG_FILE 2>&1 fi + echo "Exit Code: 0" >> $LOG_FILE + cd ../ - name: Install BEC Widgets shell: bash id: bec_widgets_checkout run: | + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/checkout_bec_widgets.log" + # Create a temporary directory for the plugin repository mkdir -p ./_bec_widgets_checkout_/ cd ./_bec_widgets_checkout_/ + + + echo "Cloning BEC Widgets repository" >> $LOG_FILE 2>&1 + echo "Using branch: ${{ inputs.BEC_WIDGETS_BRANCH }}" >> $LOG_FILE 2>&1 + # Clone the repository with fallback for branch - if git clone --depth 1 --branch "${{ inputs.BEC_WIDGETS_BRANCH }}" https://github.com/bec-project/bec_widgets.git; then - echo "Successfully cloned with branch ${{ inputs.BEC_WIDGETS_BRANCH }}" + if git clone --depth 1 --branch "${{ inputs.BEC_WIDGETS_BRANCH }}" https://github.com/bec-project/bec_widgets.git >> $LOG_FILE 2>&1; then + echo "Successfully cloned with branch ${{ inputs.BEC_WIDGETS_BRANCH }}" >> $LOG_FILE 2>&1 else - echo "Failed to clone with branch ${{ inputs.BEC_WIDGETS_BRANCH }}, trying without specific branch" - git clone --depth 1 https://github.com/bec-project/bec_widgets.git + echo "Failed to clone with branch ${{ inputs.BEC_WIDGETS_BRANCH }}, trying without specific branch" >> $LOG_FILE 2>&1 + git clone --depth 1 https://github.com/bec-project/bec_widgets.git >> $LOG_FILE 2>&1 fi + echo "Exit Code: 0" >> $LOG_FILE + cd ../ - name: Install APT_PACKAGES if: ${{ inputs.APT_PACKAGES != '' }} shell: bash run: | - echo "Installing additional APT packages: ${{ inputs.APT_PACKAGES }}" - sudo apt-get update - sudo apt-get install -y ${{ inputs.APT_PACKAGES }} + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/install_apt_packages.log" + + echo "Installing additional APT packages: ${{ inputs.APT_PACKAGES }}" >> $LOG_FILE 2>&1 + sudo apt-get update >> $LOG_FILE 2>&1 + sudo apt-get install -y ${{ inputs.APT_PACKAGES }} >> $LOG_FILE 2>&1 - name: Setup Python uses: actions/setup-python@v4 @@ -132,26 +167,52 @@ runs: - name: Install Python dependencies shell: bash run: | - python -m pip install --upgrade pip + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/install_python_dependencies.log" + + echo "Installing Python dependencies" >> $LOG_FILE 2>&1 + echo "Using Python version: $(python --version)" >> $LOG_FILE 2>&1 + + python -m pip install --upgrade pip >> $LOG_FILE 2>&1 # Install Core dependencies - pip install uv - uv pip install --system -e ./_bec_checkout_/bec/bec_lib/[dev] - uv pip install --system -e ./_bec_checkout_/bec/bec_ipython_client - uv pip install --system -e ./_bec_checkout_/bec/bec_server[dev] - uv pip install --system -e ./_bec_widgets_checkout_/bec_widgets[dev,pyside6] - uv pip install --system -e ./_ophyd_devices_checkout_/ophyd_devices[dev] - + pip install uv >> $LOG_FILE 2>&1 + uv pip install --system -e ./_bec_checkout_/bec/bec_lib/[dev] >> $LOG_FILE 2>&1 + uv pip install --system -e ./_bec_checkout_/bec/bec_ipython_client >> $LOG_FILE 2>&1 + uv pip install --system -e ./_bec_checkout_/bec/bec_server[dev] >> $LOG_FILE 2>&1 + uv pip install --system -e ./_bec_widgets_checkout_/bec_widgets[dev,pyside6] >> $LOG_FILE 2>&1 + uv pip install --system -e ./_ophyd_devices_checkout_/ophyd_devices[dev] >> $LOG_FILE 2>&1 + # plugin repo name was stored earlier source $GITHUB_ENV - pip install -e "./_plugin_checkout_/${PLUGIN_REPO_NAME}[dev]" + pip install -e "./_plugin_checkout_/${PLUGIN_REPO_NAME}[dev]" >> $LOG_FILE 2>&1 + + echo "Exit Code: 0" >> $LOG_FILE - name: Run pytest for Plugin shell: bash run: | + # Create log directory + OUTPUT_DIR="$PWD/outputs" # absolute path + LOG_FILE="${OUTPUT_DIR}/pytest_plugin.log" + + echo "Running pytest for plugin repository" >> $LOG_FILE 2>&1 + source $GITHUB_ENV cd "./_plugin_checkout_/${PLUGIN_REPO_NAME}" - pytest --random-order --cov=. --cov-config=./pyproject.toml --cov-branch --cov-report=xml --no-cov-on-fail ./tests/ || test $? -eq 5 + # run pytest and capture its exit code + pytest --random-order --cov=. --cov-config=./pyproject.toml \ + --cov-branch --cov-report=xml --no-cov-on-fail ./tests/ \ + >> "$LOG_FILE" 2>&1 || rc=$? + # pytest --random-order --cov=. --cov-config=./pyproject.toml --cov-branch --cov-report=xml --no-cov-on-fail ./tests/ || test $? -eq 5 >> $LOG_FILE 2>&1 + + rc=${rc:-0} + if [ "$rc" -eq 0 ] || [ "$rc" -eq 5 ]; then + echo "Exit Code: 0" >> $LOG_FILE + else + echo "Exit Code: $rc" >> $LOG_FILE + fi # - name: Checkout BEC Core