Я хочу постоянно развертывать папку статического сайта в Firebase, используя конвейеры Bitbucket.
Все файлы, относящиеся к разработке, хранятся и контролируются версиями в Bitbucket, и, поскольку это сайт Nuxt, общая папка для развертывания в Firebase называется dist
.
I 'Мы запрограммировали несколько тестовых страниц, запустили git watch для любых изменений и затем создали новые версии статических страниц в папке dist
, используя команду:
npm run generate
После всех измененийсовершено, все подталкивается к репозиторию Bitbucket.
Используя CLI Firebase, я развертываю новые толчки, которые изменяют содержимое папки dist
на Firebase, используя команду Firebase CLI:
firebase deploy --only hosting --token "$FIREBASE_TOKEN" --public dist
.
СейчасЯ хочу сделать это непрерывным развертыванием, чтобы каждый раз, когда я делаю коммит и затем нажимаю на него, он автоматически развертывался в firebase.
Я просмотрел все учебники, которые создали люди, и другие вопросы по стеку, но, похоже, не получилэто на работу.В настоящее время мои push-коммиты запускают конвейер, который, похоже, запускает команду развертывания firebase, но сайт не меняется.Если я затем захожу в интерфейс командной строки Firebase и запускаю команду развертывания, она немедленно работает.
Не отображается никаких ошибок, и перед вашим запросом я создал токены в среде для входа в Firebase.
Возможно, мое понимание относительно того, что такое конвейер и как он работает, в корне неверно, так что, может быть, кто-то может прояснить его для меня?
Я предполагал, что если я сгенерирую папку dist раньшеЯ помещаю его в Bitbucket, мне просто нужно установить и запустить инструменты Firebase, а затем развернуть в Firebase уже созданную папку dist
.Я применял этот метод, так как он экономит время конвейера до конца, но, возможно, мне нужно сделать так, чтобы конвейер перезапустился generate
, а затем deploy
?
Ниже приведены копии моего package.json,Файл firebase.json и bitbucket-pipelines.yml и его содержимое:
package.json:
{
"name": "first-site",
"version": "1.0.0",
"description": "nuxt.js project",
"author": "pf",
"private": true,
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"precommit": "npm run lint"
},
"dependencies": {
"nuxt": "^1.0.0"
},
"devDependencies": {
"babel-eslint": "^8.2.1",
"eslint": "^4.15.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-vue": "^4.0.0"
}
}
firebase.json:
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
".nojekyll",
"**/.firebase/**",
"**/.nuxt/**",
"**/assets/**",
"**/components/**",
"**/layouts/**",
"**/middleware/**",
"**/node_modules/**",
"**/pages/**",
"**/plugins/**",
"**/static/**",
"**/store/**",
".editorconfig",
".eslintrc.js",
".firebaserc",
".gitignore",
"bitbucket-pipelines.yml",
"locations.net",
"nuxt.config.js",
"package-lock.json",
"package.json"
]
}
}
bitbucket-pipelines.yml:
image: node:6.9.4
pipelines:
default:
- step:
caches:
- node
script: # Modify the commands below to build your repository.
- echo "working on master branch."
- apk update
- export FIREBASE_PROJECT=$FIREBASE_PROJECT
- export FIREBASE_TOKEN=$FIREBASE_TOKEN
- npm install -g firebase-tools
- firebase use ${FIREBASE_PROJECT} --token ${FIREBASE_TOKEN}
- firebase deploy --only hosting --token "$FIREBASE_TOKEN" --public dist
- echo "Everything is awesome!"