如何修复 CI/CD 上的 SSH Webpack 构建超时 (Gitlab)

2024-04-22

我已经创建了与 Gitlab 的 CI/CD 集成,并且在运行 CI/CD 时一直拖延 webpack 和资产的最终编译。

这是针对 Linux 16.04 t2.small AWS 实例的,我很好奇这是否是内存/处理器问题,尽管如果我通过 SSH 连接到服务器并直接运行 cmd,它似乎可以正常编译。

部署.sh

#!/bin/bash
set -e

echo "Deploying to $DEPLOY_SERVER"

# Once inside the server, run updateAndRestart.sh
ssh -tt -o "StrictHostKeyChecking no" ubuntu@$DEPLOY_SERVER 'bash' < ./config/updateAndRestart.sh

更新并重启.sh

#!/bin/bash
set -e

# Delete the old repo
rm -rf /home/ubuntu/deploy/application/client

# clone the repo fresh
git clone [email protected] /cdn-cgi/l/email-protection:repo/repo.git /home/ubuntu/deploy/application/client

# enter the new repo
cd /home/ubuntu/deploy/application/client

# install npm packages
echo "Running npm install"
npm install

# let resources recover
sleep 10s

echo "Running npm run build"
# build the new package
node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --env=production

我添加了 sleep 方法,认为可能存在一些问题npm install囤积资源、行动过快,但这并没有解决问题。它很好地完成了最后一步,然后超时:

ubuntu@host:~/deploy/application/client$ node --max_old_spa
<-157:~/deploy/application/client$ node --max_old_spac                         e_size=4096 ./node_module

<ient$ node --max_old_space_size=4096 ./node_modules                         /webpack/bin/webpack.js -

<_size=4096 ./node_modules/webpack/bin/webpack.js --                         env=productionPulling docker image gitlab/gitlab-runner-helper:x86_64-10efa505 ...
ERROR: Job failed: execution took longer than 10m0s seconds

不完全确定 gitlab-runner-helper 是否会重新启动,但这就是超时时发生的情况。

通常在运行 build cmd 时,node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --env=production,它会提示更多详细信息,例如

Building in:  production
clean-webpack-plugin: /home/ubuntu/deploy/application/client/public/*.js has been removed.
ℹ 「atl」: Using [email protected] /cdn-cgi/l/email-protection from typescript
ℹ 「atl」: Using tsconfig.json from /home/ubuntu/deploy/application/client/tsconfig.json
ℹ 「atl」: Checking started in a separate process...
ℹ 「atl」: Time: 1319ms

从 SSH 部署运行时我从未看到过。除了升级 ec2 大小之外,我还能做些什么吗?为什么直接通过 SSH 就可以正常工作,但从 Gitlab 的 CI/CD 执行此操作时会出现问题?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 CI/CD 上的 SSH Webpack 构建超时 (Gitlab) 的相关文章

随机推荐