How to Publish a Step Functions Workflow on ServerlessLand
To submit a new workflow, or to make changes to existing code, follow the instructions below.
- local: Your local copy of the forked repository.
- origin: Your forked, remote copy of the original repository.
- upstream: The original, remote serverless-patterns repository.
Fork and Clone the workflows-collection repo.
-
Fork the original workflows-collection repo to create a copy of the repo in your own GitHub account: https://github.com/aws-samples/step-functions-workflows-collection
-
Clone your copy of the repo to download it locally:
git clone https://github.com/{your-github-username}/step-functions-workflows-collection.git
-
Change into the new local directory:
cd step-functions-workflows-collection
-
Add the original step-functions-workflows-collection repo as another remote repo called "upstream":
git remote add upstream https://github.com/aws-samples/step-functions-workflows-collection
-
For verification, display the remote repos:
git remote -v
The output should look like this:
origin https://github.com/{your-github-username}/step-functions-workflows-collection.git (fetch) origin https://github.com/{your-github-username}/step-functions-workflows-collection.git (push) upstream https://github.com/aws-samples/step-functions-workflows-collection (fetch) upstream https://github.com/aws-samples/step-functions-workflows-collection (push)
Create a new local branch for each workflow or modification being made. This allows you to create separate pull requests in the upstream repo.
-
Create and checkout a new local branch before making code changes:
git checkout -b {branch-name}
Branch name syntax:
{username}-{feature|fix}-{description}
Example branch name:
try-catch-workflow
-
For verification, display all branches:
git branch -a
The output should look like this:
* {branch-name} main remotes/origin/HEAD → origin/main remotes/origin/main
Now is the time to create your new workflow or modify existing code.
-
If you are creating a new workflow, copy the folder named "_workflow-model" to start with a template:
cp -r _workflow-model {new-folder-name}
-
If you are modifying existing code, make your code changes now.
Alternatively, if you have an existing GitHub repository with the associated template and workflow files you can use thisit to host your workflow instead.
-
When your code is complete, stage the changes to your local branch:
git add .
-
Commit the changes to your local branch:
git commit -m 'Comment here'
Push your code to the remote repos and create a pull request.
-
Push the local branch to the remote origin repo:
git push origin {branch-name}
If this is the first push to the remote origin repo, you will be asked to Connect to GitHub to authorize the connection. Sometimes the pop-up window appears behind other windows.
-
Go to the upstream repo in Github and click "Compare & pull request".
-
Enter an appropriate title:
Example title:
New step-functions-workflows-collection - try-catch-workflow
-
Add a description of the changes.
-
Click "Create pull request".
-
-
Submit a new issue to provide the additional details that will be used to build the Step Functions workflows collection web page on ServerlessLand.com.
- Provide responses to each section (eg: Description, Language, Framework, etc.)
- Add a link to the pull request in the "GitHub PR for template" section. If you type a hashtag (#), it will display a list of the current pull requests to select from.
- Consider adding a few links to AWS documentation in the "Additional resources" section to provide more information about your serverless pattern.
- Be sure to provide your information in the "Author bio" section.
- Click "Submit new issue".
- Example issue: aws-samples#3
After your pull request has been accepted into the upstream repo:
- Switch to your local main branch:
git checkout main
- Pull changes that occurred in the upstream repo:
git fetch upstream
- Merge the upstream main branch with your local main branch:
git merge upstream/main main
- Push changes from you local repo to the remote origin repo:
git push origin main
Delete any unnecessary local and origin branches.
- Switch to your local main branch:
git checkout main
- For verification, display all branches:
git branch -a
- Delete any unnecessary local branches:
git branch -d {branch-name}
- Delete any unnecessary remote origin branches:
git push origin --delete {branch-name}
- When creating a README file for your serverless pattern, place example code and commands within a
code block
. - When deploying with SAM, use SAM policy templates for permissions whenever possible.
- Within your code and the SAM template, use comments liberally to help others understand what is going on.
- You must include an image of teh Step functions workflow exported from workflow studio.