Skip to content

Generate Python Sources #181

Generate Python Sources

Generate Python Sources #181

name: Generate Python Sources
on:
push:
branches:
- main
paths:
- 'api-specifications/**'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Set up JDK 1.8
uses: actions/setup-java@v5
with:
java-version: 8
distribution: temurin
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.9'
- name: Setup SSH Agent for git operations
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.PYTHON_SDK_REPO_PRIVATE_KEY }}
- name: Generate SDKs
run: ./gradlew :generator:python:generateClient
shell: bash
- name: Test SDKs
run: python ./scripts/test_sdk.py --language python
shell: bash
env:
RETAILMEDIA_TEST_CLIENT_ID: ${{ secrets.RETAILMEDIA_SDK_TEST_CLIENT_ID }}
RETAILMEDIA_TEST_CLIENT_SECRET: ${{ secrets.RETAILMEDIA_SDK_TEST_CLIENT_SECRET }}
RETAILMEDIA_TEST_APPLICATION_ID: ${{ secrets.RETAILMEDIA_SDK_TEST_APPLICATION_ID }}
MARKETINGSOLUTIONS_TEST_CLIENT_ID: ${{ secrets.MARKETINGSOLUTIONS_SDK_TEST_CLIENT_ID }}
MARKETINGSOLUTIONS_TEST_CLIENT_SECRET: ${{ secrets.MARKETINGSOLUTIONS_SDK_TEST_CLIENT_SECRET }}
MARKETINGSOLUTIONS_TEST_APPLICATION_ID: ${{ secrets.MARKETINGSOLUTIONS_SDK_TEST_APPLICATION_ID }}
- name: Upload Sdk
uses: actions/upload-artifact@v4
with:
name: generated-sources-python
path: ./generated-sources/python
- name: Push python SDK
run: python ./scripts/push_sdk.py --language python
shell: bash
- name: Send success notification
if: ${{ success() }}
uses: slackapi/[email protected]
with:
webhook: ${{ secrets.SLACK_WEBHOOK }}
webhook-type: incoming-webhook
payload: |
status: "${{ job.status }}"
channel: "C02J0CWR789"
username: "sdk-generation-bot"
text: "Python build succeeded. <https://github.com/criteo/criteo-api-sdk-generator/actions/runs/${{github.run_id}}|Link to build>."
icon_emoji: ":green_check_mark:"
- name: Send failure notification
if: ${{ failure() }}
uses: slackapi/[email protected]
with:
webhook: ${{ secrets.SLACK_WEBHOOK }}
webhook-type: incoming-webhook
payload: |
status: "${{ job.status }}"
channel: "C02J0CWR789"
username: "sdk-generation-bot"
text: "Python build failed. <https://github.com/criteo/criteo-api-sdk-generator/actions/runs/${{github.run_id}}|Link to build>."
icon_emoji: ":x:"