Update repo with template version v1.4.0
CI for bec_testing_plugin / test (pull_request) Failing after 6s
CI for bec_testing_plugin / test (push) Failing after 5s

This commit is contained in:
2026-05-20 11:05:41 +02:00
parent 61756e83ed
commit fbc693c3a8
8 changed files with 127 additions and 19 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
# It is needed to track the repo template version, and editing may break things. # It is needed to track the repo template version, and editing may break things.
# This file will be overwritten by copier on template updates. # This file will be overwritten by copier on template updates.
_commit: v1.2.2 _commit: v1.4.0
_src_path: https://github.com/bec-project/plugin_copier_template.git _src_path: https://github.com/bec-project/plugin_copier_template.git
make_commit: true make_commit: true
project_name: bec_testing_plugin project_name: bec_testing_plugin
+14 -9
View File
@@ -28,7 +28,7 @@ on:
description: "Python version to use" description: "Python version to use"
required: false required: false
type: string type: string
default: "3.11" default: "3.12"
permissions: permissions:
pull-requests: write pull-requests: write
@@ -44,7 +44,19 @@ jobs:
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: "${{ inputs.PYTHON_VERSION || '3.11' }}" python-version: "${{ inputs.PYTHON_VERSION || '3.12' }}"
- name: Checkout BEC Plugin Repository
uses: actions/checkout@v4
with:
repository: bec/bec_testing_plugin
ref: "${{ inputs.BEC_PLUGIN_REPO_BRANCH || github.head_ref || github.sha }}"
path: ./bec_testing_plugin
- name: Lint for merge conflicts from template updates
shell: bash
# Find all Copier conflicts except this line
run: '! grep -r "<<<<<<< before updating" | grep -v "grep -r \"<<<<<<< before updating"'
- name: Checkout BEC Core - name: Checkout BEC Core
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -67,13 +79,6 @@ jobs:
ref: "${{ inputs.BEC_WIDGETS_BRANCH || 'main' }}" ref: "${{ inputs.BEC_WIDGETS_BRANCH || 'main' }}"
path: ./bec_widgets path: ./bec_widgets
- name: Checkout BEC Plugin Repository
uses: actions/checkout@v4
with:
repository: bec/bec_testing_plugin
ref: "${{ inputs.BEC_PLUGIN_REPO_BRANCH || github.head_ref || github.sha }}"
path: ./bec_testing_plugin
- name: Install dependencies - name: Install dependencies
shell: bash shell: bash
run: | run: |
+63 -1
View File
@@ -6,14 +6,23 @@ permissions:
pull-requests: write pull-requests: write
jobs: jobs:
<<<<<<< before updating
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
=======
create_update_branch_and_pr:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
>>>>>>> after updating
steps: steps:
- name: Setup Python - name: Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.12' python-version: '3.12'
<<<<<<< before updating
- name: Install tools - name: Install tools
run: | run: |
@@ -29,4 +38,57 @@ jobs:
msg = $(copier update --trust --defaults --conflict inline 2>&1 | sed -n 1p) msg = $(copier update --trust --defaults --conflict inline 2>&1 | sed -n 1p)
git add -A git add -A
git diff-index --quiet HEAD || git commit -a -m $msg git diff-index --quiet HEAD || git commit -a -m $msg
git push -u origin $branch git push -u origin $branch
=======
- name: Checkout
uses: actions/checkout@v4
- name: Create virtualenv
run: |
python -m virtualenv .venv
- name: Install tools
run: |
source .venv/bin/activate
pip install copier PySide6 bec_lib
- name: Perform update
run: |
source .venv/bin/activate
git config --global user.email "bec_ci_staging@psi.ch"
git config --global user.name "BEC automated CI"
branch="chore/update-template-$(python -m uuid)"
echo "switching to branch $branch"
git checkout -b $branch
echo "Running copier update..."
copier update --trust --defaults --conflict inline 2>&1 | tee copier.log
status=${PIPESTATUS[0]}
output="$(cat copier.log)"
echo $output
msg="$(printf '%s\n' "$output" | head -n 1)"
if ! grep -q "make_commit: true" .copier-answers.yml ; then
echo "Autocommit not made, committing..."
git add -A
git commit -a -m "$msg"
fi
if diff-index --quiet HEAD ; then
echo "No changes detected"
exit 0
fi
git push -u origin $branch
curl -X POST "https://gitea.psi.ch/api/v1/repos/${{ gitea.repository }}/pulls" \
-H "Authorization: token ${{ secrets.CI_REPO_WRITE }}" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"Template: $(echo $msg)\",
\"body\": \"This PR was created by Gitea Actions\",
\"head\": \"$(echo $branch)\",
\"base\": \"main\"
}"
>>>>>>> after updating
-7
View File
@@ -1,7 +0,0 @@
include:
- file: /templates/plugin-repo-template.yml
inputs:
name: bec_testing_plugin
target: bec_testing_plugin
branch: $CHILD_PIPELINE_BRANCH
project: bec/awi_utils
@@ -0,0 +1,12 @@
"""
Scan components for bec_testing_plugin.
The scan components module allows you to define custom components that can be used in your scans.
These components can be used to encapsulate reusable logic, interact with devices, or perform specific actions during the scan lifecycle.
"""
from bec_server.scan_server.scans.scan_components import ScanComponents
class BecTestingPluginScanComponents(ScanComponents):
"""Scan components for bec_testing_plugin."""
@@ -0,0 +1,33 @@
"""
Scan modifier plugin for bec_testing_plugin.
The scan modifier allows you to modify the scan lifecycle and run custom actions before or after the scan hook or replace the scan hook entirely.
Note that the scan_modifier module must be registered as a plugin in the pyproject.toml file for it to be recognized by the BEC framework and that
there can only be one scan_modifier plugin registered at a time. If you need to run multiple scan modifiers, you can create a single scan
modifier plugin that runs multiple actions in sequence with conditional logic to determine which actions to run based on the scan context.
"""
from bec_server.scan_server.scans.scan_modifier import ScanModifier, scan_hook_impl
class BecTestingPluginScanModifier(ScanModifier):
"""
Scan modifier for bec_testing_plugin.
By inheriting from the ScanModifier base class, you get access to currently running scan (self.scan), the devices (self.dev), the scan info (self.scan_info),
the scan components (self.components) and the scan actions (self.actions).
"""
def __init__(self, **kwargs):
"""Initialize the scan modifier."""
super().__init__(**kwargs)
# Example of running code before the scan stage for a specific scan
# @scan_hook_impl("stage", "before")
# def before_stage(self):
# """Run before the stage hook."""
# self.actions.send_client_info("Custom stage logic executed by ScanModifier.")
# if self.scan_info.scan_name == "example_scan":
# self.dev.samx.set(20)
+4 -1
View File
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
name = "bec_testing_plugin" name = "bec_testing_plugin"
version = "0.0.0" version = "0.0.0"
description = "A plugin repository for BEC" description = "A plugin repository for BEC"
requires-python = ">=3.10" requires-python = ">=3.11"
classifiers = [ classifiers = [
"Development Status :: 3 - Alpha", "Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
@@ -39,6 +39,9 @@ plugin_file_writer = "bec_testing_plugin.file_writer"
[project.entry-points."bec.scans"] [project.entry-points."bec.scans"]
plugin_scans = "bec_testing_plugin.scans" plugin_scans = "bec_testing_plugin.scans"
[project.entry-points."bec.scans.scan_modifier"]
plugin_scan_modifier = "bec_testing_plugin.scans.scan_customization.scan_modifier"
[project.entry-points."bec.scans.metadata_schema"] [project.entry-points."bec.scans.metadata_schema"]
plugin_metadata_schema = "bec_testing_plugin.scans.metadata_schema" plugin_metadata_schema = "bec_testing_plugin.scans.metadata_schema"