Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add workflows to use as template #4

Merged
merged 1 commit into from
Jun 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/templates/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: "2"

name: %PRETTY_NAME%
description: %PRETTY_NAME%

service_account:
display_name: %PRETTY_NAME% Bot

functions:
- name: extraction
description: Extraction function for %PRETTY_NAME%

keyring_types:
- id: example-connection
name: Example Connection
description: Example Connection
kind: "Secret"
is_subdomain: true
secret_config:
secret_transform: ".token" # a JQ query
fields:
- id: token
name: Token
description: Example API token

imports:
- slug: %PROJECT_NAME%
display_name: %PRETTY_NAME%
description: %PRETTY_NAME%
extractor_function: extraction
allowed_connection_types:
- example-connection
59 changes: 59 additions & 0 deletions .github/workflows/setup.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Set up the repository
on:
push:
branches: [main]
jobs:
cleanup:
name: Set up the repository
runs-on: ubuntu-latest
if: github.event.repository.name != 'adaas-template'
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Replace templates
run: |
shopt -s dotglob

export LC_CTYPE=C
export LANG=C

# Project name is lowercase repository name (used in configs)
PROJECT_NAME="${GITHUB_REPOSITORY,,}" # Of form owner/repo
PROJECT_NAME="${PROJECT_NAME##*/}" # Just the repo name

# Pretty name is how it's displayed in the README (spaces and starting case)
# Since it can contain spaces, it has to be escaped in the sed command
PRETTY_NAME="$(echo "$PROJECT_NAME" | sed 's/-/ /g; s/\b\(.\)/\u\1/g')"
ESCAPED_PRETTY_NAME="$(echo "$PRETTY_NAME" | sed 's/ /\\ /g')"

echo "Project name: '$PROJECT_NAME'"
echo "Pretty name: '$PRETTY_NAME'"

echo "Replacing pretty name: %PRETTY_NAME% -> '$PRETTY_NAME'"
find .github/templates -type f -exec sed -i "s/%PRETTY_NAME%/$ESCAPED_PRETTY_NAME/g" {} \;

echo "Replacing project name: %PROJECT_NAME% -> '$PROJECT_NAME'"
find .github/templates -type f -exec sed -i "s/%PROJECT_NAME%/$PROJECT_NAME/g" {} \;


echo "Moving template files to the root of the repository"
rm -rf manifest.yaml
mv -f .github/templates/* .
rm -rf .github

- name: Commit
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add .
git commit --amend --no-edit

- name: Push
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: main
force: true
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ This GitHub repository provides a template with example code to implement an Air
- Rename `Makefile.variable.example` to `Makefile.variable`.
- In `Makefile.variable` set the slug of your organization, and your email.

NOTE: Update this field with the appropriate connection type configuration.

4\. Build the Snap-in using the following command:

```bash
Expand All @@ -34,7 +32,7 @@ make build
make deploy
```

NOTE: This process may take some time. Command authenticates you to the org using the DevRev CLI, prompts you to select the keyring where you saved GitHub PAT and creates a Snap-in package, its Snap-in version, and finally the Snap-in draft.
NOTE: This process may take some time. Command authenticates you to the org using the DevRev CLI, creates a Snap-in package, its Snap-in version, and finally the Snap-in draft.

6\. After the Snap-in draft is created, install the Snap-in in the DevRev UI (`Settings` -> `Snap-ins` -> `Install snap-in`).

Expand Down