安装ng工程后Bash脚本不执行



我有一个问题,我正在努力。

我正在写一个.sh脚本,它将在我们的CI管道中执行,以测试一些安装脚本是否仍然工作。

我特别纠结的命令是:

bash <(curl -s https://myhost/path/to/installation/angular.sh)

从Stackoverflow上的其他帖子中,我了解到有不同的方式来cURL和执行.sh脚本。我都试过了。

在我的情况下,它总是要么…

  1. 执行完ng new命令后脚本停止
  2. 或者安装成功,但脚本中没有执行以下命令。

对于上下文,下面是脚本:

#!/usr/bin/env bash
set -e # exit on errors
BASE_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
source $BASE_DIR/bashHelpers.sh
ANGULAR_EXAMPLE_FOLDER="angularTest"
#Run Angular Tests
bash -c "$(curl -s https://myhost/path/to/installation/angular.sh)"
#I've also tried:
#curl -s https://myhost/path/to/installation/angular.sh | bash -s -- $ANGULAR_EXAMPLE_FOLDER
# OR
#curl -s https://myhost/path/to/installation/angular.sh | bash -s -- $ANGULAR_EXAMPLE_FOLDER > yes  
(   
BASE_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
source $BASE_DIR/bashHelpers.sh
cypress run --env configFile=setuptest --browser chrome -c video=false &&
killWebserver 4200
rm -rf $ANGULAR_EXAMPLE_FOLDER 
) 

我的脚本中的过程非常简单:

  1. cURL并执行安装脚本
  2. 运行已安装的项目
  3. 运行柏树测试
  4. 如果cypress成功,停止服务器
  5. 删除项目
  6. 执行下一个脚本

如果你能帮助我,我将非常感激,因为这个相关的话题对我没有任何帮助。

能够解决这个问题,并使脚本更适应参数:

#Run acutal test
(set -e && waitForWebServer $PORT $TESTURL) & (
curl -s $URL > ./setup.sh &&
printf 'n' | source ./setup.sh test)

printnf 'n' | source ./setup.sh test行解决了bash在安装过程中被ng cli锁住的问题。执行waitForWebServerrun the setup script这两个部分的子bashh方面允许并行运行这些命令。因此,节省了一些运行时间,而没有不必要的sleep命令。

相关内容

  • 没有找到相关文章

最新更新