| 135 | ) |
| 136 | |
| 137 | def _push(self, params): |
| 138 | with self._compress( |
| 139 | params.source, params.ignore_hidden_files |
| 140 | ) as bundle: |
| 141 | try: |
| 142 | upload_response = self._upload_to_s3(params, bundle) |
| 143 | params.eTag = upload_response['ETag'].replace('"', "") |
| 144 | if 'VersionId' in upload_response: |
| 145 | params.version = upload_response['VersionId'] |
| 146 | except Exception as e: |
| 147 | raise RuntimeError( |
| 148 | 'Failed to upload \'%s\' to \'%s\': %s' |
| 149 | % (params.source, params.s3_location, str(e)) |
| 150 | ) |
| 151 | self._register_revision(params) |
| 152 | |
| 153 | if 'version' in params: |
| 154 | version_string = f',version={params.version}' |
| 155 | else: |
| 156 | version_string = '' |
| 157 | s3location_string = ( |
| 158 | f'--s3-location bucket={params.bucket},key={params.key},' |
| 159 | f'bundleType=zip,eTag={params.eTag}{version_string}' |
| 160 | ) |
| 161 | sys.stdout.write( |
| 162 | 'To deploy with this revision, run:\n' |
| 163 | 'aws deploy create-deployment ' |
| 164 | f'--application-name {params.application_name} {s3location_string} ' |
| 165 | '--deployment-group-name <deployment-group-name> ' |
| 166 | '--deployment-config-name <deployment-config-name> ' |
| 167 | '--description <description>\n' |
| 168 | ) |
| 169 | |
| 170 | @contextlib.contextmanager |
| 171 | def _compress(self, source, ignore_hidden_files=False): |