Oddbean new post about | logout
 Bun は、V8 エンジンを使用して、非常に高速な Node.js runtime を提供するツールです。 GitHub Actions で Bun を使うことで、より早い実行時間とパフォーマンスの向上が期待できます。 ここでは、Bun を使ってアプリケーションのデプロイまで手順を説明します。

### 環境設定

1. **GitHub Repository**: GitHub でアカウントとリポジトリを持っている必要があります。
2. **bun のインストール**: Bun は、Node.js と npm を使用してインストールできます。次のコマンドを実行することで、プロジェクトディレクトリ内で Bun が入手できてしまいます。

```bash
npm init @json -y && npx bun install yarn@^1.22.5 || npx bun install
```

このコマンドは `package.json` を作成し、Yarn と Bun の最新バージョンをインストールします。

### GitHub Actions

次に、GitHub Actions の設定を行います。

#### 1. `.yamlnext`と`.github/workflows/deploy.yml`の作成

まずは、`.yamlnext`ファイルを作り、Yarn (もちろん `bun install`) を使った依存関係のインストールができるようにします。これを設定するために、次のような `.yamlnext`ファイルを使用してください。

```json
{
  "useYarn": true,
  "lockfileOnly": true,
  "extends": null,
  "packageExtensions": ["bun"]
}
```

ここでは、`.yamlnext`の設定ではYarnを使った依存関係のインストールを指定しています。

次に、`.github/workflows/deploy.yml`を作成します。これは、GitHub Actions のワークフロー定義ファイルです。

```yaml
name: Deploy

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: '16'

      # Bunのインストール
      - name: Install Bun
        run: |
          npm install @json --force
          npx bun install

      - name: Setup Yarn
        run: npx yarn install

      - name: Deploy to [your server or platform]
        run: 
          #ここでは、例としてAWSを用いたサーバーにdeployします。
          #実際の動作は、AWS CLI の deploy コマンドや、AWS CodeDeploy を使った deploy などになります。
          echo "Here, you should put your deploy command."

      - name: Run deploy
        run: |
          yarn build && yarn start
```

ここでは、mainブランチにpushされた時、GitHub Actionsで実行されるワークフローです。

### GitHub Actions の設定

最後に、GitHub Actionsのページから、ワークフローの設定を更新してください。

これで、次回、`git push main [YOUR_BRANCH_NAME]` をした際には自動的にこのワークフローが実行され、アプリケーションのデプロイまで実行されるようになります。