Integrate Arch Linux into CI pipeline


Now that we have a semi-stable situation on Arch Look into integrating Arch Linux into the CI pipeline.

This should cover:

  • Procure a suitable image
  • Have the image refreshed frequently enough (or evaluate if we could just run pacman -Syu inside)
  • Hook it up to spread tests


Started working on this a bit. I’m using Linode provided Arch Linux 2017.07.01 image for now. The image is not yet updated during tests. This may lead to some problems as package installation on Arch is special. Normally one is supposed to call pacman like this pacman -Syu <pkgname> when installing package. The reason being that pacman’s version tracking is somewhat loose compared to rpm or deb and will not automatically update package dependencies if those are already installed.

Early PR is open right here:


Just hit this exact problem when trying to install core snap:

linode:arch-2017.07.01 .../tests/unit/go# snap install --edge core                                                                                                        
error: cannot perform the following tasks:                                                                                                                                
- Mount snap "core" (3542) ([start var-lib-snapd-snap-core-3542.mount] failed with exit status 1: Job for var-lib-snapd-snap-core-3542.mount failed.                      
See "systemctl  status var-lib-snapd-snap-core-3542.mount" and "journalctl  -xe" for details.                                                                             
linode:arch-2017.07.01 .../tests/unit/go# systemctl  status var-lib-snapd-snap-core-3542.mount                                                                            
● var-lib-snapd-snap-core-3542.mount - Mount unit for core                                                                                                                
   Loaded: loaded (/etc/systemd/system/var-lib-snapd-snap-core-3542.mount; enabled; vendor preset: disabled)                                                              
   Active: failed (Result: exit-code) since Thu 2017-11-23 13:15:37 UTC; 13s ago                                                                                          
    Where: /var/lib/snapd/snap/core/3542                                                                                                                                  
     What: /var/lib/snapd/snaps/core_3542.snap                                                                                                                            
  Process: 22034 ExecMount=/usr/bin/mount /var/lib/snapd/snaps/core_3542.snap /var/lib/snapd/snap/core/3542 -t squashfs -o nodev,ro (code=exited, status=1/FAILURE)       
Nov 23 13:15:37 localhost systemd[1]: Mounting Mount unit for core...                                                                                                     
Nov 23 13:15:37 localhost systemd[1]: var-lib-snapd-snap-core-3542.mount: Mount process exited, code=exited status=1                                                      
Nov 23 13:15:37 localhost systemd[1]: var-lib-snapd-snap-core-3542.mount: Failed with result 'exit-code'.                                                                 
Nov 23 13:15:37 localhost systemd[1]: Failed to mount Mount unit for core.                                                                                                
linode:arch-2017.07.01 .../tests/unit/go# mount /var/lib/snapd/snaps/core_3542.snap /var/lib/snapd/snap/core/3542 -t squashfs -o nodev,ro                                 
mount: /usr/lib/ version `MOUNT_2.30' not found (required by mount)

Had to run pacman -Syu to install the updates and retry the operation.


This is complete now. Arch is part of the regular test suite.