Skip to content

Commit

Permalink
Use the Snap versioning automation of ubuntu/desktop-snaps (#14)
Browse files Browse the repository at this point in the history
Remove the versioning automation scripting from snapcraft.yaml and add
the needed changes so that the GitHub action of ubuntu/desktop-snaps
does the versioning automation.

- Hard-code "version" and "grade" metadata fields in
  snapcraft.yaml. The GitHub action modifies this file to bump the
  version. This also improves readability, having the current version
  number visible near the top of the file.

- Remove "override-pull:" in the "ghostscript" part. We use the
  versioning automation in the GitHub action and do not need our own
  script any more.

- Remove the "jq" from the "build-packages:" in the "ghostscript"
  part. This was only needed for our own versioning automation script.

- In the workflow file, .github/workflows/auto-update.yml, we add the
  parameter "version-schema: '^ghostpdl-(\d+\.\d+\.\d+)'" to the call
  of the GitHub action. This tells to the action to also perform
  versioning automation and it also tells the format of the upstream
  release tags.

- We do not remove the "adopt-info: ghostscript" even with all
  metadata fields in snapcraft.yaml being hard-coded and no "craftctl
  set ..." calls in the "ghostscript" part. It only tells the GitHub
  action which part is the supplier of the upstream version number.
  • Loading branch information
rudra-iitm authored Feb 9, 2024
1 parent 9dcd89c commit f51247a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 64 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/auto-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
repo: ${{ github.repository }}

version-schema: '^ghostpdl-(\d+\.\d+\.\d+)'
65 changes: 2 additions & 63 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: ghostscript-printer-app
base: core22
version: '10.02.1-5'
grade: stable
summary: Ghostscript Printer Application
description: |
The Ghostscript Printer Application is a PAPPL (Printer Application
Expand Down Expand Up @@ -214,70 +216,7 @@ parts:
- --enable-freetype
- --without-tesseract
- --datarootdir=/snap/ghostscript-printer-app/current/usr/share/
override-pull: |
set -eux
# Do the actual pull task
craftctl default
# Settings:
# Force channel: auto/devel/edge/stable
CHANNEL=stable
# Force package release number (integer) or "auto"
PACKAGERELEASE=auto
# Time stamp of Snap build in Snap Store
snapbuilddatehuman=`curl -s -H 'Snap-Device-Series: 16' https://api.snapcraft.io/v2/snaps/info/ghostscript-printer-app | jq -r '."channel-map" | .[] | select(.channel.name == "edge") | select(.channel.architecture == "amd64") | ."created-at"'`
snapbuilddate=`date +%s --date=$snapbuilddatehuman`
if [ -z "$snapbuilddate" ]; then
snapbuilddate=0
fi
# Time stamp of the last GIT commit of the snapping repository
pushd $CRAFT_PROJECT_DIR
gitcommitdate=`git log -1 --date=unix | grep Date: | perl -p -e 's/Date:\s*//'`
popd
if [ -z "$gitcommitdate" ]; then
gitcommitdate=0
fi
# Previous stable and development version
prevstable="$(curl -s -H 'Snap-Device-Series: 16' https://api.snapcraft.io/v2/snaps/info/ghostscript-printer-app | jq -r '."channel-map" | .[] | select(.channel.name == "stable") | select(.channel.architecture == "'$CRAFT_TARGET_ARCH'") | .version')"
if [ -z "$prevstable" ]; then
prevstable=0
fi
prevdevel="$(curl -s -H 'Snap-Device-Series: 16' https://api.snapcraft.io/v2/snaps/info/ghostscript-printer-app | jq -r '."channel-map" | .[] | select(.channel.name == "edge") | select(.channel.architecture == "'$CRAFT_TARGET_ARCH'") | .version')"
if [ -z "$prevdevel" ]; then
prevdevel=0
fi
# Previous version in general
dpkg --compare-versions "$prevdevel" lt "$prevstable" && prevversion=$prevstable || prevversion=$prevdevel
# Current upstream version of ghostscript
upstreamversion="$(git describe --tags --always | sed -E 's/ghostpdl-([0-9]+\.[0-9]+\.[0-9]+).*/\1/')"
# Determine package release number
if test "x$PACKAGERELEASE" = "xauto"; then
packagerelease=`echo "$prevversion" | perl -p -e 's/^('"$upstreamversion"'\-(\d+)|.*)$/\2/'`
if [ -z "$packagerelease" ]; then
packagerelease=1
else
if test "$gitcommitdate" -gt "$snapbuilddate"; then
packagerelease=$(( $packagerelease + 1 ))
fi
fi
else
packagerelease=$PACKAGERELEASE
fi
# Compose version string
version="$upstreamversion-$packagerelease"
# Select channel
if test "x$CHANNEL" = "xedge" -o "x$CHANNEL" = "xdevel"; then
grade=devel
elif test "x$CHANNEL" = "xstable"; then
grade=stable
else
[ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable
fi
# Set version and grade
craftctl set version="$version"
craftctl set grade="$grade"
export SNAPCRAFT_PROJECT_VERSION="$version"
build-packages:
- jq
- curl
stage-packages:
- libpaper1
Expand Down

0 comments on commit f51247a

Please sign in to comment.