はじめに
Gitlab から Cloud Source Repositories へソースコードを同期します。
同期したあとは、Cloud Source Repositories から Cloud Buildに連携して、デプロイ自動化を行ったりできます!
※ プロバイダが、GitHubかBitBucketであれば、GCP標準で外部リポジトリ接続のサービスが提供されています。
手順
【GCP側操作】 リポジトリ作成
- コンソール > Cloud Source Repositories で 新しいリポジトリを作成します
- ここでは、 新しいリポジトリを作成 を選択します。 (Gitlabは外部リポジトリ連携が標準で不可のため)
- 以下を指定
- リポジトリ名
- プロジェクト: GCPのプロジェクトを指定
【GCP側操作】 Gitlabからのアクセスするための user/passを発行
- リポジトリにコードを追加 ページで以下を選択
- ローカル Git リポジトリからコードを push
- 手動で生成した認証情報
-
Git 認証情報を生成して保存します。 をクリック
- アカウント確認があるので、OKして進む
- Google Cloud Developer からの権限承認がでるので、OKしてすすむ
- コピー&ペーストできるコマンドを ターミナルで実行 (※ bashでやるのがよいです。私はzshだとうまく行かなかったので)
eval 'set +o history' 2>/dev/null || setopt HIST_IGNORE_SPACE 2>/dev/null
touch ~/.gitcookies
chmod 0600 ~/.gitcookies
git config --global http.cookiefile ~/.gitcookies
tr , \\t <<\__END__ >>~/.gitcookies
source.developers.google.com,FALSE,/,TRUE,****************************************************
__END__
eval 'set -o history' 2>/dev/null || unsetopt HIST_IGNORE_SPACE 2>/dev/null
- ~/.gitcookies にパスワードが生成されています。 これを後ほど Gitlab側の操作で使用します
- サンプル: (= で区切られています)
- [user].gmail.com : user
- [password] : password
$ cat .gitcookies
source.developers.google.com FALSE / TRUE 2147483647 o [user].gmail.com=[password]
【Gitlab側操作】 同期設定を行う
- Setting > Repository を選択
- 以下を設定して、 Mirror repository をクリック
項目 | 値 | |
---|---|---|
Git repository URL | https://[user].gmail.com@source.developers.google.com/p/[project]/r/[repositry] | "@の前にuser (例はgmail)" URLは |
Mirror direction | Push | Gitlab → GCP |
Authentication method | Password | |
Password | [password] |
- くるくるマークをクリックして、Errorが発生せず、 Last update の時間が表示されれば、ソースは同期完了です!