Skip to content

Commit 14947fa

Browse files
authored
Merge pull request #26 from dhollerbach/feat/version-bump
feat/version-bump
2 parents 7085dc6 + 7e6db80 commit 14947fa

File tree

14,973 files changed

+33261
-2872203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

14,973 files changed

+33261
-2872203
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Integration Tests
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
8+
jobs:
9+
serverless-deploy:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
examples: [
15+
./examples/aws_credentials,
16+
./examples/serverless_access_key
17+
]
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Setup Node
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: 20
25+
26+
- name: Setup Python
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: 3.9
30+
31+
- name: Configure AWS Credentials
32+
uses: aws-actions/configure-aws-credentials@v4
33+
with:
34+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
35+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
36+
aws-region: us-east-1
37+
38+
- name: Serverless Deploy (AWS Credentials)
39+
if: ${{ matrix.examples == './examples/aws_credentials' }}
40+
uses: ./
41+
with:
42+
framework: 3.26.0
43+
working-directory: ${{ matrix.examples }}
44+
45+
- name: Serverless Deploy (Serverless Access Key)
46+
if: ${{ matrix.examples == './examples/serverless_access_key' }}
47+
uses: ./
48+
with:
49+
serverless-access-key: ${{ secrets.SERVERLESS_ACCESS_KEY }}
50+
working-directory: ${{ matrix.examples }}

README.md

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,70 @@
1-
# Serverless with Python Requirements
1+
# Serverless with Python Requirements
22

3-
Javascript action that runs a Serverless deploy using the serverless-python-requirements plugin.
3+
JavaScript GitHub Action that runs a Serverless deploy using the `serverless-python-requirements` plugin.
4+
It also supports optional plugins such as `serverless-domain-manager` and `serverless-plugin-canary-deployments`.
45

5-
## Environment Variables
6+
See [examples](./examples/) for multiple example configurations.
67

7-
### `aws-access-key-id`
8+
## Inputs
89

9-
**Conditional** Your aws access key id.
10+
| Name | Required | Description |
11+
|-----------------------------------------|--------------|--------------|
12+
| `aws-access-key-id` | **Conditional** | AWS Access Key ID. Required if using AWS credentials instead of Serverless Access Key. Serverless V4 requires a Serverless access key. |
13+
| `aws-secret-access-key` | **Conditional** | AWS Secret Access Key. Required if using AWS credentials instead of Serverless Access Key. Serverless V4 requires a Serverless access key. |
14+
| `framework` | **Optional** | The Serverless framework version to install. Defaults to latest. |
15+
| `serverless-access-key` | **Conditional** | Serverless access key. Required if not using AWS credentials. Serverless V4 requires a Serverless access key. |
16+
| `working-directory` | **Optional** | The working directory to run Serverless deploy in. Must contain the Serverless config file (e.g. serverless.yaml, serverless.yml). Defaults to the current directory. |
1017

11-
### `aws-secret-access-key`
18+
## Example Usage
1219

