GitLabリポジトリをRailwayにデプロイする
AIコーディング支援サービスに関する諸問題 から、GitHubへの批判が高まっています。
私としても何かあった時の備えとして、いくつかの制作物のコードをGitLabに移転しましたが、RailwayはGitLab連携には現在のところ対応していません。
しかし、RailwayはGitリポジトリではなくコマンドラインインターフェイスを使った直接デプロイができ、それを GitLab CI に組み込むことにより、GitLabリポジトリと連携ができます。
準備
- デプロイ対象となるプロジェクトを作成する。なお、2つ以上のアプリケーションコンテナを一つのプロジェクトに同居させた場合は、CIによる自動デプロイはできないようである。
- プロジェクトトークン を発行する。
- GitLabのプロジェクトの CI/CD 設定で、環境変数
RAILWAY_TOKEN
に上記プロジェクトトークンを設定する。
.gitlab-ci.yml
下記内容の .gitlab-ci.yml
を作成すれば Railway にデプロイができます。
default:
image: 'alpine:latest'
before_script:
- apk add curl tar
- curl -fsSL https://railway.app/install.sh | sh
stages:
- deploy
deploy to production:
stage: deploy
script: railway up
environment:
name: production
rules:
- if: '$CI_COMMIT_BRANCH == "main"'