我的circleci配置中有两个步骤,下载miniconda并安装miniconda。仅当环境文件发生某些更改(无法还原缓存)时,才会执行这些步骤。
使用机器类型执行程序运行circleci作业时,安装卡在一个位置,并且在下载步骤后无法继续前进。
- run:
name: Install miniconda and python dependencies
command: |
if [[ ! -d /home/circleci/miniconda ]]; then
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh &&
bash miniconda.sh -b -f -p /home/circleci/miniconda;
source ~/miniconda/bin/activate root
conda env create -f ./environments/test.yml
else
echo "Using cached miniconda";
fi
这是输出摘要(安装卡住时):
#!/bin/bash -eo pipefail
if [[ ! -d /home/circleci/miniconda ]]; then
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh &&
bash miniconda.sh -b -f -p /home/circleci/miniconda;
source ~/miniconda/bin/activate root
conda env create -f ./environments/test.yml
else
echo "Using cached miniconda";
fi
--2019-10-17 08:59:05-- https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
Resolving repo.continuum.io (repo.continuum.io)... 104.18.200.79, 104.18.201.79, 2606:4700::6812:c84f, ...
Connecting to repo.continuum.io (repo.continuum.io)|104.18.200.79|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 70489432 (67M) [application/x-sh]
Saving to: ‘miniconda.sh’
100%[======================================>] 70,489,432 175MB/s in 0.4s
2019-10-17 08:59:05 (175 MB/s) - ‘miniconda.sh’ saved [70489432/70489432]
PREFIX=/home/circleci/miniconda
Unpacking payload ...
0% 0/35 [00:00<?, ?it/s]Too long with no output (exceeded 10m0s)
它在这里停留了一段时间,然后由于时间过长而抛出fail
个版本。这种行为是不可复制的,因为有时它会非常顺利地安装miniconda。
这是输出摘要(当一切顺利时):
100%[======================================>] 70,489,432 122MB/s in 0.6s
2019-10-22 08:59:34 (122 MB/s) - ‘miniconda.sh’ saved [70489432/70489432]
PREFIX=/home/circleci/miniconda
Unpacking payload ...
Collecting package metadata (current_repodata.json): - done
Solving environment: | / done
## Package Plan ##
environment location: /home/circleci/miniconda
added / updated specs:
- _libgcc_mutex==0.1=main
....
....
我的完整配置文件如下所示:
version: 2
jobs:
build:
machine: true
steps:
- checkout
- run:
name: installing node-dependencies
command: |
cd ./xyz/xyz-api
npm i
- run:
name: Spinning up the docker container; docker-compose up -d
command: |
cd ./xyz/docker
docker-compose up -d
- run:
name: Spinning up rabbitmq instance
command: |
cd ./docker
docker-compose up -d
- run:
name: Inserting data in fir estore postgres type table
command: |
cd ./xyz/docker
docker cp initial-queries.sql xyz-db:/docker-entrypoint-initdb.d/initial-queries.sql
docker exec -u root xyz-db psql xyz_db root -f docker-entrypoint-initdb.d/initial-queries.sql
- restore_cache:
key: v3-miniconda-{{ checksum "environments/test.yml" }}
- run:
name: Install miniconda and python dependencies
command: |
if [[ ! -d /home/circleci/miniconda ]]; then
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh &&
bash miniconda.sh -b -f -p /home/circleci/miniconda;
source ~/miniconda/bin/activate root
conda env create -f ./environments/test.yml
else
echo "Using cached miniconda";
fi
- save_cache:
key: v3-miniconda-{{ checksum "environments/test.yml" }}
paths:
- /home/circleci/miniconda
- run:
name: test linting
command: |
sh some_tesh.sh