From c438e949e3fcb7c7c8a5d92e9fb27d2ee431debd Mon Sep 17 00:00:00 2001 From: Dmitry Porunov Date: Fri, 1 Nov 2019 04:27:37 +0400 Subject: [PATCH] Autoupdate and push PKGBUILD to AUR with each new release --- .gitlab-ci.yml | 86 ++++++++------------------------------------------ 1 file changed, 14 insertions(+), 72 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index af94f21..e26bc20 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,9 @@ -# GitLab CI configuration for ffsend builds, tests and releases -# -# To add a new release: -# - configure a new 'build-*' job with the proper target -# - export a build artifact from the new job -# - manually upload artifact to GitHub in the 'github-release' job - stages: - package -# AUR packages release package-aur: image: archlinux/base stage: package - # needs: - # - release-github dependencies: [] only: - /^v(\d+\.)*\d+$/ @@ -21,62 +11,40 @@ package-aur: script: - cd ./pkg/aur - # Determine the version number we're releasing for - - VERSION=$(echo $CI_COMMIT_REF_NAME | cut -c 2-) - - echo "Determined binary version number 'v$VERSION'" + - _version=$(echo $CI_COMMIT_REF_NAME | cut -c 2-) + - echo "Pushing'v$_version'" - # Determine remote URLs and SHA checksums - - echo "Determining SHA checksums for remote files..." - - URL_SOURCE=https://git.auteiy.me/dmitry/cursorsPosy/-/archive/v$VERSION/cursorsPosy-v$VERSION.tar.gz?path=themes - - 'echo "Selected source URL: $URL_SOURCE"' - - echo "Determining sha256sum for remote source..." - - 'SHA_SOURCE=$(curl -sSL "$URL_SOURCE" | sha256sum | cut -d" " -f1)' - - 'echo "Got sha256sum: $SHA_SOURCE"' + - sourceURL=https://git.auteiy.me/dmitry/cursorsPosy/-/archive/v$_version/cursorsPosy-v$_version.tar.gz?path=themes + - 'echo "Source: $sourceURL"' + - echo "Checking sha256sum checksums" + - 'sourceSHA=$(curl -sSL "$sourceURL" | sha256sum | cut -d" " -f1)' # Update PKGBUILD parameters: version, source URL and SHA sum - echo "Updating PKGBUILDS with release information..." - - sed "s/^pkgver=.*\$/pkgver=$VERSION/" -i posy-cursors/PKGBUILD - - sed "s/^source=(\"\(.*\)::.*\").*\$/source=(\"\1::$(echo $URL_SOURCE | sed 's/\//\\\//g')\")/" -i posy-cursors/PKGBUILD - - sed "s/^sha256sums=.*\$/sha256sums=('$SHA_SOURCE')/" -i posy-cursors/PKGBUILD + - sed "s/^pkgver=.*\$/pkgver=$_version/" -i posy-cursors/PKGBUILD + - sed "s/^source=(\"\(.*\)::.*\").*\$/source=(\"\1::$(echo $sourceURL | sed 's/\//\\\//g')\")/" -i posy-cursors/PKGBUILD + - sed "s/^sha256sums=.*\$/sha256sums=('$sourceSHA')/" -i posy-cursors/PKGBUILD - # Get SHA hash for local and remote file w/o version, update if it has changed - # - 'SHA_STRIP_LOCAL=$(cat ffsend-git/PKGBUILD | sed /^pkgver=.\*/d | sha256sum | cut -d" " -f1)' - # - 'SHA_STRIP_REMOTE=$(curl -sSL "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=ffsend-git" | sed /^pkgver=.\*/d | sha256sum | cut -d" " -f1)' - - # Install dependencies - - echo "Installing required build packages..." + - echo "Installing Arch" - pacman -Syu --noconfirm sudo base-devel openssh git openssl # Make AUR package - - mkdir -p /.cargo - - chmod -R 777 /.cargo - cd posy-cursors/ - - echo "Making main source package..." + - echo "makepkg" - sudo -u nobody makepkg -c - sudo -u nobody makepkg --printsrcinfo > .SRCINFO - # Make git package if different than the remote - # - | - # if [ ! "$SHA_STRIP_LOCAL" == "$SHA_STRIP_REMOTE" ]; then - # cd ../ffsend-git - # echo "Making git source package..." - # sudo -u nobody makepkg -c - # sudo -u nobody makepkg --printsrcinfo > .SRCINFO - # else - # echo "Not making git source package, it has not changed" - # fi - cd .. # Set up SSH for publishing - mkdir -p /root/.ssh - cp ./aur.pub /root/.ssh/id_rsa.pub - - echo "$AUR_SSH_PRIVATE" | base64 -d > /root/.ssh/id_rsa + - echo "$sshAUR" | base64 -d > /root/.ssh/id_rsa - echo "Host aur.archlinux.org" >> /root/.ssh/config - echo " IdentityFile /root/.ssh/aur" >> /root/.ssh/config - echo " User aur" >> /root/.ssh/config - chmod 600 /root/.ssh/{id_rsa*,config} - eval `ssh-agent -s` - # - ssh-add /root/.ssh/id_rsa - - echo -en "${PASSPHRASE}" | ssh-add /root/.ssh/id_rsa + - echo -en "${sshPASSPHRASE}" | ssh-add /root/.ssh/id_rsa - ssh-keyscan -H aur.archlinux.org >> /root/.ssh/known_hosts - git config --global user.name "Dmitry Porunov" - git config --global user.email "dmitry@auteiy.me" @@ -86,32 +54,6 @@ package-aur: - cd aur-posy-cursors - cp ../posy-cursors/{PKGBUILD,.SRCINFO} ./ - git add PKGBUILD .SRCINFO - - git commit -m "Release v$VERSION" + - git commit -m "Release v$_version" - git push - cd .. - - # Publish binary package: clone AUR repo, commit update and push - # - git clone ssh://aur@aur.archlinux.org/ffsend-bin.git aur-ffsend-bin - # - cd aur-ffsend-bin - # - cp ../ffsend-bin/{PKGBUILD,.SRCINFO} ./ - # - git add PKGBUILD .SRCINFO - # - git commit -m "Release v$VERSION" - # - git push - # - cd .. - - # Publish git package: clone AUR repo, commit update and push - # Only publish it if it is different than the remote - # - | - # if [ ! "$SHA_STRIP_LOCAL" == "$SHA_STRIP_REMOTE" ]; then - # git clone ssh://aur@aur.archlinux.org/ffsend-git.git aur-ffsend-git - # cd aur-ffsend-git - # cp ../ffsend-git/{PKGBUILD,.SRCINFO} ./ - # git add PKGBUILD .SRCINFO - # git commit -m "Update PKGBUILD for release v$VERSION" - # git push - # cd .. - # else - # echo "Not pushing git package, it has not changed" - # fi - -# TODO: add job to test ffsend{-git} AUR packages