Skip to content
  • Alex Crichton's avatar
    48eb92c1
    Refactor how CI works in this repository (#588) · 48eb92c1
    Alex Crichton authored
    There are a number of changes in this commit aimed at addressing #587
    and making it easier to test #586 in CI. Notable changes here are:
    
    * The matrix of what to test is much different from before. One matrix
    entry now builds just one target and optionally tests that target.
    
    * The CI matrix ensures that wasi-libc builds on a variety of platforms,
    e.g. Windows/macOS/Linux as well as Linux aarch64.
    
    * The CI matrix has one entry for building with an older version of
    LLVM. This version was bumped from LLVM to LLVM 11 since LLVM is
    installed through `apt-get`, not through downloads any more.
    
    * On Linux LLVM/Clang are downloaded through `apt-get` instead of from
    llvm-project binaries to avoid dealing with `libtinfo5` and
    dependencies.
    
    * The CI matrix has a test job per-target. This can be expanded/shrunk
    as necessary but currently everything is tested with LLVM 16 (as before)
    and only on Linux (also as before). The test run is seqeunced to happen
    after the build of libc itself.
    
    * The CI matrix has split out V8 headless tests into their own job to
    avoid running multiple suites of tests in a single job.
    
    * Installation of LLVM is refactored to a separate action to reduce the
    noise in `main.yml`.
    
    * Setting `TARGET_TRIPLE` can now be done through environment variables
    as opposed to only through arguments to `make`.
    
    * Handling of `BULITINS_LIB` has improved. Previously the build target
    for `libc_so` would modify the compiler's resource directory and this is
    updated to use a custom directory in `OBJDIR`.
    
    * Arranging compiler-rt for tests is now done with `-resource-dir`
    instead of copying the directory into the system compiler's location.
    
    Overall it's the intention that no amount of testing is lost in this PR.
    The goal is to expand things out in such a way that it's much easier to
    add one-off tests of wasi-libc in various build configurations and such.
    The theory is that this is as "simple" as adding a new matrix entry,
    copied from previous ones, customized with various variables and
    environment variables to affect the build (e.g. `CFLAGS`).
    
    Closes #587
    48eb92c1
    Refactor how CI works in this repository (#588)
    Alex Crichton authored
    There are a number of changes in this commit aimed at addressing #587
    and making it easier to test #586 in CI. Notable changes here are:
    
    * The matrix of what to test is much different from before. One matrix
    entry now builds just one target and optionally tests that target.
    
    * The CI matrix ensures that wasi-libc builds on a variety of platforms,
    e.g. Windows/macOS/Linux as well as Linux aarch64.
    
    * The CI matrix has one entry for building with an older version of
    LLVM. This version was bumped from LLVM to LLVM 11 since LLVM is
    installed through `apt-get`, not through downloads any more.
    
    * On Linux LLVM/Clang are downloaded through `apt-get` instead of from
    llvm-project binaries to avoid dealing with `libtinfo5` and
    dependencies.
    
    * The CI matrix has a test job per-target. This can be expanded/shrunk
    as necessary but currently everything is tested with LLVM 16 (as before)
    and only on Linux (also as before). The test run is seqeunced to happen
    after the build of libc itself.
    
    * The CI matrix has split out V8 headless tests into their own job to
    avoid running multiple suites of tests in a single job.
    
    * Installation of LLVM is refactored to a separate action to reduce the
    noise in `main.yml`.
    
    * Setting `TARGET_TRIPLE` can now be done through environment variables
    as opposed to only through arguments to `make`.
    
    * Handling of `BULITINS_LIB` has improved. Previously the build target
    for `libc_so` would modify the compiler's resource directory and this is
    updated to use a custom directory in `OBJDIR`.
    
    * Arranging compiler-rt for tests is now done with `-resource-dir`
    instead of copying the directory into the system compiler's location.
    
    Overall it's the intention that no amount of testing is lost in this PR.
    The goal is to expand things out in such a way that it's much easier to
    add one-off tests of wasi-libc in various build configurations and such.
    The theory is that this is as "simple" as adding a new matrix entry,
    copied from previous ones, customized with various variables and
    environment variables to affect the build (e.g. `CFLAGS`).
    
    Closes #587
Loading