Amazon CodeCatalyst のワークフローを GitHub Actions のワークフローへ移行してみた

Amazon CodeCatalyst のワークフローを GitHub Actions のワークフローへ移行してみた

2026.01.13

いわさです。

Amazon が提供する統合開発サービスに「Amazon CodeCatalyst」というものがあります。
Amazon CodeCatalyst は現在は既存顧客のみに提供されており、新規サインアップができない状態となっています。

image.png
Explore | Amazon CodeCatalyst より

Amazon CodeCatalyst のドキュメントでは GitLab や GitHub への移行が案内されています。
以前このドキュメントに従って GitHub へのリポジトリ移行を試したことがあります。

https://dev.classmethod.jp/articles/codecatalyst-github-importer/

複数リポジトリで構成されたワークスペースの場合は移行後のリポジトリ構造の再検討は必要ですが、リポジトリ移行であれば GitHub Importer を使った上記のとおり簡単に移行が可能です。

一方で、CI/CD パイプラインとして機能するワークフローについては移行方法が案内されていません。
現状のワークフロー定義ファイル(YAML)のダウンロード方法のみです。

結論としては GitHub アクション側で再構築が必要なのですが、今回簡単な CodeCatalyst ブループリントから作成したプロジェクトのワークフローを移行してみたのでその様子を紹介します。

CodeCatalyst 側のプロジェクトを用意

まず、CodeCatalyst で新規プロジェクトを作成します。
CodeCatalyst にはブループリントという機能があってソースコードや CI/CD パイプラインを含む、すぐに動くサンプルアプリケーション一式からプロジェクトを開始することが出来ます。
次の .NET Serverless Application を選んでみます。

1C05ECAB-7ECB-4827-AB5A-053CA0EDEDA5.png

プロジェクトには CI/CD ワークフローの定義ファイルも含まれており、プロジェクト作成後すぐにワークフローが動きます。
定義ファイルは.codecatalyst/workflows/配下に含まれています。

114795AA-00FE-45DC-AE73-F38A7BA35502.png

CodeCatalyst 上のワークフロー機能を見てみると、.NET アプリケーションのビルドとテスト・デプロイが完了していました。

25D7C964-DD43-45FF-977C-A8927EF373AF.png

このワークフローは .NET アプリケーションを SAM を使って Lambda 関数をデプロイしています。

4AFEB3DA-3E56-40F2-AFF8-797C7C774716.png

GitHub リポジトリを作成(GitHub Importer)

この CodeCatalyst プロジェクトを GitHub へ移行してみます。
まずは GitHub 側にリポジトリが必要になるので、GitHub Imporer を使ってリポジトリの移行を行いましょう。
手順はここでは割愛するので冒頭のブログを参照してください。

407E0484-33D9-490E-A333-168751D6C826.png

GitHub 側でワークフローを再構築

つづいて、GitHub リポジトリの「アクション」メニューから新しくワークフローの定義を行いましょう。
リポジトリ移行直後は当然ながら何を存在していません。

まず、CodeCatalyst のワークフロー定義(YAML)は GitHub Actions のワークフロー定義(YAML)と互換性はありません。
貼り付けても次のように様々な構文エラーが発生します。

635DEAFA-FAAF-4B5F-B492-DB1546191040.png

トリガーやジョブ依存関係の定義方法から違っていますし、実行コンテナも CodeCatalyst に依存したものになっています。
CodeCatalyst は AWS アカウントと統合されており、そのままデプロイ用 IAM ロールの連携が出来ますが、これも当然ながら GitHub 側では出来ません。
ということで、結論としてはワークフロー定義を GitHub Actions 用に作り直す必要があります。

幸いにしてこの生成 AI 時代、AI の力を借りながら変換することも出来ます。
私が対話しながら作成した移行後のワークフローは以下です。

name: CI/CD Pipeline

on:
  push:
    branches:
      - main

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'
      
      - name: Build
        run: dotnet build ServerlessApp.sln -c Release
      
      - name: Test
        run: dotnet test ServerlessApp.sln -c Release --no-build --logger "trx"
      
      - name: Upload test results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: test-results
          path: '**/TestResults/*'

  deploy-to-aws:
    runs-on: ubuntu-latest
    needs: build-and-test
    environment: production
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'
      
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
      
      - name: Install Amazon Lambda Tools
        run: dotnet tool install Amazon.Lambda.Tools --global --version 5.*
      
      - name: Deploy to AWS Lambda
        run: |
          cd src/ServerlessApp
          dotnet lambda deploy-serverless --region us-west-2 --resolve-s3 true --stack-name serverless-stack-7ehkt

本来 OIDC を使うことが望ましいと思いますが、検証用に手順を簡略化したくてシークレットを使っています。
上記をmainブランチにプッシュすれば GitHub Actions が動きます。

BAD5E55F-6FC0-4E1A-8351-3D27DA1EC07B.png

無事ビルド・テストと Lambda 関数のデプロイまでが完了しました。テストとかまだしてないですが。

19EC3251-BF97-466D-B5F4-37C64025E704.png

さいごに

本日は Amazon CodeCatalyst のワークフローを GitHub Actions のワークフローへ移行してみました。

やはり CodeCatalyst から GitHub Actions への移行方法は提供されておらず、自力で移行先のワークフロー定義を再構築する必要があります。
移行元ワークフローがどの程度複雑かにもよりますが、生成 AI の助けもあり今回くらいのシンプルなものであれば数分〜数十分で移行作業は完了しました。

この記事をシェアする

FacebookHatena blogX

関連記事