circle-ci๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ์คํํ ๋ ์ต๊ทผ์ create_application_revision
๋ช
๋ น์ ์คํํ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Unhandled exception
ZIP does not support timestamps before 1980
๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ธฐ์กด ๋ฌธ์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ต๊ทผ์ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ์ง ์์์ต๋๋ค. ์ด๊ฒ์ ์ด์ ๋ถํฐ ๋ฐ์ํ๊ธฐ ์์ํ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋น๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ ์ฒ์์ด์์ต๋๋ค.
๋ค์ ๋ฒ์ ์ ์คํํ๊ณ ์์ต๋๋ค.
aws-cli/1.11.97 Python/2.7.6 Linux/3.13.0-48-generic botocore/1.5.60
๋๊ตฌ๋ ์ง ์ฐ๋ฆฌ๋ฅผ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฆฌํฌ ์ ์๋ค๋ฉด ํฌ๊ฒ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋์ผํ ์ค๋ฅ:
aws cloudformation package ...
Uploading to a5902e46b3516ee3f44caf6251079b5f 1846 / 1846.0 (100.00%)
Unable to upload artifact ./../async-handlers/donation-created-handler referenced by CodeUri parameter of DonationCreatedHandlerFunction resource.
ZIP does not support timestamps before 1980
1.11.79
๋ค์ด๊ทธ๋ ์ด๋ํ ํ์๋ (์ผ๋ง ์ ์ ์๋ํ๋) ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์์คํฌํ๊ฐ ์๋ชป๋ ํ์ผ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ๋ ํฐ ๋ฌธ์ ๋ฅผ ๋ํ๋ผ ์ ์์ผ๋ฏ๋ก ์์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. python ์์ฒด์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ CLI ๋ฒ์ ์ ๋ณ๊ฒฝํด๋ ์ด์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
์ค๋ create_application_revision ๋ช ๋ น ์ค์ CircleCI์ ๋๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
```create_application_revision /tmp/codedeploy_applications.json /tmp/codedeploy_revisions.json
create_application_revision ๋ก๋: {"applications":[{"region":"us-west-2","application_root":"/","revision_location":{"s3Location":{"bucket":"
๋ฒ๋ค๋ง
์ฒ๋ฆฌ๋์ง ์์ ์์ธ
ZIP์ 1980๋
์ด์ ์ ํ์์คํฌํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
((create_application_revision "/tmp/codedeploy_applications.json" "/tmp/codedeploy_revisions.json")) ๋ฐํ๋ ์ข
๋ฃ ์ฝ๋ 1
```
์ด์ ๋ํ CircleCI์ ์ง์ ํฌ๋ผ์๋ ๋ฒ๊ทธ ๋ณด๊ณ ์๊ฐ ์ด๋ ค ์์ต๋๋ค.
@JordonPhillips ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. CircleCi ๋ฌธ์ ์ ๋ํด ๋ค์ ๋ฌธ์ํด ์ฃผ์๋ ๋ถ์ด ์๋์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค. @arsenio - ์ง์ ์ฝ๋ ๋ฐฐํฌ๋ฅผ ํตํด ์๋์ผ๋ก ๋ฐฐํฌํ์ผ๋ฉฐ ์ด๋ ๋จ๊ธฐ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๊ทธ๋์ ์ ๋ฅผ ์ํด uglify-js
์์ฑ ๋ ์ง๊ฐ 1969๋
์ธ ํ์ผ์ ๋ฐ์์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์์ ์ถ๊ฐํ์ต๋๋ค.
find ./dist/ -type f -exec touch -t 201601011200 '{}' \;
์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ๋ ์ผ์ด๋๊ณ ์์ต๋๋ค. ์ผ์์ผ๋ถํฐ Shippable ๋น๋ ์๋ฒ์์ ๋ก์ปฌ๋ก rm -rf node_modules
eb deploy
Creating application version archive "app-bce1-170606_163952".
ERROR: ValueError :: ZIP does not support timestamps before 1980
nodejs ์ฑ, EB CLI 3.9.0(Python 2.7.1)์ ๋๋ค.
์ ๋ฐ์ดํธ: @mgibas๊ฐ ๋งํ ๊ฒ์ฒ๋ผ
@mgibas with save: ugllify-js
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํน์ (์ ๋ถ๋ ์๋) ํ์ผ์๋ 1969๊ฐ์ ํ์์คํฌํ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ์ผ์ ๋ง์ง๋ฉด ์ด ์ญ๊ฒจ์ด ์ฅ์ ๋ฌผ์ด ์ฌ๋ผ์ง๋๋ค.
์ค์ ๋ก Webpack ์ NPM ํจํค์ง์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฒ์๋ ๋ฌธ์ https://github.com/webpack/webpack/issues/5022
์, uglify๊ฐ ๊ฝค ์ผ๋ฐ์ ์ธ ์ข ์์ฑ์ธ ๊ฒ ๊ฐ์ต๋๋ค. :)
@sumothecat Webpack์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. webpack์ด ์ฌ์ฉํ๋ UglifyJS์ ๋ฌธ์ ์ ๋๋ค. ์ปค๋ฎค๋ํฐ๋ @mgibas์ ์ํด ๋งํฌ๋ ์ฌ๋ฐ๋ฅธ ์์น์์ ์๊ฐ๋ฝ์ ๊ฐ๋ฆฌ์ผ
@eric-tucker ์ฐ๋ฆฌ๋ Uglify๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง Webpack์ ๊ทธ๊ฒ์ ๋ํ ์์์ ์ข ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. Webpack์์ ๋ฌธ์ ๋ฅผ ๋ซ์๊ณ ์์ผ๋ก๋ yarn lock ํ์ผ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค!
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด๋ค ์๊ฐ์ด ์์ผ์ ๊ฐ์?
๋ด ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ jest
๋ฐ webpack
๋ชจ๋ uglify-js
์ ์์๋ ๋ฒ์ ์ ๊ฐ์ ธ์์ต๋๋ค.
์ด๋ฏธ npm-shrinkwrap
์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก npm-shrinkwrap.json
ํ์ผ์ ๋ค์ ํ์ ์ถ๊ฐํ์ต๋๋ค.
"uglify-js": {
"version": "2.8.27",
"from": "uglify-js@=2.8.27",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz"
},
์ผ์์ ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
mgibas ๋ต๋ณ์ ๋ณด๋ฉด yarn install ๋๋ npm install ํ ํ์ฌ ์ ์๊ฒ ํจ๊ณผ์ ์ด์๋ ์์ ์๋ฃจ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
find node_modules/uglify-js -print -exec touch {} \;
package.json
ํ์ผ์ ์ถ๊ฐํ ๋ณด๋ค ๊ฐ๋ ฅํ ํดํน:
{
"scripts": {
"install": "find ./node_modules/* -mtime +10950 -exec touch {} \\;"
}
}
์ด๋ ๊ฒ ํ๋ฉด ๊ฐ npm install
๋ช
๋ น ํ์ 30๋
์ด์ ๋ ๊ฐ ํ์ผ์ด touch
๋ฉ๋๋ค.
๋ํ aws-sdk
์ ์ข
์์ฑ์ธ ieee754
๋ชจ๋์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. ์ด ๋ฌธ์ ๊ฐ ๋ณด๊ณ ๋์์ต๋๋ค: https://github.com/feross/ieee754/issues/17
์ด๋ฒ์๋ @slack/client npm์ผ๋ก ์ธํด ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ผ๋ถ ํ์์คํฌํ๊ฐ ์์๋๋ ๋ฌธ์ ๋ ๋ถ๋ช ํ ์์ง๋ง ์ด CLI ๋๊ตฌ๊ฐ ์ ์ ๊ฒฝ์ ์จ์ผ ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์๋ชป๋ ํ์์คํฌํ์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด ๋ฌธ์ ๋ฅผ ์์ ํ ํผํ๊ธฐ ์ํด ์ง์๋ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค. ๋๋ ๋ชจ๋ ๊ฒ์ ์๋ํ์ง๋ง ๋ฉํฑ์ ๋ค์ ์์ํ๋ ๊ฒ๋ง์ด ํธ๋ฆญ์ด์์ต๋๋ค.
๋์ผํ ๋ฌธ์ ์ด๋ฉฐ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ต์ ๋ฒ์ ์ด ์์ผ๋ฏ๋ก uglify-js
๋ฌธ์ ๊ฐ ์๋๋๋ค.
์์์ ์ ์ํ๋๋ก ๋ฐฉ๊ธ ์คํํ์ต๋๋ค.
์ฐพ๊ธฐ ./node_modules/* -mtime +10950 -exec ํฐ์น {} \;
proj์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์ vscode ํฐ๋ฏธ๋์์ ์์ ํ์ต๋๋ค.
eb deploy
์คฌ์ด
ERROR: ValueError - ZIP does not support timestamps before 1980
find . -mtime +10950 -print -exec touch {} \;
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด๊ฒ์ ์ข ์์ฑ์ด ๋ค๋ฅธ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ๋ฐ๋ณต๋๋ ๋ฌธ์ ์์ต๋๋ค.
๋๋ ์ฌ์ ํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
nyc(istanbul)๋ฅผ dev ์ข ์์ฑ์ผ๋ก ์ถ๊ฐํ์ ๋๋ ์ด ๋ฌธ์ ๊ฐ ์์๋๋ฐ, ์ด ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ธ uglify-js๋ฅผ ์ถ๊ฐํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด PoV์์ Mac์ yarn
์ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Mac์์ npm
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค.
Ubuntu์์ yarn
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค.
uglify-js
๋ฐ ๊ธฐํ ์ฌ๋ฌ ์ข
์์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
AWS SAM์ hello-world๋ฅผ ํจํค์งํ์ฌ ๋ฐ๋ชจํ ์ ์์ต๋๋ค(https://github.com/awslabs/aws-sam-cli/tree/develop#package-and-deploy-to-lambda).
๊ทธ๋ ์ง ์์ผ๋ฉด https://github.com/aws/aws-cli/issues/2639#issuecomment -391255985 ํธ๋ฆญ์ ์๋ฒฝํ๊ฒ ์ํํฉ๋๋ค(๊ทธ๋ฌ๋ ๋ง์ ํ์ผ์์ ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์)
์ฐ๋ฆฌ๋ ๋ชจ๋ devDependencies
ํจํค์ง๋ฅผ ๊ฑด๋๋ฐ๋ yarn --production
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฌํ๊ฒ๋ ์ ๋ ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ํ๋ก๋์
์ ๋ช ๊ฐ์ง ํจํค์ง์ ์์กดํ๋ฏ๋ก yarn --production
๋ ๋์์ด ๋์ง ์์ต๋๋ค.
์ฆ, ๋งํ๋ค yarn --production
์์ ํ์ ์คํฌํ๋ฅผ ๊ณ ์ ํ๊ธฐ ์ ์ node_modules/
ํฌ๊ฒ ๋น๋ ์๊ฐ์ ์ค์ผ ์์ต๋๋ค.
Windows ๋ช ๋ น์ ๋ฌด์์ ๋๊น
์ฐพ๊ธฐ ./node_modules/* -mtime +10950 -exec ํฐ์น {} \;
๋ด ์ปดํจํฐ์์ ์คํํ ์ ์์ต๋๋ค
zipfile python library ์ strict_timestamps
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
eb deploy
์คฌ์ดfind . -mtime +10950 -print -exec touch {} \;
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.