-
Notifications
You must be signed in to change notification settings - Fork 177
136 lines (113 loc) · 3.3 KB
/
test-python.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: pytest
on:
push:
branches: ["main"]
paths:
- tracecat/**
- registry/**
- tests/**
- pyproject.toml
- .github/workflows/test-python.yml
pull_request:
branches: ["main", "staging"]
paths:
- tracecat/**
- registry/**
- tests/**
- pyproject.toml
- .github/workflows/test-python.yml
workflow_dispatch:
inputs:
git-ref:
description: "Git Ref (Optional)"
required: true
permissions:
contents: read
packages: write
env:
UV_SYSTEM_PYTHON: 1
jobs:
test-registry:
runs-on: ubuntu-latest
timeout-minutes: 60
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: "registry/pyproject.toml"
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
uv pip install ".[dev]"
uv pip install ./registry
- name: Run environment setup script
run: |
echo "y
localhost
n" | bash env.sh
- name: Run tests
run: uv run pytest -m "not integration" tests/registry
test-all:
runs-on: ubuntu-latest
timeout-minutes: 60
environment: QA
needs: test-registry
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 "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 executor postgres_db caddy
- name: Install dependencies
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 }} -s