http://blog.engineer.adways.net/entry/advent_calendar_2018GASとGitLabの連携をGitLab-CIとClaspを使って連携する方法こんにちは。インフラ系の部署で既存インフラのコード化を進めている戸田です。5年待ったゲームの発売まであと53日で夜もねれません(あれこんなこと前もいったような今回はコード化じゃないですけどはじめにインフラではGASを使うことがたびたびあります。弊社ではGitLabを使用しています。今回は、GASをGitLabで管理したいなーあわよくば、便利機能を作成したいなーといった感じで思い立って試行錯誤しました。そのことを書きたいと思います。やることといったことをしたいと思います。あとは、GASはアクセスできたらブラウザ上で変更ができてしまいます。変更された際にSlackに通知をする仕組みも一緒に行いたいと思います。することで、GitLabとGASのコードを一緒にするためです。Webhooksclaspで設定すること自分のPCで設定します。github.comインストールに関しては割愛します。GitLabで管理するためにGASをclaspでローカルに持ってきます。~/.clasprc.jsonこれはGitLab-CIで設定するために必要なので、tokenをメモしておきます。GitLab-CIでやることGitLabは".gitlab-ci.yml"というファイルをディレクトリのルートに配置して、PushするとCIが自動的に動く仕組みになっています。ファイルの構成はこんな形です。参考にさせて頂きました。/dev/null実際に動かすものは以下のファイルです。CI/CDにvariablesがあります。ここにtokenを設定をします。ローカルと同じようにclaspが動きます。実際に動かしてみるあとはスケジュールを設定すれば、定期的にチェックするためのスクリプトを実行してくれます。自動で変更されたら通知してくれます。こんな風に、教えてくれます。しようとしてできなかったことといった感じで、実際にチームドライブ上のGASをコピーしようとしました。claspで新しく作ろうとするとマイドライブ上にしか作られない他のツール(rclone)も試しましたが、チームドライブには対応してもGASの作成やコピーには対応していないならば、APIを使って、本番のGASをコピーすればいいじゃないかと思って試すが、コピーできるが、一番上の階層にしか作成されないならばならば、APIを使って、移動されたらいいじゃないかと思い、試しましたが移動するAPIがないといった問題点があり、GASのコピーと移動を断念しました。GASが複製できたら、簡単にテストなどできて楽だな~と思っていたので、残念です。現在)感想CI/CDのCDの部分ができました。そのうち、APIでGASが移動できるようになったら、GASを分けれて本番に影響なくテストできるので、してみたいです。あと、DockerのイメージをGitLabを登録にできるので、テストするスピードも上がると思います。TypeScriptを使って、GASのテストとかできるといいかもしれませんね。まとめGitLabとGASの連携をは意外と簡単にできました。コード管理ができて、自動でデプロイできるのはすごくありがたいです。最後までご覧いただきありがとうございます。次は大曲さんの記事です。