Git 将CircleCI更改部署到Heroku
我对Git和自动化部署非常陌生,我正在尝试将作为CI的一部分所做的更改部署到Heroku 高层次理念:Git 将CircleCI更改部署到Heroku,git,heroku,deployment,continuous-deployment,circleci,Git,Heroku,Deployment,Continuous Deployment,Circleci,我对Git和自动化部署非常陌生,我正在尝试将作为CI的一部分所做的更改部署到Heroku 高层次理念: 将我的代码发送到GitHub CircleCI拿起它做了一些缩小 CircleCI进行了一些测试 CircleCI将我的文件(包括我对它们所做的更改)部署到Heroku 一切都很好,除了我在Heroku上得到的文件似乎是来自Git的文件,而不是修改/缩小的文件 我猜问题来自我的YAML: ... build steps deploy: docker: - image: build
... build steps
deploy:
docker:
- image: buildpack-deps:trusty
steps:
- checkout
- run:
name: Deploy to Heroku
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
然而,我真的不知道如何改变它
- 直接将修改后的文件发送给Heroku是一种不好的做法吗?我是否应该首先将它们提交到GitHub的特别发行版文件夹中,然后将其发送给Heroku?怎么做
- 这只是我的YAML中缺少的东西吗
version: 2
jobs:
build:
docker:
# https://circleci.com/docs/2.0/circleci-images/
- image: circleci/node:10.10
- image: circleci/postgres:10.5-alpine-postgis
environment:
POSTGRES_USER: myproject
POSTGRES_DB: myproject
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-
- run: npm install
..........
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
- run:
name: Unit Testing
command: npm run test_unit
- run:
name: Build client files
command: npm run build
- run:
name: API Testing
command: |
npm start &
npm run test_api
deploy:
docker:
- image: buildpack-deps:trusty
steps:
- checkout
- run:
name: Deploy to Heroku
command: |
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
workflows:
version: 2
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
您的CI工具不应该为Heroku构建应用程序。(当然,它可以构建它来运行测试。) Heroku将自行构建应用程序。推送你的源文件,让它做它的事情。您可以使用Node.js buildpack,这是运行build命令的好地方:
"scripts": {
"start": "node index.js",
"test": "mocha",
"postinstall": "npm rum build"
}
对缩小的文件(与未缩小的文件相比)运行测试可能会让您感到更安全,但您实际上是在测试缩小工具以及您自己的代码。理想情况下,您应该使用经过良好测试的工具,并将自己的测试集中在自己的代码上。(如果您仍然喜欢在小型化代码上运行,则不会造成太大危害。)
如果你想确保测试对你在HeloCu上的代码有一点精确的复制(即只建立一次),考虑通过A.
< P>建立和部署你的应用程序。我最近写了一个教程,用于用CalCCI、HeloCu、DOCKER和FastAPI建立一个CI /CD。虽然您没有使用FastAPI,但大多数过程都是相同的请随意查看:我添加了完整的YAML,目标是基于NodeJS的。通过构建,我的意思主要是缩小客户端javascript和CSS文件,对我来说,这似乎是(IMO)CI工作的一部分,特别是因为我想在缩小的文件上运行UI测试