Skip to content

Commit b43133e

Browse files
committed
Parallel.
1 parent 20d92de commit b43133e

File tree

1 file changed

+62
-24
lines changed

1 file changed

+62
-24
lines changed

.travis.yml

Lines changed: 62 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,29 @@ before_install:
2727
- gcloud config set project technical-tusk
2828

2929
install:
30-
- yes | gcloud compute instances delete travis-instance --zone us-central1-b || true
31-
- gcloud compute instances create travis-instance --zone us-central1-b --image ubuntu-14-04 --machine-type n1-highcpu-32 --boot-disk-size 200 --scopes compute-rw
30+
- yes | gcloud compute instances delete travis-vm --zone us-central1-b || true
31+
- yes | gcloud compute instances delete travis-v2 --zone us-central1-b || true
32+
- gcloud compute instances create travis-vm --zone us-central1-b --image ubuntu-14-04 --machine-type n1-highcpu-16 --boot-disk-size 200 --scopes compute-rw
33+
- gcloud compute instances create travis-v2 --zone us-central1-b --image ubuntu-14-04 --machine-type n1-highcpu-16 --boot-disk-size 200 --scopes compute-rw
3234
- |
3335
while [ 1 ]; do
34-
gcloud compute ssh travis-instance --zone us-central1-b --command 'exit 0' -- -o ConnectTimeout=10 > /dev/null 2>&1 && break
36+
gcloud compute ssh travis-vm --zone us-central1-b --command 'exit 0' -- -o ConnectTimeout=10 > /dev/null 2>&1 && \
37+
gcloud compute ssh travis-v2 --zone us-central1-b --command 'exit 0' -- -o ConnectTimeout=10 > /dev/null 2>&1 && \
38+
break
3539
sleep 1
3640
done
37-
- gcloud compute ssh travis-instance --zone us-central1-b --command 'at now +60 minute -f <(echo "yes | gcloud compute instances delete travis-instance --zone us-central1-b")'
41+
- gcloud compute ssh travis-vm --zone us-central1-b --command 'at now +60 minute -f <(echo "yes | gcloud compute instances delete travis-vm --zone us-central1-b")'
42+
- gcloud compute ssh travis-v2 --zone us-central1-b --command 'at now +60 minute -f <(echo "yes | gcloud compute instances delete travis-v2 --zone us-central1-b")'
3843

