use artifacts #54
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Connect to an AWS role from a GitHub repository | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
permissions: | |
id-token: write | |
contents: read | |
env: | |
AWS_REGION: "eu-central-1" | |
jobs: | |
setup-aws-creds: | |
name: Setup AWS access | |
runs-on: ubuntu-latest | |
outputs: | |
output1: ${{ steps.artifact-upload-step-aws.outputs.artifact-id }} | |
steps: | |
- name: Configure AWS credentials | |
id: aws_setup | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_GITHUB_ROLE_ARN }} | |
role-session-name: GitHub_to_AWS | |
aws-region: ${{ env.AWS_REGION }} | |
- uses: actions/upload-artifact@v4 | |
id: artifact-upload-step-aws | |
with: | |
name: aws-creds | |
if-no-files-found: error | |
include-hidden-files: true | |
path: ~/.aws | |
setup-infra: | |
defaults: | |
run: | |
working-directory: terraform | |
name: Setup infra | |
runs-on: ubuntu-latest | |
outputs: | |
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v3 | |
- name: Set up Terraform | |
id: set_tf_version | |
uses: hashicorp/setup-terraform@v2 | |
with: | |
terraform_version: 1.9.6 | |
- name: Terraform Init | |
run: terraform init | |
- uses: actions/upload-artifact@v4 | |
id: artifact-upload-step | |
with: | |
name: terraform root dir | |
if-no-files-found: error | |
include-hidden-files: true | |
path: terraform | |
check-dir: | |
name: ls dir | |
runs-on: ubuntu-latest | |
needs: [ setup-infra, setup-aws-creds ] | |
steps: | |
- name: Download Artifact | |
uses: actions/download-artifact@v4 | |
- run: | | |
ls -la | |
echo Show Main Dir | |
ls -la ../ | |
terraform-fmt: | |
name: Terraform fmt | |
runs-on: ubuntu-latest | |
needs: [ setup-infra, setup-aws-creds ] | |
steps: | |
- name: Download Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: terraform root dir | |
path: ./ | |
- run: terraform fmt | |
terraform-plan: | |
name: Terraform Plan | |
runs-on: ubuntu-latest | |
needs: [ setup-infra, setup-aws-creds, terraform-fmt ] | |
steps: | |
- name: Download Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: terraform root dir | |
path: ./ | |
- run: terraform plan | |
terraform-apply: | |
name: Terraform apply | |
runs-on: ubuntu-latest | |
needs: [ setup-infra, setup-aws-creds, terraform-fmt, terraform-plan ] | |
steps: | |
- name: Download Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: terraform root dir | |
path: ./ | |
- run: terraform apply |