lowRISC / lowrisc-toolchains

UNSUPPORTED INTERNAL toolchain builds
32 stars 14 forks source link

Add GitHub Actions workflow for building and releasing toolchains #68

Closed jwnrt closed 10 months ago

jwnrt commented 11 months ago

Summary

This PR adds a GitHub Actions workflow that should be equivalent to the Azure pipeline.

This does not remove the existing Azure pipeline.

This workflow:

Testing

I've tested this works on my fork of this repo:

  1. Release run and the release.
  2. Master branch run.

Migration strategy

If we choose to accept this PR, I suggest we do the following:

  1. Disable the Azure pipeline from the Azure web UI, but leave the configuration files in the repository.
  2. Use the GitHub action for at least one real release to ensure it's all working fine.
  3. Remove the Azure configuration and documentation from this repo.

Centos 6 -> Ubuntu 20.04

The important difference to the Azure pipeline is that it builds inside Ubuntu 20.04 and not Centos 6.

GitHub Actions does support using containers (like our centos6 one), but GitHub's actions (like checking out the repo, creating a release, etc.) use Node.js version 20 which is not available for Centos 6.

This is important because Centos 6 uses glibc 2.12 (2010-12-13) and Ubuntu 20.04 has glibc 2.31 (2020-02-01).

Toolchains built against this version of glibc will not work on distributions with an older version. @luismarques is this acceptable? We only support Ubuntu 20.04+ for OpenTitan (and other projects) but these toolchains may be used by others (though they are unsupported).

I understand that bumping the supported glibc version is a big step, so I may be able to look into getting only the build to happen inside Centos 6 as a way to get that support back.

luismarques commented 11 months ago

Toolchains built against this version of glibc will not work on distributions with an older version. @luismarques is this acceptable? We only support Ubuntu 20.04+ for OpenTitan (and other projects) but these toolchains may be used by others (though they are unsupported).

I have a way to make the binaries not depend on libc, though the compilation method is a bit hacky. I'll see if I can dig it up.

jwnrt commented 10 months ago

I have disabled the Azure pipeline in the web UI.

I'll wait until we've used the GitHub action at least once until I remove the Azure configuration.