From fdbc472fc376cefc4c9978109ba4cbe3c3ebea48 Mon Sep 17 00:00:00 2001 From: Wes Date: Fri, 25 Jun 2021 13:59:53 -0400 Subject: [PATCH 01/11] build step --- .github/workflows/action.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/action.yaml diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml new file mode 100644 index 000000000..86a70b718 --- /dev/null +++ b/.github/workflows/action.yaml @@ -0,0 +1,32 @@ +name: Deploy my Lambda Function + +# trigger on all push events to main branch +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install libraries + run: | + cd function + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt -t .; fi + - name: Create zip bundle + run: | + cd function + zip -r ../${{ github.sha }}.zip . + - name: Archive artifact + uses: actions/upload-artifact@v2 + with: + name: zipped-bundle + path: ${{ github.sha }}.zip \ No newline at end of file From cdfc301ef990ecee9df5d4f8a863e6302892de72 Mon Sep 17 00:00:00 2001 From: Wes Date: Fri, 25 Jun 2021 14:01:59 -0400 Subject: [PATCH 02/11] build step --- .github/workflows/action.yaml | 44 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index 86a70b718..41d8da41d 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -8,25 +8,25 @@ on: jobs: build: - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: 3.8 - - name: Install libraries - run: | - cd function - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt -t .; fi - - name: Create zip bundle - run: | - cd function - zip -r ../${{ github.sha }}.zip . - - name: Archive artifact - uses: actions/upload-artifact@v2 - with: - name: zipped-bundle - path: ${{ github.sha }}.zip \ No newline at end of file + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install libraries + run: | + cd function + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt -t .; fi + - name: Create zip bundle + run: | + cd function + zip -r ../${{ github.sha }}.zip . + - name: Archive artifact + uses: actions/upload-artifact@v2 + with: + name: zipped-bundle + path: ${{ github.sha }}.zip \ No newline at end of file From 5720e45f438b43bff0dec81f963f2269b2f8b033 Mon Sep 17 00:00:00 2001 From: Wes Date: Fri, 25 Jun 2021 15:05:46 -0400 Subject: [PATCH 03/11] upload job --- .github/workflows/action.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index 41d8da41d..9d99ffc31 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -7,6 +7,7 @@ on: - main jobs: + build: runs-on: ubuntu-latest steps: @@ -29,4 +30,23 @@ jobs: uses: actions/upload-artifact@v2 with: name: zipped-bundle - path: ${{ github.sha }}.zip \ No newline at end of file + path: ${{ github.sha }}.zip + + upload: + runs-on: ubuntu-latest + needs: build + steps: + - name: Download artifact + uses: actions/download-artifact@v2 + with: + name: zipped-bundle + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + - name: Upload to S3 + run: aws s3 cp ${{ github.sha }}.zip s3:///${{ github.repository }}/${{ github.sha }}.zip + + \ No newline at end of file From 262c5171a39206ee4afb567e551bc6ea015ffce0 Mon Sep 17 00:00:00 2001 From: Wes Date: Fri, 25 Jun 2021 15:25:05 -0400 Subject: [PATCH 04/11] deploy job --- .github/workflows/action.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index 9d99ffc31..f70aa47fd 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -49,4 +49,22 @@ jobs: - name: Upload to S3 run: aws s3 cp ${{ github.sha }}.zip s3:///${{ github.repository }}/${{ github.sha }}.zip - \ No newline at end of file + deploy: + runs-on: ubuntu-latest + needs: upload + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + - name: Update function code + run: | + aws lambda update-function-code \ + --function-name \ + --s3-bucket \ + --s3-key ${{ github.repository }}/${{ github.sha }}.zip \ + --publish + + \ No newline at end of file From 64d3f190ecc2efc91afb6aaaccb9a9ffab02a7b3 Mon Sep 17 00:00:00 2001 From: Wes Date: Thu, 5 Aug 2021 16:52:56 -0400 Subject: [PATCH 05/11] adde lint job --- .github/workflows/action.yaml | 21 +++++++++++++++++++++ function/lambda_function.py | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index f70aa47fd..92bd8849c 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -8,8 +8,29 @@ on: jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install linting libraries + run: | + cd function + pip install flake8 + - name: Lint with flake8 + run: | + # Select identifies which errors should cause the job to fail + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # The exit zero flag will show errors as warnings and not fail the run + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + build: runs-on: ubuntu-latest + needs: lint steps: - name: Check out code uses: actions/checkout@v2 diff --git a/function/lambda_function.py b/function/lambda_function.py index 2809ce09b..96a4f6afa 100644 --- a/function/lambda_function.py +++ b/function/lambda_function.py @@ -8,7 +8,7 @@ def lambda_handler(event, context): Returns: string: greeting response """ - print('Starting functions\n---------------------------------------------' + print('Starting functions\n---------------------------------------------') if event["input"] == "Hello": From c751435520afb7362c66f94b219116acd759df44 Mon Sep 17 00:00:00 2001 From: Wes Date: Mon, 9 Aug 2021 19:57:22 -0400 Subject: [PATCH 06/11] add nonprod test fn --- .github/workflows/action.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index 92bd8849c..40b1ffbc3 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -70,6 +70,29 @@ jobs: - name: Upload to S3 run: aws s3 cp ${{ github.sha }}.zip s3:///${{ github.repository }}/${{ github.sha }}.zip + nonprod: + runs-on: ubuntu-latest + needs: upload + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + - name: Create test function + run: | + aws lambda create-function --function-name test-function \ + --code S3Bucket=,S3Key=${{ github.repository }}/${{ github.sha }}.zip \ + --handler lambda_function.lambda_handler --runtime python3.8 \ + --role arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-role/ + - name: Wait 30 seconds + run: sleep 30 + - name: Destroy test function + if: ${{ always() }} + run: | + aws lambda delete-function --function-name test-function + deploy: runs-on: ubuntu-latest needs: upload From 549616f2f9e854e21d4f82af86bce3af95b6d50e Mon Sep 17 00:00:00 2001 From: Wes Date: Mon, 9 Aug 2021 20:06:19 -0400 Subject: [PATCH 07/11] add test fn invocations --- .github/workflows/action.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index 40b1ffbc3..d7f57f079 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -73,6 +73,9 @@ jobs: nonprod: runs-on: ubuntu-latest needs: upload + strategy: + matrix: + input: ["Hello", "Hi"] steps: - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 @@ -82,16 +85,22 @@ jobs: aws-region: us-east-1 - name: Create test function run: | - aws lambda create-function --function-name test-function \ + aws lambda create-function --function-name test-function-${{ matrix.input }} \ --code S3Bucket=,S3Key=${{ github.repository }}/${{ github.sha }}.zip \ --handler lambda_function.lambda_handler --runtime python3.8 \ --role arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-role/ - - name: Wait 30 seconds - run: sleep 30 + - name: Invoke test function + run: | + aws lambda invoke --function-name test-function-${{ matrix.input }} \ + --payload $(echo "{\"input\": \"${{ matrix.input }}\"}" | base64) \ + -- output json out + if grep -q "Error" out; then + exit1 + fi - name: Destroy test function if: ${{ always() }} run: | - aws lambda delete-function --function-name test-function + aws lambda delete-function --function-name test-function-${{ matrix.input }} deploy: runs-on: ubuntu-latest From e4e7ec9a8bf5d5476bdcbd4ea5fc08829b79ffd1 Mon Sep 17 00:00:00 2001 From: Wes Date: Mon, 9 Aug 2021 20:08:11 -0400 Subject: [PATCH 08/11] update fn --- function/lambda_function.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/function/lambda_function.py b/function/lambda_function.py index 96a4f6afa..d0b247f79 100644 --- a/function/lambda_function.py +++ b/function/lambda_function.py @@ -14,6 +14,10 @@ def lambda_handler(event, context): return "World" + if event["input"] == "Hi": + + return "Hi There" + else: raise \ No newline at end of file From 2e64119759262c087f70021b0fa7e39ac570f13f Mon Sep 17 00:00:00 2001 From: Wes Date: Mon, 9 Aug 2021 20:28:00 -0400 Subject: [PATCH 09/11] add mkdocs files --- .github/workflows/action.yaml | 12 +++++++++++- docs/about.md | 17 +++++++++++++++++ docs/index.md | 21 +++++++++++++++++++++ mkdocs.yaml | 5 +++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 docs/about.md create mode 100644 docs/index.md create mode 100644 mkdocs.yaml diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index d7f57f079..e1ec4df04 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -120,4 +120,14 @@ jobs: --s3-key ${{ github.repository }}/${{ github.sha }}.zip \ --publish - \ No newline at end of file + docs: + runs-on: ubuntu-latest + needs: deploy + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Deploy docs + uses: mhausenblas/mkdocs-deploy-gh-pages@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CONFIG_FILE: mkdocs.yaml \ No newline at end of file diff --git a/docs/about.md b/docs/about.md new file mode 100644 index 000000000..72bd5a7b4 --- /dev/null +++ b/docs/about.md @@ -0,0 +1,17 @@ +# About Us + +## Consectetur adipiscing elit + +Praesent at augue ornare, posuere neque nec, pharetra velit. Etiam placerat nulla et nisl tincidunt commodo. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec cursus, nibh ac porttitor mollis, purus erat tempor sapien, in commodo quam nisl ac metus. Morbi maximus elit ac hendrerit accumsan. Sed vestibulum diam ligula, non scelerisque nunc eleifend ut. Nulla vel libero leo. Vestibulum eleifend ultrices eros a imperdiet. Quisque fermentum eros a dolor tincidunt, at ullamcorper augue ullamcorper. Suspendisse quis odio felis. Phasellus viverra tellus quis ex tempor, in convallis est efficitur. Suspendisse dolor risus, vestibulum sed erat et, sodales scelerisque quam. Pellentesque maximus, lacus in lacinia gravida, nibh augue lacinia lorem, et placerat ipsum enim euismod dolor. Nam ut metus ut arcu tincidunt luctus efficitur id justo. + +Cras ipsum justo, tincidunt nec ultrices id, lobortis et arcu. Fusce tristique lobortis tortor sed dictum. Quisque maximus sagittis augue quis aliquam. Maecenas congue felis viverra nisi dictum commodo. Praesent nec libero at ligula mattis lobortis nec non ligula. Donec sollicitudin auctor odio et fringilla. Suspendisse semper odio id turpis tristique dapibus. + +## Integer malesuada malesuada + +Posuere Morbi mollis lectus vitae mi interdum, sed porttitor justo ultricies. Donec facilisis nunc lacus, quis convallis neque facilisis ullamcorper. Maecenas ligula metus, fermentum vel vehicula id, commodo mollis quam. Duis ac libero at tortor vestibulum lacinia. Cras congue lectus nec metus aliquam ornare. Suspendisse metus leo, egestas et pulvinar id, tempus eget massa. + +Donec ac eros urna. Praesent ac justo a eros convallis venenatis eget quis lorem. Vestibulum posuere ligula sed pellentesque rhoncus. Donec fringilla, quam eget efficitur accumsan, felis lacus ullamcorper magna, eu pretium nibh urna sed urna. In varius sodales nibh, quis malesuada mauris convallis sed. Nunc porta ligula a vehicula faucibus. Etiam sed vehicula nisl, nec convallis nibh. Morbi rhoncus dui ipsum, at dictum mi condimentum in. Nullam placerat dignissim augue ut ultricies. Nulla ultrices dui turpis, ut ornare nibh pretium sit amet. Aliquam dictum, arcu ac rutrum consectetur, velit eros pharetra metus, a fringilla eros ligula sit amet ipsum. Sed nec magna ut diam feugiat accumsan at ut nisl. Phasellus tellus enim, porta vitae luctus sed, tincidunt ullamcorper nulla. Nunc rutrum eros a venenatis ultrices. Nullam aliquet tincidunt libero a maximus. + +## Duis ac metus + +Ac nisl consequat pharetra. Nunc bibendum placerat suscipit. Phasellus non scelerisque magna. Cras blandit odio eu ligula consectetur, eu volutpat leo suscipit. Curabitur pretium ipsum in consectetur sodales. Aenean nulla dolor, dictum nec viverra sit amet, mattis vitae orci. Sed pretium nisi quis molestie tristique. Proin mattis ut purus at aliquet. Nunc ipsum urna, pellentesque eu enim sed, vehicula vehicula neque. Ut posuere rhoncus quam quis rutrum. Nunc tincidunt tellus ligula, ut feugiat ligula feugiat nec. Suspendisse ipsum dolor, hendrerit eget pharetra placerat, accumsan eget ex. Maecenas sed posuere arcu. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..5744f7687 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,21 @@ +# Welcome to the Microservice Docs + +## nav: + - Home: [index.md](./docs/index.md) + - About: [about.md](./docs/about.md) + +## Lorem ipsum dolor + +Sit amet, consectetur adipiscing elit. Aenean et nunc a lectus dictum luctus. In eu ipsum sollicitudin, mollis massa quis, gravida urna. Praesent vitae malesuada est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean sagittis vestibulum metus vel efficitur. Fusce pulvinar, quam sed eleifend finibus, lorem risus lobortis felis, quis finibus enim ligula ac libero. Proin imperdiet odio dolor, quis mattis arcu commodo sit amet. Aliquam dignissim, turpis eget lacinia dignissim, elit lectus imperdiet urna, sed congue enim purus ac odio. Etiam dignissim sapien in justo laoreet, at euismod metus consequat. Nulla in sapien a leo aliquam vestibulum quis vel libero. Nam viverra dignissim sem vitae imperdiet. Nulla facilisi. Donec nec magna vel tortor suscipit sodales. Vestibulum pharetra, magna eu consequat porttitor, odio dui dictum odio, eget sollicitudin velit leo condimentum lorem. Duis sodales, est sit amet tempus volutpat, sapien dolor rutrum sapien, at mattis augue lorem sit amet velit. Maecenas vitae lacus vehicula, bibendum tortor quis, imperdiet risus. + +## Nunc rhoncus lectus + +ac urna interdum, vitae suscipit enim congue. Cras sagittis semper eleifend. Duis ut gravida neque. Donec rhoncus magna a metus dignissim, scelerisque cursus elit varius. Nullam sit amet tortor enim. Etiam finibus purus id accumsan finibus. Vestibulum venenatis neque et ligula tempor pharetra. Vestibulum molestie tellus et mi feugiat tempor. Donec vestibulum sapien eu facilisis commodo. Donec mollis consectetur rutrum. Morbi in semper nisl, in convallis ex. + +Aenean magna risus, aliquet vel ex nec, imperdiet sodales tellus. Mauris a pretium sem. Quisque lectus massa, vulputate id consequat et, scelerisque vitae diam. Sed erat neque, gravida et quam eget, sagittis pulvinar nisl. Praesent pulvinar hendrerit ante sed commodo. Morbi ut ipsum placerat, placerat nunc non, fringilla lacus. Integer dapibus facilisis mi, sodales facilisis purus rhoncus sit amet. + +## Praesent ut mi ut + +lorem finibus dignissim vel non massa. Nulla facilisi. Aliquam a dolor sit amet enim tristique condimentum ut eu turpis. Curabitur aliquam aliquet massa ut dignissim. Sed convallis at mi sit amet eleifend. Nullam ac est nisl. Morbi gravida purus non eleifend porttitor. Nulla viverra nunc ut orci porttitor imperdiet. Curabitur placerat sit amet odio congue tempor. + +Fusce sodales ipsum in volutpat sollicitudin. Nam leo odio, molestie vel elementum vel, feugiat id neque. Ut et nibh nulla. Proin luctus arcu sed massa tempor, vitae commodo nibh lacinia. Vivamus vel feugiat odio, eu tristique lacus. Aliquam in sapien scelerisque arcu blandit cursus eget at massa. Aenean mattis urna mi, in tempus libero gravida at. Vestibulum imperdiet sit amet ex ac pharetra. Nulla congue odio libero, quis cursus libero interdum at. Donec posuere tellus ut nibh ultricies, rutrum lobortis augue vehicula. Vestibulum fringilla iaculis ante, vitae finibus leo tincidunt in. Nam eget nulla quis nulla lobortis accumsan in quis dolor. \ No newline at end of file diff --git a/mkdocs.yaml b/mkdocs.yaml new file mode 100644 index 000000000..c646d23ba --- /dev/null +++ b/mkdocs.yaml @@ -0,0 +1,5 @@ +site_name: My Docs +nav: + - Home: index.md + - About: about.md +theme: readthedocs \ No newline at end of file From e806d0283067baac3bab54dc8a842186114b4d47 Mon Sep 17 00:00:00 2001 From: Wes Date: Mon, 9 Aug 2021 21:33:00 -0400 Subject: [PATCH 10/11] update requirements file --- function/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/function/requirements.txt b/function/requirements.txt index 65a457e70..569d20bbe 100644 --- a/function/requirements.txt +++ b/function/requirements.txt @@ -1,2 +1,2 @@ -Github==1.55 +PyGithub==1.55 boto3==1.17.96 \ No newline at end of file From 6d4c4e2b5974ad9e49c03111811d32c490fcd8aa Mon Sep 17 00:00:00 2001 From: Wes Date: Thu, 2 Sep 2021 16:38:12 -0400 Subject: [PATCH 11/11] updated role name --- .github/workflows/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index e1ec4df04..51114f570 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -88,12 +88,12 @@ jobs: aws lambda create-function --function-name test-function-${{ matrix.input }} \ --code S3Bucket=,S3Key=${{ github.repository }}/${{ github.sha }}.zip \ --handler lambda_function.lambda_handler --runtime python3.8 \ - --role arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-role/ + --role arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/ - name: Invoke test function run: | aws lambda invoke --function-name test-function-${{ matrix.input }} \ --payload $(echo "{\"input\": \"${{ matrix.input }}\"}" | base64) \ - -- output json out + --output json out if grep -q "Error" out; then exit1 fi