Update repo with template version v1.4.0
This commit is contained in:
+1
-1
@@ -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
@@ -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: |
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user