~edwargix/git.sr.ht

6ed66f74828ac0efec4b1d3ffd73b9c8df9f3c06 — Drew DeVault 7 years ago c848f49
Update builds to use pkgkit
2 files changed, 33 insertions(+), 88 deletions(-)

M .builds/alpine.yml
M .builds/archlinux.yml
M .builds/alpine.yml => .builds/alpine.yml +20 -52
@@ 6,71 6,39 @@ repositories:
    alpine@sr.ht.rsa.pub
packages:
  - rsync
  - xz
sources:
  - https://git.sr.ht/~sircmpwn/git.sr.ht
  - https://git.sr.ht/~sircmpwn/sr.ht-apkbuilds
environment:
  project: git.sr.ht
  repo_server: deploy@mirror.sr.ht
  repo_path: /var/www/mirror.sr.ht/alpine/sr.ht/x86_64
  master: git.sr.ht
  remote: deploy@mirror.sr.ht
  remote_path: /var/www/mirror.sr.ht/alpine
  master: deploy@git.sr.ht
secrets:
  - fa00a8d3-7b63-42d5-8060-3bb31c3e3018 # ssh deploy key
  - d0adc1d4-af78-4852-920f-1134392f5d10 # package signing key
tasks:
  - archive: |
      cd ${project}
      pkgver=$(git describe --abbrev=0)
      if ! git describe --exact-match HEAD
      then
        cdate=$(git show -s -1 --format='%ci' HEAD)
        cdate=$(echo "$cdate" | cut -d' ' -f1 | sed -e 's/-//g')
        pkgver="${pkgver}_git${cdate}"
      fi
      pkgver=$(~/sr.ht-apkbuilds/pkgkit pkgver)
      echo "pkgver=$pkgver" >> ~/.buildenv
      git archive --prefix=${project}-$pkgver/ HEAD | xz \
        > ~/sr.ht-apkbuilds/sr.ht/${project}/${project}-$pkgver.tar.xz
      git archive \
        -o ~/sr.ht-apkbuilds/sr.ht/${project}/${project}-$pkgver.tar.gz \
        --prefix=${project}-$pkgver/ HEAD
  - pkgkit: |
      cd sr.ht-apkbuilds
      ./pkgkit add-repo -s sr.ht ~/.abuild/alpine@sr.ht.rsa
      cd sr.ht/$project
      sed -e 's?::https://git.sr.ht/.*archive.*??g' -i APKBUILD
  - package: |
      cd sr.ht-apkbuilds/sr.ht/${project}
      echo 'PACKAGER_PRIVKEY="/home/build/.abuild/alpine@sr.ht.rsa"' >> \
        ~/.abuild/abuild.conf
      prev_pkgver=$(apk search -x ${project} | cut -d '-' -f3-)
      prev_pkgrel=$(printf "%s" "$prev_pkgver" | cut -d'-' -f2 | cut -c2-)
      prev_pkgver=$(printf "%s" "$prev_pkgver" | cut -d'-' -f1)
      if [ "$prev_pkgver" = "$pkgver" ]
      then
        pkgrel=$(($prev_pkgrel + 1))
      else
        pkgrel=1
      fi
      sed -e "s/pkgver=.*/pkgver=$pkgver/" -i APKBUILD
      sed -e "s/pkgrel=.*/pkgrel=$pkgrel/" -i APKBUILD
      sed -e "s?http://git.sr.ht/.*/snapshot/??g" -i APKBUILD
      cat APKBUILD
      echo "pkgrel=$pkgrel" >> ~/.buildenv
      abuild checksum
      abuild -r
      cd ~/${project}
      cd sr.ht-apkbuilds
      ./pkgkit build -cuv "$pkgver" "$project"
      cd ~/$project
      git describe --exact-match HEAD || complete-build
  - publish: |
      cd ~/packages/sr.ht/x86_64
      sshopts="-o StrictHostKeyChecking=no"
      set -u
      ssh $sshopts $repo_server rm -f $repo_path/${project}'*.apk'
      rsync --blocking-io \
        -rPe "ssh $sshopts" *.apk $repo_server:$repo_path/
      ssh $sshopts $repo_server find $repo_path -type f -name '*.apk' -print0 |
        ssh $sshopts $repo_server xargs -0 apk index \
          --rewrite-arch x86_64 \
          -x $repo_path/APKINDEX.tar.gz \
          -o $repo_path/APKINDEX.unsigned.tar.gz
      rsync --blocking-io -rPe "ssh $sshopts" \
        $repo_server:$repo_path/APKINDEX.unsigned.tar.gz APKINDEX.tar.gz
      abuild-sign -k ~/.abuild/alpine@sr.ht.rsa APKINDEX.tar.gz
      rsync --blocking-io -rPe "ssh $sshopts" \
        APKINDEX.tar.gz $repo_server:$repo_path/
      cd sr.ht-apkbuilds
      echo "StrictHostKeyChecking=no" >> ~/.ssh/config
      ./pkgkit upload "$remote" "$remote_path" "$project"
  - deploy: |
      sshopts="-o StrictHostKeyChecking=no"
      ssh $sshopts deploy@$master doas apk upgrade -U
      ssh $sshopts deploy@$master doas service git.sr.ht restart
      ssh $master doas apk upgrade -U
      ssh $master doas service $project restart

