LoginSignup
0
0

More than 1 year has passed since last update.

AWS CodeBuilde で Cypress を実行する

Posted at

やりたいこと

  • AWS CodeBuild のビルドプロジェクトで Cypress E2E テストを実施したい
  • ビルドプロジェクトの呼び出し元は Jenkins から行いたい
    • 既存の CI/CD に追加する形で実現したかった

既存の CI/CD 資産に追加する形で E2E テストを実現する方法を調査&お試し。

前提

  • github 上に Cypress E2E プロジェクトを用意している

設定

AWS IAM

  • Jenkins から CodeBuild を実行するためのユーザを作成する
    • アタッチするポリシーは「AWSCodeBuildDeveloperAccess」
      • ※もっと権限を絞った適切なポリシーがあるかも
    • 作成した際の「アクセスキー ID」「シークレットキー」を Jenkins ジョブの AWS Configuration に設定する

AWS CodeBuild

  • Cypress を実行する CodeBuild ビルドプロジェクトを作成する
    • プロジェクトの設定
    • プロジェクト名を記入
      • Jenkins で作成したジョブの Project Configuration に設定する
    • ソース
      • ソースプロバイダで「GitHub」を選択
      • リポジトリの URL に Cypress リポジトリの URL を記入
    • 環境
      • マネージド型イメージを選択
        • Node.js が動けば OK
    • ログ
      • グループ名を記入
    • Buildspec
      • 以下ビルドコマンドを記述
buildspec.yml
version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: latest
    commands:
      # Set COMMIT_INFO variables to send Git specifics to Cypress Dashboard when recording
      # https://docs.cypress.io/guides/continuous-integration/introduction#Git-information
      - export COMMIT_INFO_BRANCH="$(git rev-parse HEAD | xargs git name-rev | cut -d' ' -f2 | sed 's/remotes\/origin\///g')"
      - export COMMIT_INFO_MESSAGE="$(git log -1 --pretty=%B)"
      - export COMMIT_INFO_EMAIL="$(git log -1 --pretty=%ae)"
      - export COMMIT_INFO_AUTHOR="$(git log -1 --pretty=%an)"
      - export COMMIT_INFO_SHA="$(git log -1 --pretty=%H)"
      - export COMMIT_INFO_REMOTE="$(git config --get remote.origin.url)"
      - npm ci
  pre_build:
    commands:
      - npm run cy:verify
      - npm run cy:info
  build:
    commands:
      - npm run start:ci &
      - npx cypress run

Jenkins

  • CodeBuild ビルドプロジェクトを実行する Jenkins のジョブを作成する
    • プラグインに「AWS CodeBuild Plugin」を追加する
    • フリースタイル・プロジェクトのビルドを作成
    • ビルドで「AWS CodeBuild」を選択(プラグインインストール後に選択可能)
    • 設定値
      • AWS Configuration
        • Manually specify access and secret keys を選択
        • AWS Access Key, AWS Secret Key に 作成した IAM ユーザを指定
      • Project Configuration
        • Region, Project Name は 作成したビルドプロジェクトを指定
        • Use Project source を選択

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0