Skip to content

Commit a7a7cd9

Browse files
committed
Added the ability to ignore files while packaging
1 parent 728fc76 commit a7a7cd9

File tree

7 files changed

+23
-9
lines changed

7 files changed

+23
-9
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Example lambda.json file:
2929
"handler": "function.lambda_handler",
3030
"role": "arn:aws:iam::00000000000:role/lambda_basic_execution",
3131
"requirements": ["pygithub"],
32+
"ignore": ["circle.yml"],
3233
"timeout": 30,
3334
"memory": 512
3435
}

README.rst

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ Example lambda.json file:
4242
"handler": "function.lambda_handler",
4343
"role": "arn:aws:iam::00000000000:role/lambda_basic_execution",
4444
"requirements": ["pygithub"],
45+
"ignore": ["circle.yml"],
4546
"timeout": 30,
4647
"memory": 512
4748
}

example/circle.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
machine:
2+
python:
3+
version: 2.7
4+
5+
test:
6+
override:
7+
- flake8 .

example/lambda.json

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"handler": "function.lambda_handler",
66
"role": "arn:aws:iam::00000000000:role/lambda_basic_execution",
77
"requirements": ["Jinja2==2.8"],
8+
"ignore": ["circle.yml"],
89
"timeout": 30,
910
"memory": 512
1011
}

lambda_uploader/config.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515
import json
1616
from os import path
1717

18-
REQUIRED_PARAMS = {'name': basestring, 'description': basestring,
19-
'region': basestring, 'handler': basestring,
20-
'role': basestring, 'timeout': int, 'memory': int}
18+
REQUIRED_PARAMS = {u'name': basestring, u'description': basestring,
19+
u'region': basestring, u'handler': basestring,
20+
u'role': basestring, u'timeout': int, u'memory': int}
2121

2222
DEFAULT_PARAMS = {u'requirements': [], u'publish': False,
23-
u'alias': None, u'alias_description': None}
23+
u'alias': None, u'alias_description': None,
24+
u'ignore': []}
2425

2526

2627
class Config(object):

lambda_uploader/package.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
ZIPFILE_NAME = 'lambda_function.zip'
2727

2828

29-
def build_package(path, requirements, virtualenv=None):
29+
def build_package(path, requirements, virtualenv=None, ignore=[]):
3030
pkg = Package(path, virtualenv)
3131

3232
pkg.clean_workspace()
@@ -40,7 +40,7 @@ def build_package(path, requirements, virtualenv=None):
4040
LOG.info('Building new virtualenv and installing requirements')
4141
pkg.prepare_virtualenv()
4242
pkg.install_requirements(requirements)
43-
pkg.package()
43+
pkg.package(ignore)
4444
return pkg
4545

4646

@@ -103,7 +103,7 @@ def install_requirements(self, requirements):
103103
if prc.returncode is not 0:
104104
raise Exception('pip returned unsuccessfully')
105105

106-
def package(self):
106+
def package(self, ignore=[]):
107107
package = os.path.join(self._temp_workspace, 'lambda_package')
108108

109109
# Copy site packages into package base
@@ -122,7 +122,9 @@ def package(self):
122122
LOG.info('Copying lib64 site packages')
123123
utils.copy_tree(lib64_path, package)
124124

125-
utils.copy_tree(self._path, package, ignore=[TEMP_WORKSPACE_NAME])
125+
# Append the temp workspace to the ignore list
126+
ignore.append("^%s/*" % self._temp_workspace)
127+
utils.copy_tree(self._path, package, ignore)
126128
self._create_zip(package)
127129

128130
def _create_zip(self, src):

lambda_uploader/shell.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ def _execute(args):
5050
cfg = config.Config(pth, args.config, role=args.role)
5151

5252
_print('Building Package')
53-
pkg = package.build_package(pth, cfg.requirements, args.virtualenv)
53+
pkg = package.build_package(pth, cfg.requirements,
54+
args.virtualenv, cfg.ignore)
5455

5556
if not args.no_clean:
5657
pkg.clean_workspace()

0 commit comments

Comments
 (0)