Как построить Firebase проект в окружности, включая правила хранения и правила хранения - PullRequest
0 голосов
/ 26 июня 2018

У меня есть реактивный проект, размещенный в firebase.Я использую Circleci для сборки.Это работало нормально.Однако я хочу включить в сборку правила Firebase FireStore, а также настройки индекса и правила хранения Firebase.

Я добавил их в свой файл firebase.json следующим образом:

 "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  },
  "storage": {
    "rules": "storage.rules"
  }

Если явыполните развертывание firebase из командной строки, правила и индексы, которые я настроил, работают нормально.

Моя проблема возникает, когда я пытаюсь создать сборку circleci.Я добираюсь до стадии развертывания и затем получаю эту ошибку:

i  deploying firestore, hosting

Error: Error reading rules file firestore.rules
Exited with code 1

Это соответствующая часть config.yml:

deploy_uat:
    docker:
      - image: google/cloud-sdk
    steps:
      - run: echo $(printenv)

      - type: shell
        name: "Provisioning infrastructure"
        command: |
          curl -sL https://deb.nodesource.com/setup_8.x | bash -
          apt-get -qq install -y build-essential nodejs
          echo "node version -> $(node --version)"
          echo "npm version -> $(npm --version)"

          # Firebase tools include native code and need npm 5.x to install into a special dir since it won't have permission to access '/usr/lib/node_modules/'
          mkdir ~/.npm-global
          npm config set prefix '~/.npm-global'
          export PATH=~/.npm-global/bin:$PATH

          npm install -g firebase-tools

      - type: shell
        name: "Downloading & configuring archive prior to deployment"
        command: |
          echo ${GCP_SERVICE_ACCOUNT_AMCE_API_ADMIN_CIRCLECI} | base64 --decode > key.json
          gcloud auth activate-service-account --key-file key.json
          gcloud config set compute/zone us-central1
          gcloud config set project AMCE-45

          mkdir tmp
          cd tmp
          gsutil cp gs://AMCE-45-AMCE-admin-archive-web/${CIRCLE_PROJECT_REPONAME}-${CIRCLE_SHA1}.tgz .
          tar xfz ${CIRCLE_PROJECT_REPONAME}-${CIRCLE_SHA1}.tgz
          ls -al

      - type: shell
        name: "Deploying"
        command: |
          export PATH=~/.npm-global/bin:$PATH

          ls -al build
          echo "Using env -> $(cat build/env.js)"

          firebase list --token "${FIREBASE_AUTH_TOKEN_AMCE_WEB_CUSTOMER_UAT}"
          firebase deploy -P uat --token "${FIREBASE_AUTH_TOKEN_AMCE_WEB_CUSTOMER_UAT}"

Есть ли какая-то дополнительная зависимость, которая мне нужнадобавить?Я пытался добавить различные зависимости Firebase, но просто генерировал ошибки.

1 Ответ

0 голосов
/ 26 июня 2018

После ночного сна решение было очевидным ...

Я не добавил firestore.rules, storage.rules и firestore.indexes.json в мой файл config.yml.После того, как я их добавил, он прекрасно сработал.

      ls -al
      tar -zcvf ${CIRCLE_PROJECT_REPONAME}-${CIRCLE_SHA1}.tgz .firebaserc firebase.json firestore.rules storage.rules firestore.indexes.json build
...