Create cloud resource #3
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: Create cloud resource | |
on: | |
workflow_dispatch: | |
inputs: | |
port_context: | |
required: true | |
description: Includes the entity identifier, and the action's run id | |
name: | |
required: true | |
description: The name of the new resource | |
type: string | |
visibility: | |
required: true | |
description: The visibility of the new resource | |
type: string | |
jobs: | |
createResource: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout the workflow's repository | |
- uses: actions/checkout@v4 | |
# Checkout the service's repository | |
- uses: actions/checkout@v4 | |
with: | |
repository: "${{ github.repository_owner }}/${{ fromJson(inputs.port_context).entity }}" | |
path: ./targetRepo | |
token: ${{ secrets.ORG_ADMIN_TOKEN }} | |
- name: Copy template file | |
run: | | |
mkdir -p ./targetRepo/resources | |
cp templates/cloudResource.tf ./targetRepo/resources/${{ inputs.name }}.tf | |
- name: Update new file data | |
run: | | |
sed -i 's/{{ bucket_name }}/${{ inputs.name }}/' ./targetRepo/resources/${{ inputs.name }}.tf | |
sed -i 's/{{ bucket_acl }}/${{ inputs.visibility }}/' ./targetRepo/resources/${{ inputs.name }}.tf | |
- name: Open a pull request | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
token: ${{ secrets.ORG_ADMIN_TOKEN }} | |
path: ./targetRepo | |
commit-message: Create new resource - ${{ inputs.name }} | |
committer: GitHub <[email protected]> | |
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> | |
signoff: false | |
branch: new-resource-${{ inputs.name }} | |
delete-branch: true | |
title: Create new resource - ${{ inputs.name }} | |
body: | | |
Create new ${{ inputs.visibility }} resource - ${{ inputs.name }} | |
draft: false | |
create-entity-in-port-and-update-run: | |
runs-on: ubuntu-latest | |
needs: createResource | |
steps: | |
- name: UPSERT Entity | |
uses: port-labs/port-github-action@v1 | |
with: | |
identifier: ${{ fromJson(inputs.port_context).entity }} | |
blueprint: service | |
properties: |- | |
{ | |
"resource_definitions": "${{ github.server_url }}/${{ github.repository_owner }}/${{ fromJson(inputs.port_context).entity }}/blob/main/resources/" | |
} | |
clientId: ${{ secrets.PORT_CLIENT_ID }} | |
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }} | |
baseUrl: https://api.getport.io | |
operation: UPSERT | |
runId: ${{ fromJson(inputs.port_context).runId }} | |
- name: Create a log message | |
uses: port-labs/port-github-action@v1 | |
with: | |
clientId: ${{ secrets.PORT_CLIENT_ID }} | |
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }} | |
baseUrl: https://api.getport.io | |
operation: PATCH_RUN | |
runId: ${{ fromJson(inputs.port_context).runId }} | |
logMessage: Pull request created successfully for "${{ inputs.name }}" 🚀 |