GitHub actions automations #11189
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: CI | |
on: | |
push: | |
branches: | |
- master | |
- release/** | |
- sentry-sdk-2.0 | |
pull_request: | |
permissions: | |
contents: read | |
env: | |
BUILD_CACHE_KEY: ${{ github.sha }} | |
CACHED_BUILD_PATHS: | | |
${{ github.workspace }}/dist-serverless | |
jobs: | |
lint: | |
name: Lint Sources | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- run: | | |
pip install tox | |
tox -e linters | |
check-ci-config: | |
name: Check CI config | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- run: | | |
pip install jinja2 | |
python scripts/split-tox-gh-actions/split-tox-gh-actions.py --fail-on-changes | |
build_lambda_layer: | |
name: Build Package | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Setup build cache | |
uses: actions/cache@v4 | |
id: build_cache | |
with: | |
path: ${{ env.CACHED_BUILD_PATHS }} | |
key: ${{ env.BUILD_CACHE_KEY }} | |
- name: Build Packages | |
run: | | |
echo "Creating directory containing Python SDK Lambda Layer" | |
# This will also trigger "make dist" that creates the Python packages | |
make aws-lambda-layer | |
- name: Upload Python Packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: artifact-build_lambda_layer | |
path: | | |
dist/* | |
if-no-files-found: 'error' | |
# since this artifact will be merged, compression is not necessary | |
compression-level: '0' | |
docs: | |
name: Build SDK API Doc | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- run: | | |
make apidocs | |
cd docs/_build && zip -r gh-pages ./ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: artifact-docs | |
path: | | |
docs/_build/gh-pages.zip | |
if-no-files-found: 'error' | |
# since this artifact will be merged, compression is not necessary | |
compression-level: '0' | |
merge: | |
name: Create Release Artifact | |
runs-on: ubuntu-latest | |
needs: [build_lambda_layer, docs] | |
steps: | |
- uses: actions/upload-artifact/merge@v4 | |
with: | |
# Craft expects release assets from github to be a single artifact named after the sha. | |
name: ${{ github.sha }} | |
pattern: artifact-* | |
delete-merged: true |