fix : bucket name #24
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
name: Deploy to AWS | |
on: | |
push: | |
branches: [ "main" ] | |
permissions: | |
contents: write | |
jobs: | |
LoadManifest: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Load YAML and set environment variables | |
run: | | |
YAML_CONTENT=$(<manifest.yaml) | |
# Loop through each key-value pair in the YAML file | |
while IFS= read -r line; do | |
# Extract key and value from the line | |
KEY=$(echo "$line" | awk -F: '{print $1}') | |
VALUE=$(echo "$line" | awk -F: '{$1=""; print $0}' | xargs) | |
echo "$KEY=$VALUE" >> $GITHUB_ENV | |
done <<< "$(echo "$YAML_CONTENT" | sed '/^[[:space:]]*#/d')" # Ignore commented lines | |
Test: | |
runs-on: ubuntu-latest | |
needs: LoadManifest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
pip install pip-tools | |
pip install poetry | |
pip install pytest | |
python -m piptools compile \ | |
-o requirements.txt \ | |
pyproject.toml | |
pip install -r requirements.txt | |
- name: Run Tests | |
run: | | |
pytest | |
Build: | |
runs-on: ubuntu-latest | |
needs: Test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Bump version and push tag | |
id: tag_version | |
uses: mathieudutour/github-tag-action@v6.1 | |
with: | |
github_token: ${{ secrets.GH_TOKEN }} | |
- name: Create a GitHub release | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ steps.tag_version.outputs.new_tag }} | |
name: Release ${{ steps.tag_version.outputs.new_tag }} | |
body: ${{ steps.tag_version.outputs.changelog }} | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY}} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} | |
aws-region: 'us-east-1' | |
- name: SonarCloud Scan | |
uses: sonarsource/sonarcloud-github-action@master | |
env: | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- name: Load YAML and set environment variables | |
run: | | |
YAML_CONTENT=$(<manifest.yaml) | |
# Loop through each key-value pair in the YAML file | |
while IFS= read -r line; do | |
# Extract key and value from the line | |
KEY=$(echo "$line" | awk -F: '{print $1}') | |
VALUE=$(echo "$line" | awk -F: '{$1=""; print $0}' | xargs) | |
echo "$KEY=$VALUE" >> $GITHUB_ENV | |
done <<< "$(echo "$YAML_CONTENT" | sed '/^[[:space:]]*#/d')" # Ignore commented lines | |
- name: Package Lambda Function | |
run: | | |
pip install pip-tools | |
pip install poetry | |
pip install pytest | |
python -m piptools compile \ | |
-o requirements.txt \ | |
pyproject.toml | |
pip install -r requirements.txt -t src/ | |
cd src/ | |
zip -r ../lambda.zip . | |
- name: Create Artifact Bucket | |
run: | | |
aws s3api create-bucket --bucket ${{ env.ENVIRONMENT }}-${{ env.AWS_REGION }}-artifacts-bucket | |
- name: Upload Artifact to S3 | |
run: | | |
aws s3 cp ./lambda.zip s3://${{ env.ENVIRONMENT }}-${{ env.AWS_REGION }}-artifacts-bucket/lambda.zip | |
Deploy: | |
runs-on: ubuntu-latest | |
needs: Build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Load YAML and set environment variables | |
run: | | |
YAML_CONTENT=$(<manifest.yaml) | |
# Loop through each key-value pair in the YAML file | |
while IFS= read -r line; do | |
# Extract key and value from the line | |
KEY=$(echo "$line" | awk -F: '{print $1}') | |
VALUE=$(echo "$line" | awk -F: '{$1=""; print $0}' | xargs) | |
echo "$KEY=$VALUE" >> $GITHUB_ENV | |
done <<< "$(echo "$YAML_CONTENT" | sed '/^[[:space:]]*#/d')" # Ignore commented lines | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY}} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} | |
aws-region: 'us-east-1' | |
- name: Deploy CloudFormation Stack | |
uses: aws-actions/aws-cloudformation-github-deploy@v1 | |
with: | |
name: ${{ env.ENVIRONMENT }}-${{ env.AWS_REGION }}-cloud-data-pipeline | |
template: aws/cloudformation.yaml | |
capabilities: CAPABILITY_NAMED_IAM | |
parameter-overrides: | | |
Environment= dev | |
AWSRegion= us-east-1 | |
LambdaArtifactBucket=dev-us-east-1-artifacts-bucket | |
LambdaArtifactKey=lambda.zip | |