Skip to content

Commit

Permalink
Added option to pass "team"
Browse files Browse the repository at this point in the history
  • Loading branch information
AkhileshNS committed Dec 26, 2020
1 parent 7a09db9 commit 38d3e56
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 24 deletions.
73 changes: 51 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ This is a very simple GitHub action that allows you to deploy to Heroku. The act
5. [Environment Variables](#environment-variables)
- [ENV File](#env-file)
6. [Procfile Passing](#procfile-passing)
7. [Just Login](#just-login)
8. [Important Notes](#important-notes)
9. [License](#license)
7. [Deploying to a team](#deploying-to-a-team)
8. [Just Login](#just-login)
9. [Important Notes](#important-notes)
10. [License](#license)

## Getting Started

Expand Down Expand Up @@ -64,26 +65,27 @@ You learn more about GitHub Secrets [here](https://docs.github.com/en/actions/co
The action comes with additional options that you can use to configure your project's behavior on Heroku. You can setup these options under the "with" object as presented above:
| Name | Required | Description | Example |
| --------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| heroku_api_key | true | This will be used for authentication. You can find it in your heroku homepage account settings | \*\*\* |
| heroku_email | true | Email that you use with heroku | [email protected] |
| heroku_app_name | true | The appname to use for deploying/updating | demo-rest-api |
| buildpack | false | An optional buildpack to use when creating the heroku application | https://github.com/heroku/heroku-buildpack-static.git |
| branch | false | The branch that you would like to deploy to Heroku. Defaults to "HEAD" | master, dev, test |
| dontuseforce | false | Set this to true if you don't want to use --force when switching branches | true or false |
| usedocker | false | Will deploy using Dockerfile in project root | true or false |
| Name | Required | Description | Example |
| --------------------------- | -------- | ------------------------------------------------------------ | ----------------------------------------------------- |
| heroku_api_key | true | This will be used for authentication. You can find it in your heroku homepage account settings | \*\*\* |
| heroku_email | true | Email that you use with heroku | [email protected] |
| heroku_app_name | true | The appname to use for deploying/updating | demo-rest-api |
| buildpack | false | An optional buildpack to use when creating the heroku application | https://github.com/heroku/heroku-buildpack-static.git |
| branch | false | The branch that you would like to deploy to Heroku. Defaults to "HEAD" | master, dev, test |
| dontuseforce | false | Set this to true if you don't want to use --force when switching branches | true or false |
| usedocker | false | Will deploy using Dockerfile in project root | true or false |
| docker_heroku_process_type | false | Type of heroku process (web, worker, etc). This option only makes sense when usedocker enabled. Defaults to "web" (Thanks to [singleton11](https://github.com/singleton11) for adding this feature) | web, worker |
| docker_build_args | false | A list of args to pass into the Docker build. This option only makes sense when usedocker enabled. | NODE_ENV |
| appdir | false | Set if your app is located in a subdirectory | api, apis/python |
| healthcheck | false | A URL to which a healthcheck is performed (checks for 200 request) | https://demo-rest-api.herokuapp.com |
| checkstring | false | Value to check for when conducting healthcheck requests | ok |
| delay | false | Time (in seconds) to wait before performing healthcheck. Defaults to 0 seconds | 5 |
| procfile | false | Contents of the Procfile to save and deploy | web: npm start |
| rollbackonhealthcheckfailed | false | When set to true this will attempt to rollback to the previous release if the healthcheck fails | true or false |
| env_file | false | path to an env file (with respect to appdir) | /.env |
| justlogin | false | Set to true if you want the action to just login to Heroku and nothing else | true or false |
| region | false | The region in which you would like to deploy a server | eu or dublin |
| docker_build_args | false | A list of args to pass into the Docker build. This option only makes sense when usedocker enabled. | NODE_ENV |
| appdir | false | Set if your app is located in a subdirectory | api, apis/python |
| healthcheck | false | A URL to which a healthcheck is performed (checks for 200 request) | https://demo-rest-api.herokuapp.com |
| checkstring | false | Value to check for when conducting healthcheck requests | ok |
| delay | false | Time (in seconds) to wait before performing healthcheck. Defaults to 0 seconds | 5 |
| procfile | false | Contents of the Procfile to save and deploy | web: npm start |
| rollbackonhealthcheckfailed | false | When set to true this will attempt to rollback to the previous release if the healthcheck fails | true or false |
| env_file | false | path to an env file (with respect to appdir) | /.env |
| justlogin | false | Set to true if you want the action to just login to Heroku and nothing else | true or false |
| region | false | The region in which you would like to deploy a server | eu or dublin |
| team | false | If deploying to an organization, then specify the name of the team or organization here | team-xyz |
## Examples
Expand Down Expand Up @@ -473,6 +475,33 @@ jobs:

Keep in mind this won't work if you are using Docker.

## Deploying to a team

If you are an enterprise user and wish to deploy your app to a specific team, you can do so by just passing the **team** option to the action:

_.github/workflows/main.yml_

```yaml
name: Deploy

on:
push:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "YOUR APP's NAME"
heroku_email: "YOUR EMAIL"
team: "THE TEAM's NAME"
```
## Just Login
GitHub Actions does come with the heroku cli pre-installed (this is what is used by the Action to deploy applications). So if you wish to use the heroku cli and just need to login, you can use the **justlogin** option of the Heroku Deploy Action
Expand Down
4 changes: 4 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ inputs:
description: "The region in which you would like to deploy a server"
required: false
default: ""
team:
description: "If deploying to an organization, then specify the name of the team or organization here"
required: false
default: ""
outputs:
status:
description: "The Success/Failure of the action"
Expand Down
6 changes: 4 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ machine git.heroku.com
password ${api_key}
EOF`;

const addRemote = ({ app_name, buildpack, region }) => {
const addRemote = ({ app_name, buildpack, region, team }) => {
try {
execSync("heroku git:remote --app " + app_name);
console.log("Added git remote heroku");
Expand All @@ -25,7 +25,8 @@ const addRemote = ({ app_name, buildpack, region }) => {
"heroku create " +
app_name +
(buildpack ? " --buildpack " + buildpack : "") +
(region ? " --region " + region : "")
(region ? " --region " + region : "") +
(team ? "--team" + team : "")
);
console.log("Successfully created a new heroku app");
}
Expand Down Expand Up @@ -131,6 +132,7 @@ let heroku = {
env_file: core.getInput("env_file"),
justlogin: core.getInput("justlogin") === "false" ? false : true,
region: core.getInput("region"),
team: core.getInput("team"),
};

// Formatting
Expand Down

0 comments on commit 38d3e56

Please sign in to comment.