feat(engine): Add new time functions and missing unit tests #880
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pytest | |
on: | |
push: | |
branches: ["main"] | |
paths: | |
- tracecat/** | |
- registry/** | |
- tests/** | |
- pyproject.toml | |
- .github/workflows/test-python.yml | |
pull_request: | |
branches: ["main"] | |
paths: | |
- tracecat/** | |
- registry/** | |
- tests/** | |
- pyproject.toml | |
- .github/workflows/test-python.yml | |
workflow_dispatch: | |
inputs: | |
git-ref: | |
description: "Git Ref (Optional)" | |
required: false | |
default: "main" | |
permissions: | |
contents: read | |
packages: write | |
env: | |
UV_SYSTEM_PYTHON: 1 | |
jobs: | |
pytest: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
environment: QA | |
strategy: | |
matrix: | |
test_type: [unit, playbooks] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.git-ref }} | |
- name: Install uv | |
uses: astral-sh/setup-uv@v3 | |
with: | |
version: "0.4.20" | |
enable-cache: true | |
cache-dependency-glob: "pyproject.toml" | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Download Temporal CLI | |
run: | | |
# Download the Temporal CLI archive | |
curl -L -o temporal.tar.gz "https://temporal.download/cli/archive/latest?platform=linux&arch=amd64" | |
# Create a directory for the Temporal CLI | |
mkdir -p temporal-cli | |
# Extract the archive | |
tar -xzf temporal.tar.gz -C temporal-cli | |
# Add the Temporal CLI binary to the PATH | |
echo "${GITHUB_WORKSPACE}/temporal-cli" >> $GITHUB_PATH | |
- name: Verify Temporal CLI installation | |
run: temporal --version | |
- name: Run environment setup script | |
run: | | |
echo "[email protected] | |
password123456789 | |
password123456789 | |
y | |
localhost | |
n" | bash env.sh | |
- name: Start Docker services | |
env: | |
TRACECAT__UNSAFE_DISABLE_SM_MASKING: "true" | |
run: docker compose -f docker-compose.dev.yml up --build --no-deps -d api worker postgres_db caddy | |
- name: Verify Tracecat API is running | |
run: curl -s http://localhost/api/health | jq -e '.status == "ok"' | |
- name: uv install Tracecat | |
run: | | |
uv pip install ".[dev]" | |
uv pip install ./registry | |
- name: Start Temporal server | |
run: nohup temporal server start-dev > temporal.log 2>&1 & | |
- name: Run tests | |
env: | |
LOG_LEVEL: ERROR | |
VIRUSTOTAL_API_KEY: ${{ secrets.VIRUSTOTAL_API_KEY }} | |
run: uv run pytest tests/${{ matrix.test_type }} --temporal-no-restart --tracecat-no-restart -s |