Skip to content

Commit

Permalink
Pipeline generator steps (#32)
Browse files Browse the repository at this point in the history
* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* P

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

* p

Signed-off-by: kevin <[email protected]>

---------

Signed-off-by: kevin <[email protected]>
  • Loading branch information
khluu authored Sep 23, 2024
1 parent 8272857 commit 24f4deb
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
28 changes: 28 additions & 0 deletions scripts/pipeline_generator/step.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from pydantic import BaseModel, Field
from typing import List, Dict, Any, Optional

from .utils import AgentQueue

BUILD_STEP_KEY = "build"

class BuildkiteBlockStep(BaseModel):
"""This class represents a block step in Buildkite format."""
block: str
depends_on: Optional[str] = BUILD_STEP_KEY
key: str


def get_step_key(step_label: str) -> str:
step_key = ""
skip_chars = "()% "
for char in step_label.lower():
if char in ", " and step_key[-1] != "-":
step_key += "-"
elif char not in skip_chars:
step_key += char

return step_key


def get_block_step(step_label: str) -> BuildkiteBlockStep:
return BuildkiteBlockStep(block=f"Run {step_label}", key=f"block-{get_step_key(step_label)}")
35 changes: 35 additions & 0 deletions scripts/tests/pipeline_generator/test_step.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import pytest
import sys


from scripts.pipeline_generator.step import get_step_key, get_block_step, BuildkiteBlockStep


@pytest.mark.parametrize(
("step_label", "expected_result"),
[
("Test Step", "test-step"),
("Test Step 2", "test-step-2"),
("Test (Step)", "test-step"),
("Test A, B, C", "test-a-b-c"),
],
)
def test_get_step_key(step_label: str, expected_result: str):
assert get_step_key(step_label) == expected_result


@pytest.mark.parametrize(
("step_label", "expected_result"),
[
("Test Step", BuildkiteBlockStep(block="Run Test Step", key="block-test-step")),
("Test Step 2", BuildkiteBlockStep(block="Run Test Step 2", key="block-test-step-2")),
("Test (Step)", BuildkiteBlockStep(block="Run Test (Step)", key="block-test-step")),
("Test A, B, C", BuildkiteBlockStep(block="Run Test A, B, C", key="block-test-a-b-c")),
],
)
def test_get_block_step(step_label: str, expected_result: BuildkiteBlockStep):
assert get_block_step(step_label) == expected_result


if __name__ == "__main__":
sys.exit(pytest.main(["-v", __file__]))

0 comments on commit 24f4deb

Please sign in to comment.