ci auto deploy

This commit is contained in:
Martin/Geno 2019-02-26 20:37:30 +01:00
parent 1bfd7c3a59
commit e2c60e543e
No known key found for this signature in database
GPG Key ID: 9D7D3C6BFF600C6A
8 changed files with 63 additions and 31 deletions

7
.ci/build_pkgs.sh Normal file → Executable file
View File

@ -1,8 +1,9 @@
cd $CI_PROJECT_DIR/wireless/
PKGS=$(ls)
#!/bin/sh
cd $CI_PROJECT_DIR/build_dir
PKGS=$(ls $CI_PROJECT_DIR/wireless/)
echo "=== Found new/modified packages: $PKGS"
for PKG in $PKGS ; do
echo "===+ Download: $PKG"
@ -31,4 +32,4 @@ done
for PKG in $PKGS ; do
echo "===+ Building: $PKG"
make "package/$PKG/compile" -j3 V=s
done
done

12
.ci/deploy.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
HOST=$1
PKG=$2
scp -6 -o StrictHostKeyChecking=no $CI_PROJECT_DIR/build_dir/bin/packages/mips_24kc/wifictld/"$PKG"_*mips_24kc.ipk "root@$HOST":/tmp/"$PKG".ipk
if [ $? != 0 ]; then
echo "error on uploading pkg"
exit 1
fi
ssh -6 -o StrictHostKeyChecking=no "root@$HOST" opkg remove $PKG
ssh -6 -o StrictHostKeyChecking=no "root@$HOST" opkg install /tmp/"$PKG".ipk

8
.ci/download_sdk.sh Normal file → Executable file
View File

@ -1,8 +1,10 @@
mkdir -p $CI_PROJECT_DIR/tmp
cd $CI_PROJECT_DIR/tmp
#!/bin/sh
mkdir $CI_PROJECT_DIR/cache/
cd $CI_PROJECT_DIR/cache/
curl "https://$SDK_HOST/$SDK_PATH/sha256sums" -sS -o sha256sums
curl "https://$SDK_HOST/$SDK_PATH/sha256sums.asc" -sS -o sha256sums.asc
gpg --with-fingerprint --verify sha256sums.asc sha256sums
rsync -av "$SDK_HOST::downloads/$SDK_PATH/$SDK_FILE" .
sha256sum -c --ignore-missing sha256sums
sha256sum -c --ignore-missing sha256sums

9
.ci/prepare_build_dir.sh Normal file → Executable file
View File

@ -1,14 +1,15 @@
mkdir -p $CI_PROJECT_DIR/build_dir
#!/bin/sh
mkdir $CI_PROJECT_DIR/build_dir
cd $CI_PROJECT_DIR/build_dir
tar Jxf $CI_PROJECT_DIR/tmp/$SDK_FILE --strip=1
tar Jxf $CI_PROJECT_DIR/cache/$SDK_FILE --strip=1
cat > feeds.conf <<EOF
src-git base https://git.openwrt.org/openwrt/openwrt.git
src-git packages https://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
src-git gluon https://github.com/freifunk-gluon/packages.git
src-link $CI_PROJECT_NAME $CI_PROJECT_DIR
@ -19,4 +20,4 @@ cat feeds.conf
./scripts/feeds install -a > /dev/null
make defconfig > /dev/null
sed -i 's/# CONFIG_BUILD_LOG is not set/CONFIG_BUILD_LOG=y/' .config
sed -i 's/# CONFIG_BUILD_LOG is not set/CONFIG_BUILD_LOG=y/' .config

5
.gitignore vendored
View File

@ -51,6 +51,5 @@ Module.symvers
Mkfile.old
dkms.conf
tmp/
build_dir/
cache/
build_dir/

View File

@ -1,22 +1,39 @@
image: openwrtorg/packages-cci
variables:
SDK_HOST: "downloads.openwrt.org"
SDK_PATH: "snapshots/targets/ar71xx/generic"
SDK_FILE: "openwrt-sdk-ar71xx-generic_*.Linux-x86_64.tar.xz"
SDK_HOST: "downloads.openwrt.org"
SDK_PATH: "releases/18.06.2/targets/ar71xx/generic"
SDK_FILE: "openwrt-sdk-*ar71xx-generic_*.Linux-x86_64.tar.xz"
stages:
- compile
- compile
- deploy
compile:
stage: compile
script:
- echo "==== Download the SDK ===="
- sh .ci/download_sdk.sh
- echo "==== Prepare build_dir ===="
- sh .ci/prepare_build_dir.sh
- echo "==== build packages ===="
- sh .ci/build_pkgs.sh
artifacts:
paths:
- build_dir/bin/packages
stage: compile
script:
- echo "==== Download the SDK ===="
- .ci/download_sdk.sh
- echo "==== Prepare build_dir ===="
- .ci/prepare_build_dir.sh
- echo "==== build packages ===="
- .ci/build_pkgs.sh
artifacts:
paths:
- build_dir/bin/packages
deploy:
stage: deploy
only:
- master
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- sleep 10
- .ci/deploy.sh flur.hotoho.n.sum7.eu wifictld
- .ci/deploy.sh flur.hotoho.n.sum7.eu respondd-module-wifictld
- ssh -6 -o StrictHostKeyChecking=no "root@flur.hotoho.n.sum7.eu" /etc/init.d/gluon-respondd restart
- .ci/deploy.sh harry.hotoho.n.sum7.eu wifictld
- .ci/deploy.sh harry.hotoho.n.sum7.eu respondd-module-wifictld
- ssh -6 -o StrictHostKeyChecking=no "root@harry.hotoho.n.sum7.eu" /etc/init.d/gluon-respondd restart

View File

@ -13,7 +13,7 @@ define Package/wifictld/Default
SECTION:=net
CATEGORY:=Network
TITLE:=wireless control daemon
URL:=https://dev.sum7.eu/wifictld/wifictld
URL:=https://dev.sum7.eu/genofire/wifictld
DEPENDS:=+libubus +libubox
endef

View File

@ -13,7 +13,7 @@ start_service () {
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn ${respawn_threshold:-3660} ${respawn_timeout:-5} ${respawn_retry:-0}
procd_set_param command "$PROG"
procd_set_param command "$PROG" --if br-wan --mif br-wan
procd_set_param watch network.wireless
procd_close_instance
}