📘
Vapor.EnvironmentをCI(GitHub Action)でテストする方法
Vapor.Environment
VaporではDBなどの設定(ホスト
ユーザー名
パスワード
)を取ってくる際には、Vapor.Environment
経由で取得可能です。
Xcodeでデバッグしている際には.env
ファイルを用意することで自動でこのファイルから読み取ってくれます。
DATABASE_HOST=host
DATABASE_NAME=database_name
DATABASE_USERNAME=user_name
DATABASE_PASSWORD=password
On CI(GitHub Action)
デバッグと同じようにCIで.env
を作成するように設定すれば良いのかと思ったのですが、これではうまくいかず環境変数を設定してあげる必要があります。
該当のリポジトリ>設定>Secrets and Variants>Actions>Repository Secrets
に.env
に設定していた値を追加します。
name: Test
on:
pull_request:
branches: [ "main", "develop" ]
jobs:
build:
name: Swift ${{ matrix.swift }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
swift: ["5.9.2"]
steps:
- name: Install swiftly
run: curl -L https://swift-server.github.io/swiftly/swiftly-install.sh | bash -s -- --disable-confirmation
- name: Install Swift
run: swiftly install ${{ matrix.swift }}
- uses: actions/checkout@v4
- name: Build
run: swift build -v
- name: Test Swift
run: swift test -v
env:
DATABASE_HOST: ${{ secrets.DATABASE_HOST }}
DATABASE_NAME: ${{ secrets.DATABASE_NAME }}
DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}
DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }}
サンプル
Vapor
Swift OpenAPI Generator
を使ってサーバー開発の練習をしているので、少し参考になるかもしれません。
Discussion