name: ci-nullplatform on: push: branches: - master - main permissions: id-token: write contents: read packages: read jobs: # # Add any job you need # prepare: runs-on: ubuntu-latest steps: - name: Start Nullplatform CI id: setup-ci uses: nullplatform/github-action-setup-ci@v1 with: api-key: ${{ secrets.NULLPLATFORM_API_KEY }} - name: Checkout code id: checkout-code uses: actions/checkout@v3 with: fetch-depth: 1 - name: Get assets path id: assets-path run: | assets_path="[$(find . -type d -name 'function-*' -exec basename {} \; | awk '{printf "\"%s\",", $0}' | sed 's/,$//')]" echo "paths=$assets_path" >> $GITHUB_OUTPUT outputs: application-id: ${{ steps.setup-ci.outputs.application-id }} application-name: ${{ steps.setup-ci.outputs.application-name }} build-id: ${{ steps.setup-ci.outputs.build-id }} assets-path: ${{ steps.assets-path.outputs.paths }} build: runs-on: ubuntu-latest needs: prepare strategy: matrix: assets-path: ${{ fromJSON(needs.prepare.outputs.assets-path) }} steps: - name: Get build parameters id: get-build-parameters uses: nullplatform/github-action-secrets-and-variables@v1 with: api-key: ${{ secrets.NULLPLATFORM_API_KEY }} application-id: ${{ needs.prepare.outputs.application-id }} # # Add any required dependency to build your application # - name: Build asset for ${{ needs.prepare.outputs.application-name }} id: build-asset uses: nullplatform/github-action-asset-build@v1 with: build-working-directory: . asset-working-directory: ./${{ matrix.assets-path }} name: ${{ matrix.assets-path }} - name: Push asset for ${{ needs.prepare.outputs.application-name }} id: push-asset uses: nullplatform/github-action-asset-push@v1 with: build-working-directory: . asset-working-directory: ./${{ matrix.assets-path }} name: ${{ matrix.assets-path }} build-id: ${{ needs.prepare.outputs.build-id }} type: lambda outputs: build-id: ${{ needs.prepare.outputs.build-id }} status: ${{ contains(fromJSON('["failure", "cancelled"]'), job.status) && 'failed' || 'successful' }} finalize: runs-on: ubuntu-latest if: ${{ always() && needs.prepare.outputs.build-id }} needs: [prepare, build] steps: - name: End Nullplatform CI id: end-setup-ci uses: nullplatform/github-action-setup-ci@v1 with: api-key: ${{ secrets.NULLPLATFORM_API_KEY }} build-id: ${{ needs.prepare.outputs.build-id }} status: ${{ needs.build.outputs.status || 'failed' }}