在bitbucket上使用git部署到Heroku

to94eoyn  于 2023-05-07  发布在  Git
关注(0)|答案(7)|浏览(190)

我想使用git在bitbucket上托管我的源代码,因为我显然得到了一个免费的私有仓库,我想使用bitbucket的源代码在heroku上托管我的应用程序。
我可以使用Github客户端和Heroku工具带来做吗?会有用吗?Github是伟大的,但我不希望每个人都看到我的代码,我不想支付私人回购,因为它是一个小项目。

z8dt9xmd

z8dt9xmd1#

无论您将代码托管在何处,部署到Heroku都应该有效,因为Heroku CLI会添加自己的git remote以进行部署。事实上,你甚至可以从Heroku中获取git pull,所以从技术上讲,你可以使用Heroku作为私有git仓库(尽管不推荐)。至于使用GitHub客户端连接bitbucket,只需在客户端的设置选项卡中将仓库远程更改为bitbucket提供的URL。

twh00eeo

twh00eeo2#

只想补充zeiv的回答谁说它应该起作用:我可以证实它是。我们使用bitbucket作为git托管并部署到heroku。你似乎不能做的是将你的bitbucket仓库添加到你的heroku帐户以显示提交历史,这个功能目前似乎仅限于github(heroku的错;- )

ebdffaop

ebdffaop3#

Bitbucket现在支持Pipelines,这应该很容易在Heroku上部署。只需遵循此教程:https://confluence.atlassian.com/bitbucket/deploy-to-heroku-872013667.html
我的bitbucket-pipelines.yml只是将master分支推送到Heroku看起来像这样:

image: node:6
clone:
  depth: full
pipelines:
  branches:
    master:
      - step:
          script:
            - git push -f https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git $BITBUCKET_BRANCH
ni65a41a

ni65a41a4#

和斯特凡一起唱-这很好用。我是这么做的
1.我对WP博客每天重置的方式感到非常沮丧,向任何导航到http://blog.example.com的人提供设置屏幕,因为没有wp-config.php。
1.登录到bitbucket. org。
1.链接了我的Bitbucket和Github账户。
1.从github上分叉了我的“wp-blog”repo,我之前把它链接到了heroku remote上。
1.克隆到这个新分支(“git clone https://myname@bitbucket.org/myname/wp-blog_config.git“)。
1.添加了适当的wp-config.php。
1.在这个新分支中添加了我的heroku remote(“git remote add heroku git@heroku.com:adjective-noun-1234.git”)
1.提交并部署到heroku(“git push heroku master:master”)

mkh04yzy

mkh04yzy5#

如果你不想一直在命令行工作,并一直推到heroku,担心维护SSH密钥(如果你在不同的盒子上工作,这会很烦人),那么请遵循以下指南,了解如何使用codeship设置持续集成。它是Heroku上的一个免费插件。
http://blog.codeship.io/2014/04/29/continuous-deployment-heroku-bitbucket-nodejs.html

af7jpaap

af7jpaap6#

我发现这个Page很有用
安装Heroku Toolbelt
如果您还没有创建新的SSH公钥,请登录到您的Heroku帐户并按照提示创建新的SSH公钥。

$ heroku login

创建一个新的Git仓库
在新目录或现有目录中初始化git仓库

$ cd my-project/
$ git init
$ heroku git:remote -a PROJECTNAME

部署应用程序
将代码提交到存储库,并使用Git将其部署到Heroku。

$ git add .
$ git commit -am "make it better"
$ git push heroku master

现有Git存储库
对于现有的存储库,只需添加heroku远程

$ heroku git:remote -a PROJECTNAME
guicsvcw

guicsvcw7#

您可以将Bitbucket与Heroku集成并自动化部署。
我创建了this project in github来展示将bitbucket存储库部署到Heroku所需的最小设置。

部署方式

1.假设你已经从Bitbucket仓库 checkout 了一个分支,你只需要推送一个更改,这将触发Bitbucket上的管道。

  1. Bitbucket管道只需要用应用程序源代码创建一个'tgz'文件,并将该包发送给Heroku
  2. Heroku接收TGZ文件,解压缩它,构建应用程序,然后部署结果包。

Heroku应用配置

1.创建应用程序
1.创建一个API密钥供Bitbucket调用Heroku的API
1.设置Heroku构建应用程序必须使用的buildpackGo to your application root page in Heroku -> Settings -> Buildpacks -> Add Buildpack -> 'buildback_for_your_application'

Bitbucket仓库配置

1.您需要在存储库配置中启用管道执行:
Bitbucket -> Repository root page -> Repository Settings -> Pipeline Settings -> check 'Enable Pipelines'

  • 设置./bitbucket-pipelines.yml文件使用的环境变量:

Bitbucket -> Repository root page -> Repository Settings -> Pipeline Settings -> check 'Repository Variables',然后设置:

  • HEROKU_APP_NAME:你在Heroku申请时的名字
  • HEROKU_API_KEY:您在Heroku中创建的API密钥,用于允许api请求到您的应用程序。

文件

在应用程序的根文件夹中设置以下文件
| 文件|使用者|说明|
| --------------|--------------|--------------|
| ./bitbucket-pipelines.yml| Bitbucket|定义Bitbucket的管道规则。|
| ./Procfile| Heroku|告诉Heroku这个应用程序接收来自互联网的请求,以及执行它的命令行是什么。|
| ./system.properties|Heroku|设置运行此应用程序必须使用的java sdk。|

./bitbucket-pipelines.yml示例

image: gradle:jdk17 # change the image to suit your application.

# The minimum steps required to deploy from Bitbucket to Heroku are:
# 1. create a TGZ file with the application source code
# 2. send that TGZ to Heroku        
pipelines:
  default:
    - step:
        name: Create TGZ from source code
        script:
          - tar --exclude='.git' -cvzf /tmp/app.tar.gz .
          - mv /tmp/app.tar.gz .
        artifacts:
          - app.tar.gz

    - step:
        name: Deploy source code TGZ to heroku
        deployment: production
        script:
          - pipe: atlassian/heroku-deploy:0.1.1
            variables:
              HEROKU_API_KEY: $HEROKU_API_KEY
              HEROKU_APP_NAME: $HEROKU_APP_NAME
              ZIP_FILE: app.tar.gz

./Procfile示例

web: java -jar build/libs/demo-application-0.0.1.jar

这个例子是一个从互联网接收请求的java应用程序。更改是为了适应您的应用程序。

./system.properties示例

java.runtime.version=17

Java应用程序所需的。更改它以适合您的应用程序。

应用必须监听'$PORT'端口

Heroku在$PORT环境变量中设置了一个随机端口号,它希望您的应用程序将侦听该端口。确保应用程序使用该环境变量设置侦听端口。

相关问题