Skip to content

Commit

Permalink
github action (#3)
Browse files Browse the repository at this point in the history
* github action

* github action

* github action

* github action
  • Loading branch information
Sohan authored and anmolnagpal committed Dec 28, 2019
1 parent 92acbe3 commit c315d8b
Show file tree
Hide file tree
Showing 12 changed files with 151 additions and 36 deletions.
115 changes: 115 additions & 0 deletions .github/workflows/terraform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: 'Terraform GitHub Actions'
on:
- pull_request

jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
steps:

- name: 'Checkout'
uses: actions/checkout@master

- name: 'Terraform Format'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'fmt'

- name: 'Terraform Init for default-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'init'
tf_actions_working_dir: ./_example/default-s3

- name: 'Terraform Init for encryption-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'init'
tf_actions_working_dir: ./_example/encryption-s3

- name: 'Terraform Init for logging-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'init'
tf_actions_working_dir: ./_example/logging-s3

- name: 'Terraform Init For website-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'init'
tf_actions_working_dir: ./_example/website-s3

- name: Configure AWS Credentials
uses: clouddrove/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2

- name: 'Terraform Plan For default-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'plan'
tf_actions_working_dir: ./_example/default-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terraform Plan for encryption-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'plan'
tf_actions_working_dir: ./_example/encryption-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terraform Plan for logging-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'plan'
tf_actions_working_dir: ./_example/logging-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terraform Plan For website-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'plan'
tf_actions_working_dir: ./_example/website-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terratest for default-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'terratest'
tf_actions_working_dir: ./_test/default-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terratest for encryption-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'terratest'
tf_actions_working_dir: ./_test/encryption-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Terratest for website-s3'
uses: clouddrove/[email protected]
with:
actions_subcommand: 'terratest'
tf_actions_working_dir: ./_test/website-s3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 'Slack Notification'
uses: clouddrove/action-slack@v2
with:
status: ${{ job.status }}
fields: repo,author
author_name: 'Clouddrove'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required
if: always()
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ Here are some examples of how you can use this module in your inventory structur
### Basic Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "secure-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
bucket_enabled = true
Expand All @@ -84,12 +84,12 @@ module "s3_bucket" {
### Encryption Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "encryption-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
encryption_enabled = true
Expand All @@ -99,12 +99,12 @@ module "s3_bucket" {
### Logging Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "logging-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
bucket_logging_enabled = true
Expand All @@ -115,12 +115,12 @@ module "s3_bucket" {
### Website Host Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "website-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
website_hosting_bucket = true
Expand Down
16 changes: 8 additions & 8 deletions README.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ usage : |-
### Basic Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "secure-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
bucket_enabled = true
Expand All @@ -50,12 +50,12 @@ usage : |-
### Encryption Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "encryption-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
encryption_enabled = true
Expand All @@ -65,12 +65,12 @@ usage : |-
### Logging Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "logging-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
bucket_logging_enabled = true
Expand All @@ -81,12 +81,12 @@ usage : |-
### Website Host Bucket
```hcl
module "s3_bucket" {
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.2"
source = "https://github.com/clouddrove/terraform-aws-s3?ref=tags/0.12.3"
name = "website-bucket"
region = "eu-west-1"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]
versioning = true
acl = "private"
website_hosting_bucket = true
Expand Down
4 changes: 2 additions & 2 deletions _example/default-s3/example.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ provider "aws" {
}

module "s3_bucket" {
source = "git::https://github.com/clouddrove/terraform-aws-s3.git?ref=tags/0.12.2"
source = "./../../"

name = "secure-bucket"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]

region = "eu-west-1"
versioning = true
Expand Down
4 changes: 2 additions & 2 deletions _example/encryption-s3/example.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ provider "aws" {
}

module "s3_bucket" {
source = "git::https://github.com/clouddrove/terraform-aws-s3.git?ref=tags/0.12.2"
source = "./../../"

name = "encryption-bucket"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]

region = "eu-west-1"
versioning = true
Expand Down
4 changes: 2 additions & 2 deletions _example/logging-s3/example.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ provider "aws" {
}

module "s3_bucket" {
source = "git::https://github.com/clouddrove/terraform-aws-s3.git?ref=tags/0.12.2"
source = "./../../"

name = "logging-bucket"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]

region = "eu-west-1"
versioning = true
Expand Down
6 changes: 3 additions & 3 deletions _example/website-s3/example.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ provider "aws" {
}

module "s3_bucket" {
source = "git::https://github.com/clouddrove/terraform-aws-s3.git?ref=tags/0.12.2"
source = "./../../"

name = "website-bucket"
application = "clouddrove"
environment = "test"
label_order = ["environment", "name", "application"]
label_order = ["environment", "application", "name"]

region = "eu-west-1"
versioning = true
Expand All @@ -34,6 +34,6 @@ data "aws_iam_policy_document" "default" {
identifiers = ["*"]
}
actions = ["s3:GetObject"]
resources = ["arn:aws:s3:::test-website-bucket-clouddrove/*"]
resources = ["arn:aws:s3:::test-clouddrove-website-bucket/*"]
}
}
4 changes: 2 additions & 2 deletions _test/default-s3/s3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ func Test(t *testing.T) {
Tags := terraform.OutputMap(t, terraformOptions, "tags")

// Verify we're getting back the outputs we expect
assert.Equal(t, "test-secure-bucket-clouddrove", s3BucketId)
assert.Equal(t, "test-secure-bucket-clouddrove", Tags["Name"])
assert.Equal(t, "test-clouddrove-secure-bucket", s3BucketId)
assert.Equal(t, "test-clouddrove-secure-bucket", Tags["Name"])
}
4 changes: 2 additions & 2 deletions _test/encryption-s3/s3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ func Test(t *testing.T) {
Tags := terraform.OutputMap(t, terraformOptions, "tags")

// Verify we're getting back the outputs we expect
assert.Equal(t, "test-encryption-bucket-clouddrove", s3BucketId)
assert.Equal(t, "test-encryption-bucket-clouddrove", Tags["Name"])
assert.Equal(t, "test-clouddrove-encryption-bucket", s3BucketId)
assert.Equal(t, "test-clouddrove-encryption-bucket", Tags["Name"])
}
4 changes: 2 additions & 2 deletions _test/logging-s3/s3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ func Test(t *testing.T) {
Tags := terraform.OutputMap(t, terraformOptions, "tags")

// Verify we're getting back the outputs we expect
assert.Equal(t, "test-logging-bucket-clouddrove", s3BucketId)
assert.Equal(t, "test-logging-bucket-clouddrove", Tags["Name"])
assert.Equal(t, "test-clouddrove-logging-bucket", s3BucketId)
assert.Equal(t, "test-clouddrove-logging-bucket", Tags["Name"])
}
4 changes: 2 additions & 2 deletions _test/website-s3/s3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ func Test(t *testing.T) {
Tags := terraform.OutputMap(t, terraformOptions, "tags")

// Verify we're getting back the outputs we expect
assert.Equal(t, "test-website-bucket-clouddrove", s3BucketId)
assert.Equal(t, "test-website-bucket-clouddrove", Tags["Name"])
assert.Equal(t, "test-clouddrove-website-bucket", s3BucketId)
assert.Equal(t, "test-clouddrove-website-bucket", Tags["Name"])
}
6 changes: 3 additions & 3 deletions outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
# Description : Terraform module to create default S3 bucket with logging and encryption
# type specific features.
output "id" {
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.id) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.id) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.id) : join("", aws_s3_bucket.s3_encryption.*.id)))
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.id) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.id) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.id) : join("", aws_s3_bucket.s3_encryption.*.id)))
description = "The ID of the s3 bucket."

}

output "arn" {
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.arn) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.arn) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.arn) : join("", aws_s3_bucket.s3_encryption.*.arn)))
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.arn) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.arn) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.arn) : join("", aws_s3_bucket.s3_encryption.*.arn)))
description = "The ARN of the s3 bucket."

}

output "bucket_domain_name" {
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.bucket_domain_name) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.bucket_domain_name) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.bucket_domain_name) : join("", aws_s3_bucket.s3_encryption.*.bucket_domain_name)))
value = var.bucket_enabled ? join("", aws_s3_bucket.s3_default.*.bucket_domain_name) : (var.website_hosting_bucket ? join("", aws_s3_bucket.s3_website.*.bucket_domain_name) : (var.bucket_logging_enabled ? join("", aws_s3_bucket.s3_logging.*.bucket_domain_name) : join("", aws_s3_bucket.s3_encryption.*.bucket_domain_name)))
description = "The Domain of the s3 bucket."

}
Expand Down

0 comments on commit c315d8b

Please sign in to comment.