CircleCI를 사용하여 Firebase에 개발 환경과 프로덕션 환경에 대한 CICD 구축
요약(목차)
firebase init
수동으로 초기 설정 1. nuxt.js 프로젝트 생성
nuxt-create-app
에서 nuxt.js 프로젝트를 창조. 패키지 관리자는 npm, 렌더링 모드는 SPA를 선택하십시오.
github에 리포지토리를 등록.
git-flow에서 develop
브랜치를 창조합니다.
2. firebase에 프로젝트를 두 개 세운다 (개발 / 프로덕션)
여기에서 본제
1. firebase 콘솔에서 프로젝트 추가를 클릭하여 프로젝트를 추가합니다.
2. 「앱을 추가」하면 API_KEY등이 발행된다. 이 중 projectId
를 나중에 CircleCI에 등록합니다.
3. 1,2를 다시 실행하여 개발 프로젝트를 구축한다. 프로젝트 이름 등에 _dev
등으로 넣어 두면 알기 쉽다.
3. firebase init 수타로 초기 설정
초기 배포는 초기 설정 등이 있으므로 수동으로 수행합니다.
1. firebase-tools
를 설치하고 firebase init
$ npm install -g firebase-tools
$ firebase init
2.호스팅을 선택합니다.
3. 방금 만든 프로덕션 firebase 프로젝트를 선택.
4. 공개 폴더는 dist
를 지정합니다.
? What do you want to use as your public directory? dist
5.SPA 여부를 듣고, y를 입력
? Configure as a single-page app (rewrite all urls to /index.html)? (y/N) y
6.index.html가 존재하는 경우에 그것을 덮어쓸지 묻는다. 필자의 환경에서는 기존 프로젝트에서 이미 있으므로 N을 입력.
? File dist/index.html already exists. Overwrite? (y/N) N
이것으로 호스팅 설정은 완료. 확인을 위해 배포합시다.
$ npm run build
$ firebase deploy
7. 그런 다음 개발 프로젝트에 배포합니다. firebase use --add
에서 개발 프로젝트와 연결
$ firebase use --add
? Which project do you want to add?
firebase 설정은 이제 완료됩니다.
4. CircleCI에서 자동 배포 설정
1. "ADD PROJECT"에서 CircleCI 프로젝트 만들기
2. CI용 firebase 토큰 발행
$ firebase login:ci
Visit this URL on any device to log in:
(認証用のURL)
Waiting for authentication...
+ Success! Use this token to login on a CI server:
(トークンが表示されるので控える)
Example: firebase deploy --token "$FIREBASE_TOKEN"
3.CircleCI 환경 변수 등록
4. CircleCI 설정 파일 생성
루트 디렉토리에 .circleci/config.yml
만들기
circleci/config.ymlversion: 2
jobs:
deploy_master:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $PROD_PROJECT_ID
deploy_dev:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $DEV_PROJECT_ID
workflows:
version: 2
build_and_deploy: # ワークフローの名前
jobs:
- deploy_dev: # 上で定義したジョブを指定します
filters:
branches:
only: develop # developブランチのみを実行対象とします
- deploy_master:
filters:
branches:
only: master # masterブランチのみを実行対象とします
이제 develop 브랜치에 push 또는 merge하면 개발용 firebase 프로젝트에, master 브랜치라면 프로덕션 프로젝트에 배포됩니다.
Reference
이 문제에 관하여(CircleCI를 사용하여 Firebase에 개발 환경과 프로덕션 환경에 대한 CICD 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hotaca/items/d867cd4c0cae097d077b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에서 본제
1. firebase 콘솔에서 프로젝트 추가를 클릭하여 프로젝트를 추가합니다.
2. 「앱을 추가」하면 API_KEY등이 발행된다. 이 중
projectId
를 나중에 CircleCI에 등록합니다.3. 1,2를 다시 실행하여 개발 프로젝트를 구축한다. 프로젝트 이름 등에
_dev
등으로 넣어 두면 알기 쉽다.3. firebase init 수타로 초기 설정
초기 배포는 초기 설정 등이 있으므로 수동으로 수행합니다.
1. firebase-tools
를 설치하고 firebase init
$ npm install -g firebase-tools
$ firebase init
2.호스팅을 선택합니다.
3. 방금 만든 프로덕션 firebase 프로젝트를 선택.
4. 공개 폴더는 dist
를 지정합니다.
? What do you want to use as your public directory? dist
5.SPA 여부를 듣고, y를 입력
? Configure as a single-page app (rewrite all urls to /index.html)? (y/N) y
6.index.html가 존재하는 경우에 그것을 덮어쓸지 묻는다. 필자의 환경에서는 기존 프로젝트에서 이미 있으므로 N을 입력.
? File dist/index.html already exists. Overwrite? (y/N) N
이것으로 호스팅 설정은 완료. 확인을 위해 배포합시다.
$ npm run build
$ firebase deploy
7. 그런 다음 개발 프로젝트에 배포합니다. firebase use --add
에서 개발 프로젝트와 연결
$ firebase use --add
? Which project do you want to add?
firebase 설정은 이제 완료됩니다.
4. CircleCI에서 자동 배포 설정
1. "ADD PROJECT"에서 CircleCI 프로젝트 만들기
2. CI용 firebase 토큰 발행
$ firebase login:ci
Visit this URL on any device to log in:
(認証用のURL)
Waiting for authentication...
+ Success! Use this token to login on a CI server:
(トークンが表示されるので控える)
Example: firebase deploy --token "$FIREBASE_TOKEN"
3.CircleCI 환경 변수 등록
4. CircleCI 설정 파일 생성
루트 디렉토리에 .circleci/config.yml
만들기
circleci/config.ymlversion: 2
jobs:
deploy_master:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $PROD_PROJECT_ID
deploy_dev:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $DEV_PROJECT_ID
workflows:
version: 2
build_and_deploy: # ワークフローの名前
jobs:
- deploy_dev: # 上で定義したジョブを指定します
filters:
branches:
only: develop # developブランチのみを実行対象とします
- deploy_master:
filters:
branches:
only: master # masterブランチのみを実行対象とします
이제 develop 브랜치에 push 또는 merge하면 개발용 firebase 프로젝트에, master 브랜치라면 프로덕션 프로젝트에 배포됩니다.
Reference
이 문제에 관하여(CircleCI를 사용하여 Firebase에 개발 환경과 프로덕션 환경에 대한 CICD 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hotaca/items/d867cd4c0cae097d077b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ npm install -g firebase-tools
$ firebase init
? What do you want to use as your public directory? dist
? Configure as a single-page app (rewrite all urls to /index.html)? (y/N) y
? File dist/index.html already exists. Overwrite? (y/N) N
$ npm run build
$ firebase deploy
$ firebase use --add
? Which project do you want to add?
1. "ADD PROJECT"에서 CircleCI 프로젝트 만들기
2. CI용 firebase 토큰 발행
$ firebase login:ci
Visit this URL on any device to log in:
(認証用のURL)
Waiting for authentication...
+ Success! Use this token to login on a CI server:
(トークンが表示されるので控える)
Example: firebase deploy --token "$FIREBASE_TOKEN"
3.CircleCI 환경 변수 등록
4. CircleCI 설정 파일 생성
루트 디렉토리에
.circleci/config.yml
만들기circleci/config.yml
version: 2
jobs:
deploy_master:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $PROD_PROJECT_ID
deploy_dev:
docker:
- image: circleci/node:latest
steps:
- checkout
- run:
name: install firebase-tools
command: sudo npm install -g firebase-tools
- run:
name: install nuxt
command: npm install nuxt
- run:
name: build project
command: npm run build
- run:
name: Deploy Firebase Hosting
command: firebase deploy --token $FIREBASE_CI_TOKEN --project $DEV_PROJECT_ID
workflows:
version: 2
build_and_deploy: # ワークフローの名前
jobs:
- deploy_dev: # 上で定義したジョブを指定します
filters:
branches:
only: develop # developブランチのみを実行対象とします
- deploy_master:
filters:
branches:
only: master # masterブランチのみを実行対象とします
이제 develop 브랜치에 push 또는 merge하면 개발용 firebase 프로젝트에, master 브랜치라면 프로덕션 프로젝트에 배포됩니다.
Reference
이 문제에 관하여(CircleCI를 사용하여 Firebase에 개발 환경과 프로덕션 환경에 대한 CICD 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hotaca/items/d867cd4c0cae097d077b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)