diff --git a/.github/workflows/test-ci.yml b/.github/workflows/test-ci.yml new file mode 100644 index 00000000..9a85488a --- /dev/null +++ b/.github/workflows/test-ci.yml @@ -0,0 +1,42 @@ +name: time-tracker-ui-ci + +on: + push: + branches: + - "*" + + pull_request: + branches: + - "master" + +jobs: + terraform: + runs-on: ubuntu-latest + env: + WORKING_DIR: infrastructure/aws/ + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: us-east-1 + steps: + - name: Checkout to my branch + uses: actions/checkout@v3 + + - name: Authenticate with the TF modules repository + uses: webfactory/ssh-agent@v0.5.4 + with: + ssh-private-key: ${{ secrets.INFRA_TERRAFORM_MODULES_SSH_PRIV_KEY }} + + - name: Terraform init + run: | + echo "** Running Terraform Init**" + terraform init + working-directory: ./${{ env.WORKING_DIR }} + + - name: Terraform validate, plan + run: | + echo "** Running Terraform Validate**" + terraform validate + echo "** Running Terraform Plan**" + terraform plan + + working-directory: ./${{ env.WORKING_DIR }} diff --git a/infrastructure/aws/buckets/main.tf b/infrastructure/aws/buckets/main.tf new file mode 100644 index 00000000..8aa698f3 --- /dev/null +++ b/infrastructure/aws/buckets/main.tf @@ -0,0 +1,31 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.9.0" + } + } + +# backend "s3" { +# bucket = "timetracker-stage-frontend-bucket-state" +# key = "timetracker-bucket/terraform.tfstate" +# region = "us-east-1" +# } + +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_s3_bucket" "timetracker-stage-frontend-bucket-state" { + bucket = var.timetracker-stage-frontend-bucket-state + acl = "private" +} + +resource "aws_s3_bucket_versioning" "bucket-timetracker-state-versioning" { + bucket = aws_s3_bucket.timetracker-stage-frontend-bucket-state.id + versioning_configuration { + status = "Enabled" + } +} \ No newline at end of file diff --git a/infrastructure/aws/main.tf b/infrastructure/aws/main.tf new file mode 100644 index 00000000..bc6fec3b --- /dev/null +++ b/infrastructure/aws/main.tf @@ -0,0 +1,27 @@ +provider "aws" { + region = "us-east-1" +} + +module "timetracker-files-s3" { + source = "git@github.com:ioet/infra-terraform-modules.git//aws-static-website" + create_route53_domain = false + bucket_name = var.bucket_name + zone_name = var.zone_name + website_domain = var.domain_name +} + +# Enable when launch to PROD files are ready +# module "static-website-people-prod" { +# source = var.repo_source +# create_route53_domain = true +# bucket_name = var.bucket_name +# zone_name = var.zone_name +# website_domain = var.domain_name +# } + +resource "null_resource" "upload-files" { + provisioner "local-exec" { + command = "aws s3 sync ../build/ s3://${var.bucket_name} --delete" + interpreter = ["/bin/bash", "-c"] + } +} \ No newline at end of file diff --git a/infrastructure/aws/variables.tf b/infrastructure/aws/variables.tf new file mode 100644 index 00000000..845b3138 --- /dev/null +++ b/infrastructure/aws/variables.tf @@ -0,0 +1,24 @@ +variable "environment" { + default = "stage" +} + +variable "repo_source" { + default = "git@github.com:ioet/infra-terraform-modules.git//aws-static-website" +} + +variable "zone_name" { + default = "timetracker.ioet.com" +} + +variable "bucket_name" { + default = "timetracker-stage-frontend-bucket-state" +} + +variable "domain_name" { + default = "stg2.timetracker.ioet.com" +} + +variable "timetracker-stage-frontend-bucket-state" { + type = string + default = "timetarcker-stage-frontend-bucket-state" +} \ No newline at end of file