image: registry.gitlab.freifunk-stuttgart.de/firmware/ffs-buildenv:master

variables:
  GIT_SUBMODULE_STRATEGY: normal
  DOCKER_DRIVER: overlay2

stages:
  - build
  - package

.target:
  stage: build
  script:
    - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
    - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=stable V=1 -j`nproc`
  except:
    - tags
  artifacts: 
    paths:
      - gluon/output/
    expire_in: 1 day
  cache:
    paths:
      - gluon/openwrt/dl
      - gluon/openwrt/staging_dir
      - gluon/openwrt/feeds
    key: "target-$GLUON_TARGET"
 
target:ar71xx-generic:
  extends: .target
  variables:
    GLUON_TARGET: ar71xx-generic
 
target:ar71xx-nand:
  extends: .target
  variables:
    GLUON_TARGET: ar71xx-nand
 
target:ar71xx-tiny:
  extends: .target
  variables:
    GLUON_TARGET: ar71xx-tiny
 
target:brcm2708-bcm2708:
  extends: .target
  variables:
    GLUON_TARGET: brcm2708-bcm2708
 
target:brcm2708-bcm2709:
  extends: .target
  variables:
    GLUON_TARGET: brcm2708-bcm2709
 
target:mpc85xx-generic:
  extends: .target
  variables:
    GLUON_TARGET: mpc85xx-generic
 
target:ipq40xx:
  extends: .target
  variables:
    GLUON_TARGET: ipq40xx
 
target:ramips-mt7621:
  extends: .target
  variables:
    GLUON_TARGET: ramips-mt7621
 
target:ramips-mt76x8:
  extends: .target
  variables:
    GLUON_TARGET: ramips-mt76x8
 
target:x86-generic:
  extends: .target
  variables:
    GLUON_TARGET: x86-generic
 
target:x86-geode:
  extends: .target
  variables:
    GLUON_TARGET: x86-geode
 
target:x86-64:
  extends: .target
  variables:
    GLUON_TARGET: x86-64

package:
  stage: package
  script:
    - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
    - for branch in "stable" "beta" "nightly"; do make -C gluon manifest GLUON_BRANCH="$branch" GLUON_SITEDIR="$CI_PROJECT_DIR" V=1; done
    - test -z "$GLUON_SIGN_KEY" && cd gluon && ./contrib/sign.sh <(echo "$GLUON_SIGN_KEY") output/images/sysupgrade/nightly.manifest
  artifacts:
    paths:
      - gluon/output
    expire_in: 7 days