Skip to content

Google Apps Scriptプロジェクトのテスト環境と本番環境を一つのリポジトリで管理し、Github Actionsで本番環境に自動デプロイするワークフロー。

Notifications You must be signed in to change notification settings

tsato21/prod-test-auto-management_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prod-test-auto-management_1 (for Google Apps Script Projects)

目次

1 概要

Google Apps Scriptプロジェクトのテスト環境と本番環境を一つのリポジトリで管理し、Github Actionsで本番環境に自動デプロイするワークフロー。(一つのプロジェクトの管理)

複数プロジェクトを管理するGithub Actions Workflowsはこちら

2 セットアップ

  1. テスト用と本番用のApps Script fileをGoogle Driveで作成する。

  2. ローカルリポジトリを以下の構成に設定する。

    ./
        └─ src/
        │ 
        │  
        └─ .clasp.json
        └─ .gitignore
    
  • srcフォルダ傘下には、以降の作業でApps Scriptのファイルを格納する。
  1. .clasp.json.gitignoreの内容を更新する。

    • .clasp.json
      {
      "scriptId": "XXXXX",
      "rootDir": "./src"
      }
      
      • XXXXXには、テスト環境用ファイルのIDを入力。
    • .gitignore
      **/.clasp.json
      
      • テスト環境用ファイル情報はGit管理下から外す。
  2. npm install -g @google/claspでclaspをグローバルインストール。

  • インストールしてない場合のみ。
  1. clasp loginでClaspにログイン
  • ログインが成功したら、/Users/ユーザー名/.clasprc.jsonにDefault credentialsが保存される。(後の作業で使用する)
  1. clasp pullsrcフォルダに対象のApps Scriptファイル (テスト用) を格納する。
  • clasp pull実施前に、必要に応じてテスト環境のコードを更新する。
  1. Githubで新しいリポジトリを作成する。

  2. Github SettingsでRepository Secretを設定。

  • Github > Settings > Actions > Repository Secret .clarprc.jsonのアクセス方法
  • 設定するSecret項目
    • CLASP_SCRIPT_ID: 本番環境用ファイルのID
    • CLASPRC_ACCESS_TOKEN: clasprc.jsonを参照
    • CLASPRC_CLIENT_ID: clasprc.jsonを参照
    • CLASPRC_CLIENT_SECRET: clasprc.jsonを参照
    • CLASPRC_EXPIRY_DATE: clasprc.jsonを参照
    • CLASPRC_ID_TOKEN: clasprc.jsonを参照
    • CLASPRC_REFRESH_TOKEN: clasprc.jsonを参照 Github Actions Repository Secret
  • clasprc.jsonの参照方法 (Macの場合) : /Users/ユーザー名/にアクセスし、command + shift + .で隠しファイルを表示する。
  1. Github Actions用のフォルダ、ファイル作成
  • フォルダ、ファイル構成
    ./
        └─ .github/
             └─ workflows/
                └─ deploy.yml
    
  • deploy.ymlファイルの内容は当該リポジトリを参照。
  • deploy.ymlで実施されるステップ
    • リポジトリをチェックアウト
    • Node.jsをセットアップ(バージョン16)
    • Nodeモジュールをキャッシュ
    • ~/.clasprc.jsonを作成(Claspの設定ファイル)
    • ~/.clasp.jsonを作成(本番環境プロジェクトに紐付けられたClaspの設定ファイル)
    • バージョン情報を取得
    • Google Apps Scriptプロジェクトのファイルをアップロード
    • Google Apps Scriptプロジェクトをデプロイ (Descriptionにタグ名を記載)
  • タグ名がv*の形式でpushされたときに上記ステップが実行される。
  1. リポジトリの最初のCommit & Push
    git init
    git add .
    git commit -m "first commit"
    git branch -M main
    git remote add origin <リポジトリURL>
    git push -u origin main
    

【オプション: package.jsonおよびpackage-lock.jsonを設定し、バージョン更新】

  1. npm init -ypackage.json(デフォルト設定値)を作成する。必要に応じて内容更新。

  2. npm installpackage-lock.jsonを作成する。

3 使用方法

  1. テスト環境用ファイルを最新の状態にする。(/srcフォルダ傘下)

  2. Commit & タグ付け & Push

    git add .
    git commit -m "XXX"
    git tag vX.X.X
    git push origin main
    git push origin vX.X.X
    
    • vX.X.XはSemantic Versioningに従い、記載。

【オプション: package.jsonおよびpackage-lock.jsonを設定し、バージョン更新】

  1. npm version X.X.Xをターミナルで実行
  • npmのversionをgit tagと一致させることで、リポジトリ全体の一貫性を保てる。

4 参考文献

5 サンプル

About

Google Apps Scriptプロジェクトのテスト環境と本番環境を一つのリポジトリで管理し、Github Actionsで本番環境に自動デプロイするワークフロー。

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published