GithubHelp home page GithubHelp logo

heroku-buildpack-cli's Introduction

Heroku buildpack: Heroku CLI

This is a Heroku buildpack that allows one to run the Heroku CLI in a dyno alongside application code.

This is not a replacement for the Heroku API or various clients like v3 Ruby, node or python. Some private APIs like pgbackups do require the buildpack, so this exists.

Usage

Example usage:

$ heroku config:set HEROKU_API_KEY=`heroku auth:token`

$ heroku buildpacks:add heroku-community/cli

$ git push heroku master
...

remote: -----> heroku-cli app detected
remote: === Fetching and vendoring Heroku CLI into slug
remote: === Installing profile.d script
remote: === Heroku CLI installation done
...

$ heroku run 'heroku auth:token'
Running `heroku auth:token` attached to terminal... up, run.3706
abcdef0123456789abcdef0123456789abcdef01

$ heroku run 'heroku pgbackups:capture SILVER -a myapp'
Running `heroku pgbackups:capture SILVER -a myapp` attached to terminal... up, run.9532

HEROKU_POSTGRESQL_SILVER_URL  ----backup--->  b003

Capturing... done
Storing... done

The heroku-community/cli from the Buildpack Registry contains the latest stable version of the buildpack. To use the edge version of the buildpack (i.e. the source code in this repository) run this command instead:

$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-cli

Notes

Instead of setting HEROKU_API_KEY directly on the app as shown above, a short lived token may be passed in at run time:

heroku run "HEROKU_API_KEY=`heroku authorizations:create --expires-in 600 --short` heroku pgbackups:capture SILVER -a myapp" -a myapp

heroku-buildpack-cli's People

Contributors

gregburek avatar jdx avatar jheikes515 avatar jkutner avatar msakrejda avatar rhyselsmore avatar ryandagg avatar schneems avatar svc-scm avatar zunda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heroku-buildpack-cli's Issues

Add Instructions On How To Authenticate In A Deploy Step

I'm trying to run a release script to copy a database from a staging environment to a review app.

  # In release script...
  heroku config:set HEROKU_API_KEY=`heroku auth:token`
  heroku pg:copy stage-app-name::$DATABASE_URL $DATABASE_URL -a $HEROKU_APP_NAME --confirm $HEROKU_APP_NAME

But I get authentication errors.

 ›   Error: not logged in
 ›   Error: Missing required flag:
 ›     -a, --app APP  app to run command against
 ›   See more help with --help
 ▸    Invalid credentials provided.
heroku: Press any key to open up the browser to login or q to exit:  ▸    Invalid credentials provided.
Enter your Heroku credentials:
Email: 

So, I'm trying to figure out how to login the best way in a review app environment in order to use the CLI commands during the release phase. Is the recommended way to use a permanemtn machine user? Or to do it in a more ephemeral way each release?

I think I can add a user, store creds in environmental variables, and then use those to login, but I'm not sure of the best option. I figure plenty of other people want to do this or have accomplished it already.

"This CLI deprecated. Please reinstall from https://cli.heroku.com"

We had a simple ruby app that used the Ruby buildpack, this buildpack, and Heroku scheduler to do heroku pg:backups capture #{database} -a #{app} every hour. About two weeks ago this started failing. When I heroku run bash -a <app-name> into the app and try to manually run the commands, I get first the error:

~ $ heroku pg:backups -a karat
 ▸    heroku-cli: This CLI is deprecated. Please reinstall from https://cli.heroku.com
 ▸    Invalid credentials provided.
 ▸    API key is currently set by the HEROKU_API_KEY environment variable.
 ▸    Ensure this is set to a correct value or unset it to use the netrc file.
~ $ heroku --version
 ▸    heroku-cli: This CLI is deprecated. Please reinstall from https://cli.heroku.com

Is this buildpack up to date? Thanks.

Needs an export file for running on CI

When running on CI I get this:

-----> heroku-cli app detected
=== Fetching and vendoring Heroku CLI into slug
=== Installing profile.d script
heroku/7.22.7 linux-x64 node-v11.10.1
=== Heroku CLI installation done
-----> Ruby app detected
bash: /tmp/buildpacks/be6d1a8141ea11e9dcd5364e31ecb61cbd57dcbaaab2823a85be72aa27407c6ca545b19fc22fd2ec0a4a456498d20fbcb40c682ee74dc5019358a712a0dfde5e/export: No such file or directory

The cause is likely the same as heroku/heroku-buildpack-ruby#858, that not export file is being written.

Adding buildpack-cli to Review App with app.json fails

Adding this buildpack to app.json for a review app deployment fails:

# app.json

...
,
  "buildpacks": [
    {
      "url": "heroku/ruby",
      "url": "https://github.com/heroku/heroku-buildpack-cli"
    }
  ]
...

Release log feedback:

/bin/sh: 1: bundle: not found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.