Open1

GitHub Actions Environments

tatsuyatatsuya
name: Multi Account

on: 
  workflow_dispatch:
  pull_request:

jobs:
  get_environments:
    runs-on: ubuntu-latest
    outputs:
      environments: ${{ steps.set_environments.outputs.environments }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Get Environments
        id: set_environments
        run: |
          environments=$(gh api /repos/${{ github.repository }}/environments --jq '[.environments[].name]')
          echo "environments=$environments" >> $GITHUB_OUTPUT
        env:
          GH_TOKEN: ${{ github.token }}

  list_s3_buckets:
    needs: get_environments
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    strategy:
      matrix:
        environment: ${{ fromJson(needs.get_environments.outputs.environments) }}
    environment:
      name: ${{ matrix.environment }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
          aws-region: ${{ secrets.AWS_REGION }}

      - name: List S3 bucket
        run: aws s3 ls s3://test-oac.com