Compare commits
19 Commits
feat/use-h
...
feat/actio
| Author | SHA1 | Date | |
|---|---|---|---|
| 69718dd467 | |||
| db288c1f06 | |||
| 2de880fb4c | |||
| ab324b6b1c | |||
| f4fee8521e | |||
| 76db2c3dd3 | |||
| 14fa6c4052 | |||
| 0a3be5336b | |||
| 804743d2df | |||
| 7992362abc | |||
| 1beac34439 | |||
| e46795fd57 | |||
| eb91cf5052 | |||
| 554525c287 | |||
| 73fa413df8 | |||
| 93dbac9692 | |||
| 1ef8c9c173 | |||
| 384815b4a4 | |||
| 5c3adaa624 |
84
.github/workflows/deployment.yml
vendored
Normal file
84
.github/workflows/deployment.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
name: Build & Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
infrastructure:
|
||||||
|
name: Build Infrastructure
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
RUNNER_TOOL_CACHE: /toolcache
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout to Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set-up Terraform
|
||||||
|
uses: hashicorp/setup-terraform@v2
|
||||||
|
|
||||||
|
- name: Format Terraform
|
||||||
|
run: terraform fmt -check
|
||||||
|
working-directory: ./terraform
|
||||||
|
|
||||||
|
- name: Initialize Terraform Back-end
|
||||||
|
env:
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
run: terraform init
|
||||||
|
working-directory: ./terraform
|
||||||
|
|
||||||
|
- name: Terraform Plan
|
||||||
|
env:
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
run: terraform plan -out=tfplan -no-color
|
||||||
|
working-directory: ./terraform
|
||||||
|
|
||||||
|
- name: Check if there are changes
|
||||||
|
id: check_changes
|
||||||
|
run: |
|
||||||
|
if [ -n "$(terraform show -no-color tfplan | grep -E 'No changes.')" ]; then
|
||||||
|
echo "No changes detected."
|
||||||
|
echo "::set-output name=changes::false"
|
||||||
|
else
|
||||||
|
echo "Changes detected."
|
||||||
|
echo "::set-output name=changes::true"
|
||||||
|
fi
|
||||||
|
working-directory: ./terraform
|
||||||
|
|
||||||
|
- name: Terraform Apply
|
||||||
|
if: ${{ (steps.check_changes.outputs.changes == 'true') && (github.ref == 'refs/heads/main') }}
|
||||||
|
run: terraform apply -auto-approve tfplan
|
||||||
|
working-directory: ./terraform
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: Deploy Application
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
RUNNER_TOOL_CACHE: /toolcache
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout to Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Use Python 3.13
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.13'
|
||||||
|
cache: pip
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: pip install -r requirements.txt
|
||||||
|
|
||||||
|
- name: Lint Playbooks
|
||||||
|
run: ansible-lint
|
||||||
|
working-directory: ./playbooks
|
||||||
|
|
||||||
|
- name: Run Playbook
|
||||||
|
if: ${{ github.ref == 'refs/heads/main' }}
|
||||||
|
run: ansible-playbook deployment.yml
|
||||||
|
working-directory: ./playbooks
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
# proxy
|
# proxy
|
||||||
|
|
||||||
How all other applications interact with the web.
|
How all other applications interact with the web.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
- name: Deploy artifact to instance.
|
- name: Deploy artifact to instance.
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
vars_files:
|
vars_files:
|
||||||
- ../config/proxy.json
|
- ../config/ansible.secret.json
|
||||||
- ../secrets/infrastructure.secret.json
|
- ../secrets/infrastructure.secret.json
|
||||||
vars:
|
vars:
|
||||||
ansible_connection: aws_ssm
|
ansible_connection: aws_ssm
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
terraform {
|
terraform {
|
||||||
# The backend is stored in an S3 bucket.
|
# The backend is stored in an S3 bucket.
|
||||||
backend "s3" {}
|
backend "s3" {
|
||||||
|
bucket = "tsuga-sieboldii"
|
||||||
|
key = "proxy"
|
||||||
|
region = "us-east-1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Access AWS through the IaC roles.
|
# Access AWS through the IaC roles.
|
||||||
provider "aws" {
|
provider "aws" {
|
||||||
region = var.aws_region
|
region = "us-east-1"
|
||||||
access_key = var.aws_access
|
|
||||||
secret_key = var.aws_secret
|
|
||||||
}
|
}
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
variable "aws_region" {
|
|
||||||
type = string
|
|
||||||
description = "The AWS region things are created in."
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "aws_access" {
|
|
||||||
type = string
|
|
||||||
description = "The access key to generate the Gitea instance."
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "aws_secret" {
|
|
||||||
type = string
|
|
||||||
description = "The access secret to generate the Gitea instance."
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user