/ .forgejo / workflows / python-master.yml
python-master.yml
 1  name: "Master Python Pipeline"
 2  
 3  on:
 4    workflow_call:
 5      inputs:
 6        repo_name:
 7          required: true
 8          type: string
 9      secrets:
10        CI_READ: required
11        RAD_PASSPHRASE: required
12  
13  jobs:
14    verify:
15      runs-on: native
16      steps:
17        - uses: actions/checkout@v4
18        - uses: actions/setup-python@v4
19          with: { python-version: '3.11' }
20  
21        - name: Install Deps
22          run: pip install -r backend/requirements.txt || pip install -r requirements.txt
23  
24        - name: Lint (Ruff)
25          run: |
26            pip install ruff
27            ruff check .
28  
29        - name: Security (Safety)
30          run: |
31            pip install safety
32            safety check
33  
34        - name: Test
35          run: |
36            pip install pytest
37            pytest
38  
39    radicle-sync:
40      needs: verify
41      if: github.ref == 'refs/heads/main'
42      runs-on: native
43      steps:
44        - uses: actions/checkout@v4
45          with: { fetch-depth: 0 }
46        - name: Sync to Radicle
47          env: { RAD_PASSPHRASE: ${{ secrets.RAD_PASSPHRASE }} }
48          run: echo "Pushing Python tool to Radicle..."