13-
**Conditional** Your aws secret access key.
14-
15-
### `serverless-access-key`
16-
17-
**Conditional** Your serverless access key.
18-
19-
## Example usage
20-
21-
#### AWS Credentials
20+
### AWS Credentials
21+
```yaml
22+
- name: Serverless Deploy
23+
uses: dhollerbach/actions.serverless-with-python-requirements@v3
24+
with:
25+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
26+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
2227
```
23-
- name: Setup Node
24-
uses: actions/setup-node@v3
28+
29+
### Serverless Access Key (required if using Serverless V4)
30+
```yaml
31+
- name: Serverless Deploy
32+
uses: dhollerbach/actions.serverless-with-python-requirements@v3
2533
with:
26-
node-version: 16
34+
serverless-access-key: ${{ secrets.SERVERLESS_ACCESS_KEY }}
35+
```
2736
28-
- name: Setup Python
29-
uses: actions/setup-python@v4
37+
### Separate AWS Credentials Step
38+
```yaml
39+
- name: Configure AWS Credentials
40+
uses: aws-actions/configure-aws-credentials@v4
3041
with:
31-
python-version: 3.8
42+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
43+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
44+
aws-region: us-east-1
3245

3346
- name: Serverless Deploy
34-
uses: dhollerbach/actions.serverless-with-python-requirements@v2
35-
env:
36-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
37-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
38-
STAGE: dev
39-
```
40-
#### Serverless Access Key
41-
```
42-
- name: Setup Node
43-
uses: actions/setup-node@v3
47+
uses: dhollerbach/actions.serverless-with-python-requirements@v3
4448
with:
45-
node-version: 16
49+
serverless-access-key: ${{ secrets.SERVERLESS_ACCESS_KEY }}
50+
```
4651
47-
- name: Setup Python
48-
uses: actions/setup-python@v4
52+
### Directory Other Than Root
53+
```yaml
54+
- name: Serverless Deploy
55+
uses: dhollerbach/actions.serverless-with-python-requirements@v3
4956
with:
50-
python-version: 3.8
57+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
58+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
59+
working-directory: ./examples/
60+
```
5161
62+
### Specific Serverless Framework
63+
```yaml
5264
- name: Serverless Deploy
53-
uses: dhollerbach/actions.serverless-with-python-requirements@v2
54-
env:
55-
SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
56-
STAGE: dev
65+
uses: dhollerbach/actions.serverless-with-python-requirements@v3
66+
with:
67+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
68+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
69+
framework: 3.26.0
5770
```

action.yml

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
1-
name: 'Serverless with Python Requirements'
2-
description: 'Javascript action that runs a Serverless deploy using the serverless-python-requirements plugin.'
1+
name: Serverless with Python Requirements
2+
description: JavaScript action that runs a Serverless deploy using the serverless-python-requirements plugin.
33

44
runs:
5-
using: 'node16'
6-
main: 'index.js'
5+
using: node20
6+
main: index.js
77

88
branding:
9-
icon: 'fast-forward'
10-
color: 'red'
9+
icon: fast-forward
10+
color: red
11+
12+
inputs:
13+
aws-access-key-id:
14+
description: AWS Access Key ID. Required if using AWS credentials instead of Serverless Access Key. Serverless V4 requires a serverless access key.
15+
required: false
16+
default: ''
17+
18+
aws-secret-access-key:
19+
description: AWS Secret Access Key. Required if using AWS credentials instead of Serverless Access Key. Serverless V4 requires a serverless access key.
20+
required: false
21+
default: ''
22+
23+
framework:
24+
description: The Serverless framework version to install.
25+
required: false
26+
27+
serverless-access-key:
28+
description: Serverless access key. Required if not using AWS credentials. Serverless V4 requires a serverless access key.
29+
required: false
30+
default: ''
31+
32+
working-directory:
33+
description: The working directory to run Serverless deploy in. Must contain the Serverless config file (e.g. serverless.yaml, serverless.yml).
34+
required: false
35+
default: '.'

examples/.github/workflows/serverless.yaml

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
service: aws-credentials
2+
3+
frameworkVersion: '3'
4+
5+
provider:
6+
name: aws
7+
runtime: python3.9
8+
stage: dev
9+
10+
functions:
11+
hello:
12+
handler: handler.hello
13+
14+
plugins:
15+
- serverless-plugin-canary-deployments
16+
- serverless-python-requirements

examples/serverless.yml

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import json
2+
import boto3
3+
4+
5+
def hello(event, context):
6+
body = {
7+
"message": "Go Serverless v1.0! Your function executed successfully!",
8+
"input": event
9+
}
10+
11+
response = {
12+
"statusCode": 200,
13+
"body": json.dumps(body)
14+
}
15+
16+
return response
17+
18+
# Use this code if you don't use the http event with the LAMBDA-PROXY
19+
# integration
20+
"""
21+
return {
22+
"message": "Go Serverless v1.0! Your function executed successfully!",
23+
"event": event
24+
}
25+
"""
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
boto3

0 commit comments

Comments
 (0)