snap: Build snaps on Travis without remote-build & drop i386 + armhf

Snapcraft's remote-build does not fit the requirements of CI,
so replace it with builds running directly on Travis:

1. Builds on Travis can run independently, whereas remote-build
competes for the same resource (Launchpad) and will potentially
block if multiple commits require building in succession.
2. Snapcrafts CLI for remote-build is not designed to be easily
scriptable.
3. Travis recently introduced building on arm64, so builds for
arm64 are now very fast and don't require emulation.

We do not build for armhf and i386 any more because they are
of little relevance on the desktop.
pull/548/head
Maximilian Federle 2020-02-08 15:42:01 +01:00 committed by whitequark
parent 3ed1719de2
commit 65ab59503a
3 changed files with 12 additions and 19 deletions

View File

@ -25,14 +25,16 @@ jobs:
on:
repo: solvespace/solvespace
tags: true
- stage: deploy
name: "Snap"
- &deploy-snap
stage: deploy
name: Snap amd64
os: linux
arch: amd64
dist: bionic
addons:
snaps:
- name: snapcraft
confinement: classic
snaps:
- name: snapcraft
confinement: classic
script: ./.travis/build-snap.sh
deploy:
- provider: script
@ -47,4 +49,6 @@ jobs:
on:
branch: master
tags: true
- <<: *deploy-snap
name: Snap arm64
arch: arm64

View File

@ -1,15 +1,4 @@
#!/bin/sh -xe
lp_data_dir="$HOME/.local/share/snapcraft/provider/launchpad"
lp_credentials="$lp_data_dir/credentials"
mkdir -p "$lp_data_dir"
openssl aes-256-cbc -K $encrypted_c4bc81f026a2_key -iv $encrypted_c4bc81f026a2_iv \
-in .travis/launchpad-credentials.enc \
-out "$lp_credentials" -d
chmod 600 "$lp_credentials"
./pkg/snap/build.sh remote-build \
--launchpad-user solvespace \
--launchpad-accept-public-upload \
--build-on=amd64,arm64,armhf,i386
sudo apt-get update
sudo ./pkg/snap/build.sh --destructive-mode

Binary file not shown.