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

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

@ -1,8 +1,9 @@
cd $CI_PROJECT_DIR/wireless/ #!/bin/sh
PKGS=$(ls)
cd $CI_PROJECT_DIR/build_dir cd $CI_PROJECT_DIR/build_dir
PKGS=$(ls $CI_PROJECT_DIR/wireless/)
echo "=== Found new/modified packages: $PKGS" echo "=== Found new/modified packages: $PKGS"
for PKG in $PKGS ; do for PKG in $PKGS ; do
echo "===+ Download: $PKG" echo "===+ Download: $PKG"

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

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

@ -1,5 +1,7 @@
mkdir -p $CI_PROJECT_DIR/tmp #!/bin/sh
cd $CI_PROJECT_DIR/tmp
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" -sS -o sha256sums
curl "https://$SDK_HOST/$SDK_PATH/sha256sums.asc" -sS -o sha256sums.asc curl "https://$SDK_HOST/$SDK_PATH/sha256sums.asc" -sS -o sha256sums.asc

7
.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 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 cat > feeds.conf <<EOF
src-git base https://git.openwrt.org/openwrt/openwrt.git src-git base https://git.openwrt.org/openwrt/openwrt.git
src-git packages https://git.openwrt.org/feed/packages.git src-git packages https://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.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-git gluon https://github.com/freifunk-gluon/packages.git
src-link $CI_PROJECT_NAME $CI_PROJECT_DIR src-link $CI_PROJECT_NAME $CI_PROJECT_DIR

3
.gitignore vendored
View File

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

View File

@ -2,21 +2,38 @@ image: openwrtorg/packages-cci
variables: variables:
SDK_HOST: "downloads.openwrt.org" SDK_HOST: "downloads.openwrt.org"
SDK_PATH: "snapshots/targets/ar71xx/generic" SDK_PATH: "releases/18.06.2/targets/ar71xx/generic"
SDK_FILE: "openwrt-sdk-ar71xx-generic_*.Linux-x86_64.tar.xz" SDK_FILE: "openwrt-sdk-*ar71xx-generic_*.Linux-x86_64.tar.xz"
stages: stages:
- compile - compile
- deploy
compile: compile:
stage: compile stage: compile
script: script:
- echo "==== Download the SDK ====" - echo "==== Download the SDK ===="
- sh .ci/download_sdk.sh - .ci/download_sdk.sh
- echo "==== Prepare build_dir ====" - echo "==== Prepare build_dir ===="
- sh .ci/prepare_build_dir.sh - .ci/prepare_build_dir.sh
- echo "==== build packages ====" - echo "==== build packages ===="
- sh .ci/build_pkgs.sh - .ci/build_pkgs.sh
artifacts: artifacts:
paths: paths:
- build_dir/bin/packages - 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 SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=wireless control daemon TITLE:=wireless control daemon
URL:=https://dev.sum7.eu/wifictld/wifictld URL:=https://dev.sum7.eu/genofire/wifictld
DEPENDS:=+libubus +libubox DEPENDS:=+libubus +libubox
endef endef

View File

@ -13,7 +13,7 @@ start_service () {
procd_set_param stdout 1 procd_set_param stdout 1
procd_set_param stderr 1 procd_set_param stderr 1
procd_set_param respawn ${respawn_threshold:-3660} ${respawn_timeout:-5} ${respawn_retry:-0} 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_set_param watch network.wireless
procd_close_instance procd_close_instance
} }