Repository navigation
84 lines (76 loc) · 2.49 KB
/
Copy pathdeploy_python_sdk_docs.yml
File metadata and controls
84 lines (76 loc) · 2.49 KB
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
name: Deploy Opik Python SDK docs
run-name: Deploy Python SDK docs ${{ github.ref_name }} to S3 ${{ inputs.environment || 'production' }} by @${{ github.actor }}
env:
# Retry transient PyPI/network failures longer before failing the build.
PIP_RETRIES: 8
PIP_DEFAULT_TIMEOUT: 30
UV_HTTP_TIMEOUT: 30
UV_HTTP_RETRIES: 8
on:
workflow_dispatch:
inputs:
environment:
type: choice
description: Choose environment
options:
- staging
- production
- development
push:
branches:
- main
paths:
- "sdks/python/**"
- "apps/opik-documentation/python-sdk-docs/**"
jobs:
upload:
runs-on: ubuntu-latest
timeout-minutes: 15
environment: ${{ inputs.environment || 'production' }}
permissions:
id-token: write # required for OIDC
contents: read
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ vars.AWS_REGION }}
ENVIRONMENT: ${{ inputs.environment || 'production' }}
steps:
- name: Verify AWS credentials
run: aws sts get-caller-identity
- name: checkout
uses: actions/checkout@v7
with:
show-progress: false
- name: Setup uv
uses: astral-sh/setup-uv@v10.3.0
- name: Build Python SDK docs
run: |
echo "Build sdk documentation"
cd apps/opik-documentation/python-sdk-docs
uv venv .venv
uv pip install -r requirements.txt
uv pip install ../../../sdks/python
uv run make build
- name: Upload sdk docs to site.comet.com (${{ env.ENVIRONMENT }})
run: |
aws s3 sync apps/opik-documentation/python-sdk-docs/build/html \
s3://site.comet.com/${{ env.ENVIRONMENT }}/docs-opik/python-sdk-reference \
--follow-symlinks --no-progress --delete --exclude '.git*'
notify-slack:
name: "📢 Slack Notification"
runs-on: ubuntu-latest
needs: upload
if: always() && needs.upload.result == 'failure'
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v7
with:
sparse-checkout: .github/scripts
sparse-checkout-cone-mode: false
- name: Send Slack failure notification
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: .github/scripts/notify-slack-test-failure.sh "Python SDK Docs Deploy"