Procházet zdrojové kódy

Merge pull request #7 from cokebar/travis

Add Travis CI
Cokebar Chi před 8 roky
rodič
revize
f989103056
2 změnil soubory, kde provedl 116 přidání a 0 odebrání
  1. 73 0
      .travis.yml
  2. 43 0
      deploy.sh

+ 73 - 0
.travis.yml

@@ -0,0 +1,73 @@
+#filename:.travis.yml
+dist: trusty
+sudo: false
+cache:
+  bundler: true
+  directories:
+  - cache/
+notifications:
+  email: false
+language: c
+compiler: gcc
+env:
+  global:
+  - PACKAGE=vlmcsd
+  - USER=cokebar
+  - REPO=openwrt-vlmcsd
+  matrix:
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/ar71xx/nand/lede-sdk-17.01.0-rc2-ar71xx-nand_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/OpenWrt-SDK-15.05.1-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/ramips/mt7620/lede-sdk-17.01.0-rc2-ramips-mt7620_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/brcm63xx/generic/OpenWrt-SDK-15.05.1-brcm63xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/brcm63xx/generic/lede-sdk-17.01.0-rc2-brcm63xx-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/bcm53xx/generic/OpenWrt-SDK-15.05.1-bcm53xx_gcc-4.8-linaro_uClibc-0.9.33.2_eabi.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/bcm53xx/generic/lede-sdk-17.01.0-rc2-bcm53xx_gcc-5.4.0_musl-1.1.16_eabi.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/brcm47xx/generic/OpenWrt-SDK-15.05.1-brcm47xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/brcm47xx/generic/lede-sdk-17.01.0-rc2-brcm47xx-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/mvebu/generic/OpenWrt-SDK-15.05.1-mvebu_gcc-4.8-linaro_uClibc-0.9.33.2_eabi.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/mvebu/generic/lede-sdk-17.01.0-rc2-mvebu_gcc-5.4.0_musl-1.1.16_eabi.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/x86/generic/OpenWrt-SDK-15.05.1-x86-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/x86/generic/lede-sdk-17.01.0-rc2-x86-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+  - OSVER=OpenWrt   SDK_URL=https://downloads.openwrt.org/chaos_calmer/15.05.1/x86/64/OpenWrt-SDK-15.05.1-x86-64_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
+  - OSVER=LEDE      SDK_URL=https://downloads.lede-project.org/releases/17.01.0-rc2/targets/x86/64/lede-sdk-17.01.0-rc2-x86-64_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz
+install:
+- mkdir -p $TRAVIS_BUILD_DIR/local ; cd $TRAVIS_BUILD_DIR/local
+- wget "http://us.archive.ubuntu.com/ubuntu/pool/main/c/ccache/ccache_3.3.3-1_amd64.deb"
+- dpkg -x *.deb .
+- mkdir -p $TRAVIS_BUILD_DIR/cache ; cd $TRAVIS_BUILD_DIR/cache
+- wget -c $SDK_URL
+- mkdir -p $TRAVIS_BUILD_DIR/sdk ; cd $TRAVIS_BUILD_DIR/sdk
+- export FILE=$TRAVIS_BUILD_DIR/cache/$(basename $SDK_URL)
+- file $FILE
+- if [ "$OSVER" = "OpenWrt" ]; then tar xjf $FILE && SDK_DIR="OpenWrt-SDK-*"; elif [ "$OSVER" = "LEDE" ]; then tar Jxf $FILE && SDK_DIR="lede-sdk-*"; fi
+- cd $TRAVIS_BUILD_DIR/sdk/$SDK_DIR
+- mkdir package/$PACKAGE
+- ln -s $TRAVIS_BUILD_DIR/Makefile package/$PACKAGE/
+- ln -s $TRAVIS_BUILD_DIR/files package/$PACKAGE/
+script:
+- export PATH=$TRAVIS_BUILD_DIR/local/usr/bin:$PATH
+- cd $TRAVIS_BUILD_DIR/sdk/$SDK_DIR
+- export SDK_DIR=$(basename `pwd`)
+- export PATH=$TRAVIS_BUILD_DIR/sdk/$SDK_DIR/staging_dir/host/bin:$PATH
+- pushd staging_dir/toolchain-*
+- TOOLCHAIN_DIR=$(basename `pwd`)
+- export PATH=$TRAVIS_BUILD_DIR/sdk/$SDK_DIR/staging_dir/$TOOLCHAIN_DIR/bin:$PATH
+- popd
+- ./scripts/feeds update packages >/dev/null
+- make defconfig
+- make package/vlmcsd/compile V=s
+- find $TRAVIS_BUILD_DIR/sdk/$SDK_DIR/bin/
+- find . -name *vlmcsd*.ipk -exec cp {} $TRAVIS_BUILD_DIR \;
+- cd $TRAVIS_BUILD_DIR/
+- chmod a+x $TRAVIS_BUILD_DIR/deploy.sh
+after_success: "$TRAVIS_BUILD_DIR/deploy.sh"
+before_deploy: git fetch --tags
+deploy:
+  provider: releases
+  skip_cleanup: true
+  file_glob: true
+  file: "$TRAVIS_BUILD_DIR/*.ipk"
+  on:
+    tags: true
+    all_branches: true

+ 43 - 0
deploy.sh

@@ -0,0 +1,43 @@
+#filename:deploy.sh
+#!/bin/bash
+# Deploy binaries built with travis-ci to GitHub Pages,
+# where they can be accessed by OpenWrt opkg directly
+cd /tmp/
+git clone https://${USER}:${TOKEN}@github.com/${USER}/${REPO}.git --branch gh-pages \
+--single-branch gh-pages > /dev/null 2>&1 || exit 1 # so that the key does not leak to the logs in case of errors
+cd gh-pages || exit 1
+git config user.name "cokebar"
+git config user.email "cokebar@cokebar.info"
+mkdir -p ${OSVER}
+pushd $OSVER
+cp $TRAVIS_BUILD_DIR/*.ipk .
+$TRAVIS_BUILD_DIR/sdk/$SDK_DIR/scripts/ipkg-make-index.sh . > Packages
+gzip -c Packages > Packages.gz
+cat > index.html <<EOF
+<html><body><pre>
+echo "src/gz announce http://${USER}.github.io/${REPO}/${OSVER}" >> /etc/opkg.conf
+opkg update
+opkg install ${PACKAGE}
+</pre></body></html>
+EOF
+DATE=$(date "+%Y-%m-%d")
+cat > README.md <<EOF
+OpenWrt repository for ${PACKAGE}
+========
+Binaries built from this repository on $DATE can be downloaded from http://${USER}.github.io/${REPO}/.
+To install the ${PACKAGE} package, run
+\`\`\`
+echo "src/gz announce http://${USER}.github.io/${REPO}/${OSVER}" >> /etc/opkg.conf
+opkg update
+opkg install ${PACKAGE}
+\`\`\`
+EOF
+git add -A
+popd
+#git pull
+git commit -a -m "Deploy Travis build $TRAVIS_BUILD_NUMBER to gh-pages"
+#git push -fq origin gh-pages:gh-pages > /dev/null 2>&1 || exit 1
+git push -fq origin gh-pages > /dev/null 2>&1 || exit 1 # so that the key does not leak to the logs in case of errors
+#git push -f origin gh-pages:gh-pages
+echo -e "Uploaded files to gh-pages\n"
+cd -