M .builds/archlinux.yml => .builds/archlinux.yml +13 -36
@@ 2,54 2,31 @@ image: archlinux
repositories:
  sr.ht: https://mirror.sr.ht/archlinux/sr.ht/#1ED4E14494433AE3FD302CAB74B4BCCEA60D0437
packages:
  - sassc
  - python-setuptools
  - python-srht
  - python-pygit2
  - python-celery
  - python-redis
  - python-flask-login
  - builds.sr.ht
  - rsync
  - pacman-contrib
sources:
  - https://git.sr.ht/~sircmpwn/git.sr.ht
  - https://git.sr.ht/~sircmpwn/sr.ht-pkgbuilds
environment:
  repo_server: deploy@mirror.sr.ht
  repo_path: /var/www/mirror.sr.ht/archlinux/sr.ht
  project: git.sr.ht
  remote: deploy@mirror.sr.ht
  remote_path: /var/www/mirror.sr.ht/archlinux
secrets:
  - fa00a8d3-7b63-42d5-8060-3bb31c3e3018 # ssh deploy key
  - 3e65a1a8-a20f-4f6b-a452-df2ac398bc1e # package signing key
tasks:
  - build: |
      cd git.sr.ht
      ./setup.py build
  - archive: |
      cd git.sr.ht
      cd ${project}
      pkgver=$(git describe | sed -e 's/-/_/g')
      echo "pkgver=$pkgver" >> ~/.buildenv
      git archive -o ~/sr.ht-pkgbuilds/git.sr.ht/git.sr.ht-$pkgver.tar.xz \
        --prefix=git.sr.ht-$pkgver/ HEAD
      git archive -o ~/sr.ht-pkgbuilds/$project/$project-$pkgver.tar.gz \
        --prefix=$project-$pkgver/ HEAD
  - package: |
      cd sr.ht-pkgbuilds/git.sr.ht
      pkgrel=$(pacman -Si git.sr.ht | grep Version | cut -d'-' -f2)
      pkgrel=$(expr $pkgrel + 1)
      sed -e "s/pkgver=.*/pkgver=$pkgver/" -i PKGBUILD
      sed -e "s/pkgrel=.*/pkgrel=$pkgrel/" -i PKGBUILD
      echo "pkgrel=$pkgrel" >> ~/.buildenv
      updpkgsums
      makepkg --config ../makepkg.conf -s --noconfirm
      cd ~/git.sr.ht
      cd sr.ht-pkgbuilds
      ./pkgkit build -cuv "$pkgver" $project
      cd ~/$project
      git describe --exact-match HEAD || complete-build
  - deploy: |
      cd sr.ht-pkgbuilds/git.sr.ht
      sshopts="-o StrictHostKeyChecking=no"
      rsync --blocking-io \
        --rsh="ssh $sshopts" -rP *.pkg.tar.xz{,.sig} $repo_server:$repo_path/
      ssh $sshopts $repo_server repo-add -n -R \
        $repo_path/sr.ht.db.tar.gz \
        $repo_path/git.sr.ht-$pkgver-$pkgrel-any.pkg.tar.xz
      ssh $sshopts $repo_server repo-add -n -R \
        $repo_path/sr.ht.db.tar.gz \
        $repo_path/git.sr.ht-images-$pkgver-$pkgrel-any.pkg.tar.xz
  - publish: |
      cd sr.ht-pkgbuilds
      echo "StrictHostKeyChecking=no" >> ~/.ssh/config
      ./pkgkit upload "$remote" "$remote_path" sr.ht $project