3944
script:
4045
- |
41-
rsync -avz -e "$(gcloud compute ssh --zone us-central1-b travis-instance --dry-run | sed s/'[^ ]*$'//)" . "$(gcloud compute ssh --zone us-central1-b travis-instance --dry-run | awk 'END {print $NF}'):~/openwrt-tessel"
42-
- gcloud compute ssh travis-instance --zone us-central1-b --command "echo 'export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID' >> ~/.bashrc; echo 'export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY' >> ~/.bashrc; "
46+
rsync -avz -e "$(gcloud compute ssh --zone us-central1-b travis-vm --dry-run | sed s/'[^ ]*$'//)" . "$(gcloud compute ssh --zone us-central1-b travis-vm --dry-run | awk 'END {print $NF}'):~/openwrt-tessel"
4347
- |
44-
gcloud compute ssh travis-instance --zone us-central1-b --command '
45-
set -e
48+
rsync -avz -e "$(gcloud compute ssh --zone us-central1-b travis-v2 --dry-run | sed s/'[^ ]*$'//)" . "$(gcloud compute ssh --zone us-central1-b travis-v2 --dry-run | awk 'END {print $NF}'):~/openwrt-tessel"
49+
- gcloud compute ssh travis-vm --zone us-central1-b --command "mkdir -p ~/.aws; echo '$AWS_CREDENTIALS' | base64 --decode > ~/.aws/credentials"
50+
- gcloud compute ssh travis-v2 --zone us-central1-b --command "mkdir -p ~/.aws; echo '$AWS_CREDENTIALS' | base64 --decode > ~/.aws/credentials"
51+
- |
52+
gcloud compute ssh travis-vm --zone us-central1-b --command '
4653
set -x
4754
4855
sudo mkdir /tmp/ramdisk
@@ -54,31 +61,62 @@ script:
5461
sudo apt-add-repository -y ppa:terry.guo/gcc-arm-embedded
5562
sudo apt-get update -qq
5663
sudo apt-get install -y build-essential python-pip git-core g++ subversion libncurses-dev libssl-dev unzip gettext gcc-arm-none-eabi
64+
sudo -H python -m pip install awscli
5765
5866
mkdir ~/upload
5967
cd ~/openwrt-tessel
6068
git submodule update --init --recursive
6169
62-
cp -rf ~/openwrt-tessel /tmp/ramdisk/v2
63-
pushd /tmp/ramdisk/v2
64-
make -j64 || make -j64 || make -j64 || make -j64 || make -j64 V=s
65-
cp /tmp/ramdisk/v2/openwrt/bin/ramips/*sysupgrade.bin ~/upload
66-
tar -czf ~/upload/toolchain-mipsel.tar.gz -C /tmp/ramdisk/v2/openwrt/staging_dir $(find /tmp/ramdisk/v2/openwrt/staging_dir -iname '*-mipsel_*' -exec basename {} \;)
70+
cp -rf ~/openwrt-tessel /tmp/ramdisk/build
71+
pushd /tmp/ramdisk/build
72+
echo "Running mipsel build..."
73+
( make -j64 || make -j64 || make -j64 || make -j64 || make -j64 V=s || true ) > ~/upload/build-mipsel.log 2>&1
74+
aws s3 sync ~/upload/. s3://tessel-builds/firmware/
75+
cp /tmp/ramdisk/build/openwrt/bin/ramips/*sysupgrade.bin ~/upload
76+
tar -czf ~/upload/toolchain-mipsel.tar.gz -C /tmp/ramdisk/build/openwrt/staging_dir $(find /tmp/ramdisk/build/openwrt/staging_dir -iname '*-mipsel_*' -exec basename {} \;)
6777
popd
6878
69-
rm -rf /tmp/ramdisk/v2
79+
sudo -H python -m pip install awscli
80+
aws s3 sync ~/upload/. s3://tessel-builds/firmware/
81+
' &
82+
PID1=$!
83+
84+
gcloud compute ssh travis-v2 --zone us-central1-b --command '
85+
set -x
86+
87+
sudo mkdir /tmp/ramdisk
88+
sudo chmod 777 /tmp/ramdisk
89+
sudo mount -t tmpfs -o size=14G tmpfs /tmp/ramdisk/
90+
91+
sudo apt-get update -qq
92+
sudo apt-get install -y software-properties-common
93+
sudo apt-add-repository -y ppa:terry.guo/gcc-arm-embedded
94+
sudo apt-get update -qq
95+
sudo apt-get install -y build-essential python-pip git-core g++ subversion libncurses-dev libssl-dev unzip gettext gcc-arm-none-eabi
96+
sudo -H python -m pip install awscli
97+
98+
mkdir ~/upload
99+
cd ~/openwrt-tessel
100+
git submodule update --init --recursive
70101
71-
cp -rf ~/openwrt-tessel /tmp/ramdisk/vm
72-
pushd /tmp/ramdisk/vm
73-
make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm V=s
74-
cp /tmp/ramdisk/vm/openwrt/bin/x86/*.vdi ~/upload
75-
tar -czf ~/upload/toolchain-x86.tar.gz -C /tmp/ramdisk/vm/openwrt/staging_dir $(find /tmp/ramdisk/vm/openwrt/staging_dir -iname '*-i386_*' -exec basename {} \;)
102+
cp -rf ~/openwrt-tessel /tmp/ramdisk/build
103+
pushd /tmp/ramdisk/build
104+
echo "Running x86 build..."
105+
( make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm || make -j64 TARGET=vm V=s || true ) > ~/upload/build-x86.log 2>&1
106+
aws s3 sync ~/upload/. s3://tessel-builds/firmware/
107+
cp /tmp/ramdisk/build/openwrt/bin/x86/*.vdi ~/upload
108+
tar -czf ~/upload/toolchain-x86.tar.gz -C /tmp/ramdisk/build/openwrt/staging_dir $(find /tmp/ramdisk/build/openwrt/staging_dir -iname '*-i386_*' -exec basename {} \;)
76109
popd
77110
78-
source ~/.bashrc
79-
sudo -H python -m pip install awscli
80111
aws s3 sync ~/upload/. s3://tessel-builds/firmware/
81-
'
112+
' &
113+
PID2=$!
114+
115+
while kill -0 $PID1 || kill -0 $PID2; do
116+
sleep 10
117+
echo "."
118+
done
82119
83-
after_script:
84-
- yes | gcloud compute instances delete travis-instance --zone us-central1-b || true
120+
# after_script:
121+
# - yes | gcloud compute instances delete travis-v2 --zone us-central1-b || true
122+
# - yes | gcloud compute instances delete travis-vm --zone us-central1-b || true

0 commit comments

Comments
 (0)