Skip to content

Commit

Permalink
snap: Build snaps on Travis without remote-build & drop i386 + armhf
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ppd authored and whitequark committed Feb 8, 2020
1 parent 3ed1719 commit 65ab595
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 19 deletions.
16 changes: 10 additions & 6 deletions .travis.yml
Expand Up @@ -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
Expand All @@ -47,4 +49,6 @@ jobs:
on:
branch: master
tags: true

- <<: *deploy-snap
name: Snap arm64
arch: arm64
15 changes: 2 additions & 13 deletions .travis/build-snap.sh
@@ -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 removed .travis/launchpad-credentials.enc
Binary file not shown.

4 comments on commit 65ab595

@ppd
Copy link
Member Author

@ppd ppd commented on 65ab595 Feb 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@whitequark Maybe we should remove the dropped architectures from the store to avoid confusion: https://forum.snapcraft.io/t/is-it-possible-to-drop-an-unsupported-architecture-from-the-store/10510/2

@ppd
Copy link
Member Author

@ppd ppd commented on 65ab595 Feb 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And deployment failed. We have to run snapcraft with sudo, now that we run the build in destructive mode...

@whitequark
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should remove the dropped architectures from the store to avoid confusion:

Closed the channel, the next push should fix this.

@ppd
Copy link
Member Author

@ppd ppd commented on 65ab595 Feb 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#548 should fix the last brain fart

Please sign in to comment.