Google App Script에 CI를 통해 배포
4799 단어 GoogleAppsScriptBitbucket
추가
이 기사를 바탕으로 더 나은 환경을 구축한 기사를 작성했습니다.
Google Apps Script에 CI를 통해 배포(1년 반 후)
하고 싶은 일
어떻게 했는지
node-google-apps-script을 사용하면 Google App Script에 파일을 업로드 할 수 있으므로 CI에서 동일한 작업을 수행합니다.
CI는 무엇이든 좋지만 이번에는 bitbucket pipelines을 사용했습니다.
결과적으로 client_secret등을 소스 코드에 포함할 필요가 있었기 때문에, public인 리포지토리의 프로젝트 등에서는 채용할 수 없는 수법이 되어 버렸습니다
1. node-google-apps-script 설정
이 기사가 매우 도움이되었습니다.
GoogleAppsScript 로컬 개발용의 공식 CLI(node-google-apps-script)가 드디어 등장했으므로 시험해 보기
ぃ tp // 코 m / 자키 야마 / ms / 9 아 301542137 훗 bd8876c
이 기사대로 준비하면 로컬에서 파일을 업로드할 수 있습니다.
먼저 로컬에서 업로드할 수 있을 때까지 준비합니다.
2. ~/.gapps를 리포지토리에 커밋
이 기사의 간은 이 설정
기사대로 설정하면
~/.gapps
라는 파일이 생성됩니다.gapps upload
때이 파일을 참조하여 인증하고 있으므로 CI에서도 필요합니다.그래서
cp ~/.gapps path/to/repo
등으로 리포지토리에 포함.gapps
에는 client_secret
나 refresh_token
등의 정보가 포함되어 있기 때문에, 가능하면 리포지토리에는 포함하지 않고 환경 변수 등으로 제어하고 싶었습니다만, 가볍게 소스 코드를 본 느낌이라고 그렇게 옵션은없는 것 같습니다 언젠가 풀리크하고 싶은 곳입니다.
3. CI에서 ~/.gapps를 참조할 수 있도록 합니다.
bitbucket pipelines의 경우 아래 코드만으로 OK였습니다.
bitbucket-pipelines.yml
image: node:4.3.2
pipelines:
default:
- step:
script:
- npm install
- npm run upload-from-ci
package.json
"scripts": {
"upload-from-ci": "cp .gapps ~/.gapps; gapps upload"
},
리포지토리의
.gapps
를 그대로 ~/.gapps
에 복사합니다.CI는 모두 괜찮다고 썼지만 홈 디렉토리에 쓰기 권한이 없으면 무리입니다 ...
여기까지 가능하면 CI에서 배포할 수 있습니다!
주의점
웹 애플리케이션으로 게시하는 GAS 앱의 경우 소스 코드 업로드만으로 반영되지 않습니다.
업로드 후 프로젝트 버전을 새로 만들어야 합니다.
이것은 API도 제공되지 않는 것 같습니다 ...
트리거로 발화하는 코드에 관해서는 업로드만으로 문제없이 업데이트되는 것 같습니다.
감상
GAS 덕분에 서버 준비 불필요로 간편하게 스크립트를 움직일 수는 매우 고마워요!
이번은 약간의 slack bot를 GAS로 움직이고 있었지만, 조금 코드베이스가 커져 온 타이밍에 git 관리가 되고 싶어지고, 이 방법을 도입했습니다
시도해 보면 git 관리와 CI 운영을 도입하고 싶은 시점에서 이미 GAS로 움직이기에는 부적절한 규모감일까 느꼈습니다.
손쉽게 바삭바삭하게 스크립트를 움직일 수 있는 것이 좋은 점이라고 생각하기 때문에, 그 장점을 살릴 수 있는 사용법을 의식해 사용하려고 생각했습니다!
Reference
이 문제에 관하여(Google App Script에 CI를 통해 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/abeyuya/items/f97f4d6870ebb154b553텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)