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: # Step 1: Checkout the repository - name: Checkout Repository uses: actions/checkout@v4.2.2 # Step 2: Set up Python - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.11' # Step 3: Install dependencies using pip - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt # Step 4: Generate the schema - name: Extract functionInputSchema id: extract_schema run: | python main.py generate_schema "${HOME}/${{ env.FUNCTION_SCHEMA_FILE_NAME }}" echo "Checking if functionSchema.json exists after generation..." ls -lah "${HOME}/${{ env.FUNCTION_SCHEMA_FILE_NAME }}" # Step 5: Build and publish the Speckle function - 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 || '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'