From c2936aaf962235919a67b15074adc1ecfb306412 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Tue, 5 Mar 2024 20:36:12 +0530 Subject: [PATCH] add a github action workflow --- .github/workflows/main.yml | 76 ++++++++++++++++++++++++++++++++++++++ .gitignore | 1 - docker-compose.yml | 1 + samconfig.toml | 8 ++++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/main.yml create mode 100644 samconfig.toml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..c892705 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,76 @@ +name: Deploy on LocalStack + +on: + push: + paths-ignore: + - 'README.md' + branches: + - main + pull_request: + branches: + - main + schedule: + # “At 00:00 on Sunday.” + - cron: "0 0 * * 0" + workflow_dispatch: + +permissions: + contents: write + +jobs: + sam: + name: Setup infrastructure using SAM + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - uses: gautamkrishnar/keepalive-workflow@v1 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Setup SAM + uses: aws-actions/setup-sam@v2 + with: + use-installer: true + + - name: Setup SAM-Local + run: | + pip install aws-sam-cli-local + samlocal --help + + - name: Start LocalStack + run: | + pip install localstack + docker pull localstack/localstack-pro:latest + # Start LocalStack in the background + DEBUG=1 localstack start -d + # Wait 30 seconds for the LocalStack container to become ready before timing out + echo "Waiting for LocalStack startup..." + localstack wait -t 15 + echo "Startup complete" + env: + LOCALSTACK_API_KEY: ${{ secrets.LOCALSTACK_API_KEY }} + + - name: Build the Lambda Layer + run: | + cd function + pip install --target ../package/python -r requirements.txt + + - name: Build the SAM app + run: | + samlocal build + + - name: Deploy the SAM app + run: | + curl http://localhost:4566/_localstack/info + samlocal deploy --no-confirm-changeset + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 27a1116..9324e59 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ venv/ # AWS SAM .aws-sam -samconfig.toml out.json # LocalStack diff --git a/docker-compose.yml b/docker-compose.yml index a5e30a6..40a6cec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,7 @@ services: - "127.0.0.1:443:443" # LocalStack HTTPS Gateway (Pro) environment: - LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN} + - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY} - DEBUG=1 - LAMBDA_RUNTIME_ENVIRONMENT_TIMEOUT=600 volumes: diff --git a/samconfig.toml b/samconfig.toml new file mode 100644 index 0000000..16847af --- /dev/null +++ b/samconfig.toml @@ -0,0 +1,8 @@ +version = 0.1 +[default.deploy.parameters] +stack_name = "sam-app" +resolve_s3 = true +s3_prefix = "sam-app" +region = "us-east-1" +capabilities = "CAPABILITY_IAM" +image_repositories = []