-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(SYNC-MODULES): Add modules syncronization with le-tf-infra-aws repo
- Loading branch information
1 parent
37c554d
commit 0bea9c8
Showing
2 changed files
with
104 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: Synchorize Modules Version | ||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: [opened, reopened, synchronize, labeled, unlabeled] | ||
jobs: | ||
management_layer: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
modules: [ | ||
["management/global/sso/account_assignments.tf", "management/global/sso/account_assignments.tf"], | ||
["management/us-east-1/base-tf-backend/main.tf", "management/primary_region/base-tf-backend/main.tf"] | ||
] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Create branch | ||
run: git checkout -b sync-management-layer-modules | ||
#- name: Clone le-tf-infra-aws repo | ||
# run: | | ||
# cd ../ | ||
# git clone [email protected]:binbashar/le-tf-infra-aws.git | ||
#- name: Sync modules | ||
# run: | | ||
# cd le-tf-infra-aws-template | ||
# chmod +x sync_modules.sh | ||
# ./sync_modules.sh ${{ matrix.modules[0] }} ${{ matrix.modules[1] }} | ||
# git add ${{ matrix.modules[1] }} | ||
# git commit -m "Sync ${{ matrix.modules[1] }} module" | ||
- name: Create PR | ||
uses: peter-evans/create-pull-request@v7 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
commit-message: "Sync ${{ matrix.modules[1] }} module" | ||
title: "Sync Management Layer modules" | ||
body: "Sync ${{ matrix.modules[0] }} and ${{ matrix.modules[1] }} modules" | ||
branch: "sync-management-layer-modules" | ||
base: "master" | ||
labels: "enhancement" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#! /bin/bash | ||
|
||
################################################################################################################################################# | ||
# This script is used to compare module versions and update the template file if the versions do not match # | ||
# Usage: ./sync_modules.sh <infra_file> <template_file> # | ||
# Example: ./sync_modules.sh le-tf-infra-aws/management/global/sso/account_assignments.tf template/management/global/sso/account_assignments.tf # | ||
################################################################################################################################################# | ||
|
||
# management/global/sso/account_assignments.tf | ||
# management/primary_region/base-tf-backend/main.tf | ||
# security/primary_region/base-tf-backend/main.tf | ||
# security/primary_region/security-base/account.tf | ||
# shared/primary_region/base-network/network_vpc_flow_logs.tf | ||
# shared/primary_region/base-network/network.tf | ||
# shared/primary_region/base-tf-backend/main.tf | ||
|
||
# Check if the number of arguments is correct | ||
if [ "$#" -ne 2 ]; then | ||
echo "Usage: $0 <infra_file> <template_file>" | ||
exit 1 | ||
fi | ||
|
||
# print message that initiate the comparison | ||
echo -e "Initiating comparison:\nInfra file: $1\nTemplate file: $2\n" | ||
|
||
# It should comtains the path of the infra file and the template file | ||
INFRA_FILE=$1 | ||
TEMPLATE_FILE=$2 | ||
|
||
if [ -z $TEMPLATE_FILE ]; then | ||
echo "Template file does not exist" | ||
exit 1 | ||
fi | ||
|
||
if [ -z $INFRA_FILE ]; then | ||
echo "Infra file does not exist" | ||
exit 1 | ||
fi | ||
|
||
TEMPLATE_VERSION=$(cat $TEMPLATE_FILE | grep -oP 'ref=\K[^"]*') | ||
INFRA_VERSION=$(cat $INFRA_FILE | grep -oP 'ref=\K[^"]*') | ||
|
||
if [ -z $INFRA_VERSION ]; then | ||
echo "Infra Version value taken from the files is empty" | ||
exit 1 | ||
fi | ||
|
||
if [ -z $TEMPLATE_VERSION ]; then | ||
echo "Template Version value taken from the files is empty" | ||
exit 1 | ||
fi | ||
|
||
echo "Current Template Version: $TEMPLATE_VERSION" | ||
echo "Current Infra Version: $INFRA_VERSION" | ||
|
||
if [ "$TEMPLATE_VERSION" == "$INFRA_VERSION" ]; then | ||
echo "Versions match, no need to update" | ||
exit 0 | ||
else | ||
echo "Versions do not match, updating on template repository" | ||
sed -i "s/ref=$TEMPLATE_VERSION/ref=$INFRA_VERSION/g" le-tf-infra-aws-template/template/management/global/sso/account_assignments.tf | ||
echo "Updated the version in the template repository file to $INFRA_VERSION" | ||
exit 0 | ||
fi |