-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (111 loc) · 3.37 KB
/
deploy.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: Terraform CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
# env:
# TF_VERSION: "1.5.0"
# TF_WORKING_DIR: "./terraform" # Adjust to your Terraform directory
jobs:
format:
name: Terraform Format
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: ${{ env.TF_VERSION }}
- name: Run Terraform Format
run: echo "step 1"
validate:
name: Terraform Validate
runs-on: ubuntu-latest
needs: format
steps:
- name: Checkout Code
uses: actions/checkout@v2
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: ${{ env.TF_VERSION }}
- name: Run Terraform Validate
working-directory: ${{ env.TF_WORKING_DIR }}
run: echo "step 2"
plan:
name: Terraform Plan
runs-on: ubuntu-latest
needs: validate
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Run Terraform Validate
working-directory: ${{ env.TF_WORKING_DIR }}
run: echo "step 3"
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: ${{ env.TF_VERSION }}
# - name: Terraform Init
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform init -input=false
# - name: Terraform Plan
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform plan -out=tfplan.binary
# - name: Show Terraform Plan
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform show -no-color tfplan.binary
manual-approval:
name: Manual Approval Before Apply
runs-on: ubuntu-latest
needs: plan
if: github.event_name == 'push' # Only require approval on main branch pushes
steps:
- name: Approval Needed
run: echo "Please review and approve before deploying."
apply:
name: Terraform Apply
runs-on: ubuntu-latest
needs: manual-approval
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Terraform Init
working-directory: ${{ env.TF_WORKING_DIR }}
run: echo "SUCESSS"
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: ${{ env.TF_VERSION }}
# - name: Terraform Init
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform init -input=false
# - name: Apply Terraform Plan
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform apply -auto-approve tfplan.binary
name: Manual Deploy Stage
on:
workflow_dispatch:
jobs:
deploy:
name: Deploy Stage
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
# - name: Download Plan Artifact
# uses: actions/download-artifact@v2
# with:
# name: tfplan.binary
# path: ./terraform
# - name: Set up Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: "1.5.0"
- name: Terraform Apply
working-directory: ./terraform
run: echo "TEST END"