GitLab CI / CD с Firebase Admin SDK

# #firebase #gitlab #gitlab-ci-runner #firebase-admin

# # #firebase #gitlab #gitlab-ci-runner #firebase-администратор

Вопрос:

Хотелось бы автоматически развертывать функции Firebase с помощью бегунов Git Lab. Возникли проблемы с файлом закрытого ключа Firebase Admin SKD

Локальная среда содержит файл admin.json По причине, по которой этот файл будет удален из GitLab (admin.json), я создал переменную среды GitLab runner, содержащую объект admin.json.

admin.json == переменная среды gitlab с именем admin_token

Я пытался использовать

cat >> admin.json << 'END'
$admin_token
END

Для создания временного файла admin.json //admin_token — это переменная среды в GitLab

 mage: node:10.11.0 # can be upgraded, depending on your node version used

stages:
    - build
    - deploy

cache:
  paths:
    - project/node_modules/
    - /x/functions/node_modules/

build:
    stage: build
    script:
        - echo "Build"
        - cd project
        - npm i
        - CI=false npm run build

    artifacts:
        paths:
            - ./project/build
            - ./project/firebase.json
            - ./project/.firebaserc
            - ./project/functions
    only:
        - Production

deploy:
    stage: deploy
    environment: production
    script:
        - echo "Deploy"
        - cd ref_project
        - cd functions
        - cat >> admin.json << 'END'
        - $admin_token
        - END
        - cat admin.json
        - npm i
        - npm -g config set user root
        - npm i -g  firebase-tools
        - firebase use project-xxxxx --token $FIREBASE_TOKEN
        - firebase deploy --token $FIREBASE_TOKEN  
    only:
        - Production
 

Комментарии:

1. Я рекомендую вам прочитать раздел секретных переменных Gitlab здесь: docs.gitlab.com/ee/ci/variables/#secret-variables

2. Если я прав, вы хотите запускать переменные env в Gitlab во время развертывания вашего приложения, но не сохранять их в нем? В этой ссылке, которой я поделился с вами, упоминалось об этом, но вы все же предоставите свои переменные.