name: 'build and deploy Speckle functions' on: workflow_dispatch: push: tags: - '*' jobs: publish-automate-function-version: # make sure the action works on a clean machine without building env: FUNCTION_SCHEMA_FILE_NAME: functionSchema.json runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.2.2 - uses: actions/setup-python@v5 with: python-version: '3.13' - name: Install tooling run: pip install wheel setuptools==77.0.3 - name: Preinstall stringcase workaround run: pip install --no-use-pep517 'stringcase==1.2.0' - name: Install project dependencies run: pip install -r requirements.txt - name: Install your package (editable) run: pip install --no-deps -e . - name: Extract functionInputSchema id: extract_schema run: | python main.py generate_schema ${HOME}/${{ env.FUNCTION_SCHEMA_FILE_NAME }} - name: Speckle Automate Function - Build and Publish uses: specklesystems/speckle-automate-github-composite-action@0.9.0 with: speckle_automate_url: ${{ env.SPECKLE_AUTOMATE_URL || vars.SPECKLE_AUTOMATE_URL || 'https://automate.speckle.dev' }} speckle_token: ${{ secrets.SPECKLE_FUNCTION_TOKEN }} speckle_function_id: ${{ secrets.SPECKLE_FUNCTION_ID }} speckle_function_input_schema_file_path: ${{ env.FUNCTION_SCHEMA_FILE_NAME }} speckle_function_command: 'python -u main.py run'