image: registry.gitlab.freifunk-stuttgart.de/firmware/ffs-buildenv:master variables: GIT_SUBMODULE_STRATEGY: normal DOCKER_DRIVER: overlay2 stages: - generate_date - update - build - package default: before_script: - git submodule foreach 'git fetch --tags' - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - ssh-add <(echo "$GIT_SSH_PRIV_KEY") - git config --global user.email "firmware@freifunk-stuttgart.de" - git config --global user.name "FFS Buildbot" - mkdir -p ~/.ssh - cat gitlab-known-hosts >> ~/.ssh/known_hosts - test -d ffs-openwrt-dl-cache || git clone ssh://git@ssh.gitlab.freifunk-stuttgart.de:22220/firmware/ffs-openwrt-dl-cache.git - git -C ffs-openwrt-dl-cache pull --no-rebase || true - rm -rf gluon/openwrt/dl && mkdir -p gluon/openwrt && ln -s ../../ffs-openwrt-dl-cache gluon/openwrt/dl - rm -rf gluon/openwrt/staging_dir && mkdir -p staging_dir && ln -s ../../staging_dir gluon/openwrt/staging_dir after_script: # we need to start the SSH agent again because it doesn't seem to stay running - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - ssh-add <(echo "$GIT_SSH_PRIV_KEY") - git config --global user.email "firmware@freifunk-stuttgart.de" - git config --global user.name "FFS Buildbot" - mkdir -p ~/.ssh - cat gitlab-known-hosts >> ~/.ssh/known_hosts - cd gluon/openwrt/dl - git pull --no-rebase || true - git add . && git commit -m "update DL cache" || true - git pull --no-rebase && git push || true generate_date: stage: generate_date before_script: - echo dummy after_script: - echo dummy script: - date '+%Y-%m-%d' > build.date artifacts: paths: - build.date expire_in: 1 day except: - tags update: stage: update script: - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR" FFS_BUILD_DATE=$(cat build.date) artifacts: paths: - gluon/ expire_in: 1 day except: - tags build-target: stage: build except: - tags script: - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$TARGET" GLUON_AUTOUPDATER_BRANCH=stable GLUON_AUTOUPDATER_ENABLED=1 FFS_BUILD_DATE=$(cat build.date) BROKEN="$BROKEN" V=1 -j`nproc` artifacts: paths: - gluon/output/ expire_in: 1 day cache: [] parallel: matrix: - TARGET: armsr-armv7 - TARGET: armsr-armv8 - TARGET: ath79-generic - TARGET: ath79-nand - TARGET: ath79-mikrotik - TARGET: bcm27xx-bcm2708 - TARGET: bcm27xx-bcm2709 - TARGET: ipq40xx-generic - TARGET: ipq40xx-mikrotik - TARGET: ipq806x-generic - TARGET: lantiq-xrx200 - TARGET: lantiq-xway - TARGET: mediatek-filogic - TARGET: mediatek-mt7622 - TARGET: mpc85xx-p1010 - TARGET: mpc85xx-p1020 - TARGET: ramips-mt7620 - TARGET: ramips-mt7621 - TARGET: ramips-mt76x8 - TARGET: realtek-rtl838x - TARGET: rockchip-armv8 - TARGET: sunxi-cortexa7 - TARGET: x86-generic - TARGET: x86-geode - TARGET: x86-legacy - TARGET: x86-64 package: stage: package script: - for branch in "stable" "beta" "nightly" "experimental"; do make -C gluon manifest GLUON_AUTOUPDATER_BRANCH="$branch" GLUON_AUTOUPDATER_ENABLED=1 GLUON_SITEDIR="$CI_PROJECT_DIR" FFS_BUILD_DATE=$(cat build.date) V=1 -j`nproc`; done - if [ -n "$GLUON_SIGN_KEY" ]; then cd gluon && for branch in "nightly" "experimental"; do ./contrib/sign.sh <(echo "$GLUON_SIGN_KEY") "output/images/sysupgrade/$branch.manifest"; done; fi cache: [] artifacts: paths: - gluon/output expire_in: 7 days except: - tags