ci: base (#2)
* ci: base * ci: missing bit * ci: pyenv via action * ci: typos * ci: deps * ci: typo * ci: temp rm black * ci: py ver * ci: use builtin py * ci: typo * ci: setuptools * ci: without subshell * chore: normalize titles * chore: lint * ci: validate and lint flows * ci: job name * ci: pipx as module * ci: missing dep * ci: missing dep * ci: pipx module * docs: add badge
This commit is contained in:
parent
d2a6cfe378
commit
f27200b29c
5 changed files with 29 additions and 6 deletions
22
.github/workflows/base.yml
vendored
Normal file
22
.github/workflows/base.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Lambda Boilerplate
|
||||
|
||||
on: [push]
|
||||
jobs:
|
||||
lint-and-validate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt install python3-venv
|
||||
python3 -m pip install --upgrade pip setuptools wheel pipx
|
||||
- name: Validate templates
|
||||
run: |
|
||||
cd infrastructure
|
||||
python3 -m pipx run sceptre validate app/app.yaml
|
||||
python3 -m pipx run sceptre validate bootstrap/bootstrap.yaml
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }}
|
||||
- name: Lint
|
||||
run: python3 -m pipx run black . --check
|
|
@ -1,6 +1,8 @@
|
|||
# lambda-boilerplate
|
||||
🛠 Skip the boilerplate and start building fun λ things 🛠
|
||||
|
||||
![Lambda Boilerplate](https://github.com/mcataford/lambda-boilerplate/workflows/Lambda%20Boilerplate/badge.svg)
|
||||
|
||||
## Overview
|
||||
|
||||
AWS Lambdas are fun, but often the amount of boilerplate involved in getting a project off the ground hinders the fun. From setting up a local environment to writing out a Cloudformation template, the overhead of Lambda-based greenfield projects can be daunting. No more. Just use this repository as a template or clone it and jump straight into the action! This repository offers a quick template your can use, full with a Docker setup for local development and invocation commands that you can use to package and deploy small Lambdas.
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
appdirs==1.4.4
|
||||
attrs==20.1.0
|
||||
awscli==1.18.124
|
||||
black==19.10b0
|
||||
boto3==1.14.55
|
||||
botocore==1.17.55
|
||||
click==7.1.2
|
||||
|
@ -22,7 +20,6 @@ PyYAML==5.3.1
|
|||
regex==2020.7.14
|
||||
rsa==4.5
|
||||
s3transfer==0.3.3
|
||||
sceptre==2.3.0
|
||||
six==1.15.0
|
||||
toml==0.10.1
|
||||
typed-ast==1.4.1
|
|
@ -10,6 +10,6 @@ VENV=lambda-boilerplate.venv
|
|||
pyenv virtualenv $VENV &&
|
||||
pyenv activate $VENV &&
|
||||
python -m pip install -U pip &&
|
||||
pip install -r dev_requirements.txt &&
|
||||
pip install -r requirements_dev.txt &&
|
||||
echo "✨ Good to go! ✨"
|
||||
}
|
||||
|
|
6
tasks.py
6
tasks.py
|
@ -14,13 +14,13 @@ def teardown_app(ctx):
|
|||
with ctx.cd("infrastructure"):
|
||||
ctx.run("sceptre delete app/app.yaml -y")
|
||||
|
||||
|
||||
@task(name="teardown-bootstrap")
|
||||
def teardown_bootstrap(ctx):
|
||||
with ctx.cd("infrastructure"):
|
||||
ctx.run("sceptre delete bootstrap/bootstrap.yaml -y")
|
||||
|
||||
|
||||
|
||||
@task(name="deploy")
|
||||
def stack_deploy(ctx):
|
||||
path = Path(__file__).parent
|
||||
|
@ -33,7 +33,9 @@ def stack_deploy(ctx):
|
|||
new_archive_name = f"lambda_function_{srchash}.zip"
|
||||
ctx.run(f"mv lambda_function.zip {new_archive_name}")
|
||||
|
||||
ctx.run(f"aws s3 cp {new_archive_name} s3://mcat-dev-test-bucket-artifacts-2 && rm {new_archive_name}")
|
||||
ctx.run(
|
||||
f"aws s3 cp {new_archive_name} s3://mcat-dev-test-bucket-artifacts-2 && rm {new_archive_name}"
|
||||
)
|
||||
|
||||
with ctx.cd("infrastructure"):
|
||||
ctx.run(f"sceptre --var source_key={new_archive_name} launch app/app.yaml -y")
|
||||
|
|
Reference in a new issue