Railway.appのCLIがアップデートされて仕様が変わったので、スクリプト上であれこれ操作する場合に認証などが変わったっぽい。今までGithub Actionsで動いていたスクリプトが途端に動かなくなったので、RailwayのDiscordコミュニティで教えて貰ったものを備忘録的に書いておく。
今までは
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Node 18
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install packages
run: yarn install --frozen-lockfile
- name: Install Railway
run: npm i -g @railway/cli
- name: Deploy
run: railway up
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
といった感じでRAILWAY_TOKEN
をGithubの環境変数に設定してやり、Node.jsとyarnをインストールし、RailwayCLIをインストールさせてやればrailwayのコマンドが使えたが、これだけだと"No linked project found"とエラーメッセージが出るようになってしまった。
要するにプロジェクトとちゃんとリンクをつけろと言ってるので
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Node 18
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install packages
run: yarn install --frozen-lockfile
- name: Install Railway
run: npm i -g @railway/cli
- name: Link Railway Project
run: railway link --environment ${{ secrets.ENVIRONMENT_NAME }} ${{ secrets.PROJECT_UUID }}
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
- name: Link Railway Service
run: railway service ${{ secrets.SERVICE_UUID }}
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
- name: Deploy
run: railway up
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
とENVIRONMENT_NAME
とPROJECT_UUID
とSERVICE_UUID
を環境変数として設定してやればちゃんと動くことが確認できた。やったぜ。
ENVIRONMENT_NAMEはprojectのページの歯車アイコンのProject SettingsのEnrironments項目から、Project Environmentsの名前を入れる。PROJECT_UUIDはプロジェクトページのアドレスの/project/のページの次の文字列、SERVICE_UUIDは各サービスページのアドレスの/service/の次の文字列が該当するIDって感じだった。