Autoupdate and push PKGBUILD to AUR with each new release
This commit is contained in:
		
							parent
							
								
									4ad5ddec00
								
							
						
					
					
						commit
						cbd402db9b
					
				| @ -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 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user