Use GitHub Actions for builds

Michael Mattioli mattiolimichael at gmail.com
Mon Dec 2 19:02:36 EST 2019


I sorta kinda got macOS to work. You can see the build log here:
https://pipelines.actions.githubusercontent.com/maPQCN5hQS1QALnR9eGA8bjyfQToKa7Rzo1o1MArufvRc8nQZL/_apis/pipelines/1/runs/30/signedlogcontent/6?urlExpires=2019-12-02T23%3A58%3A13.2192164Z&urlSigningMethod=HMACV1&urlSignature=WpUdDNoZLUsf4MRxymzD9WM99NCc9elIU6oD9VbwI7w%3D

If you scroll to the bottom you'll see there seems to be a compile error.

I also had to add automake to the brew instal list for autoreconf.

For the Linux builds, I was able to define a matrix so that the commands to
setup, build, etc. are re-used. I also added the DEBIAN_FRONTEND env
variable; I previously tried setting this through the .yml file but adding
it with sudo seemed to work better. The last piece I'm trying to figure out
is how to set environment variables on a per-job basis when using a matrix.
At the end, when it does the git ls-file check it always exits with exit
code 1...

Check out this particular run to see all of the builds:
https://github.com/mmattioli/krb5/runs/330195951

Mike


On Mon, Dec 2, 2019 at 5:35 PM Greg Hudson <ghudson at mit.edu> wrote:

> On 12/2/19 6:12 AM, Michael Mattioli wrote:
> > What compiler, flags, etc. did you want to test on macOS? They only
> provide the latest version of macOS (10.15, Catalina). I can give it a spin
> and see if it works.
>
> clang, and the same flags as the first Ubuntu clang job.  I tried to set
> this up with Travis a couple of years ago and ran into two issues:
>
> 1. It was too slow--generally about 15 minutes to run a build and check
> instead of 7-8.  Github Actions uses the same macOS hosting provider as
> Travis (Macstadium), so might have the same problem.  But it's worth a try.
>
> 2. The macOS images have System Integrity Protection enabled, which
> interferes with the test suite.  The most significant problem is that
> the shell clears DYLD_LIBRARY_PATH from the environment.  There also
> appear to be some signal restrictions which break the iprop tests.  My
> attempts to work around these problems got as far as
>
> https://github.com/greghudson/krb5/commit/f99f4e9c79372516a8905e840e9ddc696c97c81c
> but the make-host-keytab.plin change is broken; it needs to suppress
> output and ignore errors when running one of the kadmin ank commands,
> without using the shell, and I couldn't find an easy way to do that in
> Perl.  That's a surmountable problem, but I got frustrated with the slow
> builds and stopped at that point.  It's possible that Github Actions
> turns off SIP on its macOS runners; otherwise we'll need the same
> workarounds.
>
> [I wrote:]
> >> while the Travis integration currently doesn't skip anything.  I will
> >> look into why slapd can't be installed and why resolv_wrapper isn't
> found.
>
> slapd can be installed if we do "sudo DEBIAN_FRONTEND=noninteractive
> apt-get ...".  Travis arranges for the noninteractive front-end by
> default.  I submitted feedback to github that they should do so as well.
>
> resolv_wrapper also isn't found in the current Travis CI (I was wrong
> about that), because it's not in the Ubuntu package repository in 16.04.
>  That's fixable if we move to 18.04.
>
> I haven't worked through the Windows build issue yet.
>
> I'm dissatisfied with the amount of repetition in build.yml, and will
> see if I can find any good ways to reduce it.  We can of course create a
> shell script like we did for Travis.
>


More information about the krbdev mailing list