base: freebsd-11.2

steps:
  - run: # install dependencies
      - ASSUME_ALWAYS_YES=yes pkg bootstrap
      - ASSUME_ALWAYS_YES=yes IGNORE_OSVERSION=yes pkg install gmake go git git-lfs ca_root_nss
  - run: # downgrade to Go 1.13
      - ASSUME_ALWAYS_YES=yes pkg remove go
      - ASSUME_ALWAYS_YES=yes IGNORE_OSVERSION=yes pkg install subversion
      - svn checkout --depth immediates https://svn.FreeBSD.org/ports/tags/RELEASE_12_1_0 ports-12.1.0
      - cd ports-12.1.0
      - svn update --set-depth immediates lang
      - svn update --set-depth infinity lang/go
      - svn update --set-depth infinity lang/go14
      - svn update --set-depth infinity Mk
      - svn update --set-depth infinity Templates
      - svn update --set-depth infinity Tools
      - svn update --set-depth infinity Keywords
      - cd lang/go
      - ALLOW_UNSUPPORTED_SYSTEM=yes BATCH=yes make install clean
      - cd /
      - rm -rvf /ports-12.1.0
  - run: # install Gitea
      - ASSUME_ALWAYS_YES=yes pkg remove go14
      - export REVISION=534103
      - svn checkout -r $REVISION --depth immediates https://svn.FreeBSD.org/ports/head ports-r${REVISION}
      - cd ports-r${REVISION}
      - svn update -r ${REVISION} --set-depth immediates www
      - svn update -r ${REVISION} --set-depth infinity www/gitea
      - svn update -r ${REVISION} --set-depth infinity Mk
      - svn update -r ${REVISION} --set-depth infinity Templates
      - svn update -r ${REVISION} --set-depth infinity Tools
      - svn update -r ${REVISION} --set-depth infinity Keywords
      - cd www/gitea
      - ALLOW_UNSUPPORTED_SYSTEM=yes BATCH=yes make install clean
      - cd /
      - rm -rvf /ports-r${REVISION}
  - run: # remove unnecessary packages
      - ASSUME_ALWAYS_YES=yes pkg remove gmake go
      - ASSUME_ALWAYS_YES=yes pkg autoremove
  - run: # install crudini
      - ASSUME_ALWAYS_YES=yes pkg install py27-crudini
  - run: # final touches
      - export GITEA_CONF=/usr/local/etc/gitea/conf/app.ini
      - crudini --set --inplace $GITEA_CONF oauth2 JWT_SECRET `gitea generate secret JWT_SECRET`
      - crudini --set --inplace $GITEA_CONF security INTERNAL_TOKEN `gitea generate secret INTERNAL_TOKEN`
      - crudini --set --inplace $GITEA_CONF security SECRET_KEY `gitea generate secret SECRET_KEY`
      - crudini --set --inplace $GITEA_CONF service DISABLE_REGISTRATION true
      - chown root:git $GITEA_CONF
      - chmod 640 $GITEA_CONF
      - sysrc sshd_enable=NO
      - sysrc gitea_enable=YES
      - sysrc sendmail_enable=NONE
      - sysrc syslogd_flags="-ss"
  - run:
      - sysrc clear_tmp_enable=YES