Правильно настройте Bitbucket Pipelines для постоянного развертывания папки статического сайта Nuxtjs в папку хостинга Firebase - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу постоянно развертывать папку статического сайта в 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!"
...