name: test-ci-bootstrap-oss

permissions:
  contents: read

on:
  pull_request:
    branches:
      - main
    paths:
      - enos/ci/**
      - .github/workflows/test-ci-bootstrap-oss.yml
  push:
    branches:
      - main
    paths:
      - enos/ci/**
      - .github/workflows/test-ci-bootstrap-oss.yml

jobs:
  bootstrap-ci-oss:
    if: ${{ github.event.repository.name == 'boundary' }}
    env:
      TF_WORKSPACE: "boundary-ci-enos-bootstrap"
      TF_VAR_repository: boundary
      TF_VAR_aws_ssh_public_key: ${{ secrets.SSH_KEY_PUBLIC_CI }}
      TF_TOKEN_app_terraform_io: ${{ secrets.TF_API_TOKEN }}
    runs-on: ${{ fromJSON(vars.RUNNER) }}
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
      - name: Set up Terraform
        uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd    # TSCCR: loading action configs: failed to query HEAD reference: failed to get advertised references: authorization failed
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 # v5.0.0
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_CI }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_CI }}
          aws-region: us-east-1
          role-to-assume: ${{ secrets.AWS_ROLE_ARN_CI }}
          role-skip-session-tagging: true
          role-duration-seconds: 3600
      - name: Init Terraform
        id: tf_init
        run: |
          terraform -chdir=enos/ci/bootstrap init
      - name: Plan Terraform
        id: tf_plan
        run: |
          terraform -chdir=enos/ci/bootstrap plan
      - name: Apply Terraform
        if: ${{ github.ref == 'refs/heads/main' }}
        id: tf_apply
        run: |
          terraform -chdir=enos/ci/bootstrap apply -auto-approve
