Skip to content

Commit

Permalink
Update README (top, GHA) and GHA example-full
Browse files Browse the repository at this point in the history
  • Loading branch information
ralphlange committed Jul 22, 2022
1 parent c6bc90b commit aea7906
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 31 deletions.
47 changes: 29 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,10 @@ for more details.

### [GitHub Actions](https://github.com/)
- 20 parallel runners on Linux/Windows (5 runners on MacOS)
- Ubuntu 16/18/20, MacOS 10.15, Windows Server 2016/2019/2022
- Ubuntu 18/20/22, MacOS 11/12, Windows Server 2019/2022
- Compile natively on Linux (gcc, clang)
- Compile natively on MacOS (clang)
- Compile natively on Windows (gcc/MinGW, Visual Studio 2017/2019/2022)
- Compile natively on Windows (gcc/MinGW, Visual Studio 2019/2022)
- Cross-compile for Windows 32bit and 64bit using MinGW and WINE
- Cross-compile for RTEMS 4.9 and 4.10 (pc386, Base >= 3.15)
- Cross-compile for RTEMS 5 (10 BSPs, Base >= 7.0.5.1)
Expand Down Expand Up @@ -283,8 +283,8 @@ Feel free to suggest more default settings using a Pull Request.
## RTEMS
Setting `RTEMS` to the RTEMS version number (`4.9`, `4.10` or `5`)
enables cross-compiling to RTEMS on supported CI services.
Cross-compiling to RTEMS versions 4.9, 4.10 or 5 is supported
on supported CI services. For configuration see below.
Tests can also be run cross-platform, using `qemu`.
The RTEMS 5 builds now include most of the BSPs with configuration in Base:
Expand All @@ -301,26 +301,37 @@ The RTEMS 5 builds now include most of the BSPs with configuration in Base:
- xilinx_zynq_a9_qemu w/ libbsd
Build configuration [can be found here][ref.rtems5build].
Set `RTEMS_TARGET` to configure the EPICS target architecture and
`RSB_BUILD` to select the RTEMS toolchain release name/data from
Set `RSB_BUILD` to select the RTEMS toolchain release name/data from
https://github.com/mdavidsaver/rsb/releases.
RTEMS 5 builds need to be switched to a newer ubuntu version
RTEMS 5 builds need to be switched to ubuntu version >= 20
(aka. **os: ubuntu-20.04** with GitHub Actions,
**dist: focal** with Travis-CI or
**image: ubuntu:focal** with GitLab CI/CD).
## LINUX_CROSS
Setting the `LINUX_CROSS_<name>` environment variable enables cross-compiling
to Linux for the provided target. The value of the environment variable should
be the compiler prefix to be used.
For example, to cross-compile for linux-arm with hard floating points
- ensure you have the `g++-arm-linux-gnueabihf` package installed, if your CI
is on Ubuntu or Debian
- set the environment variable `LINUX_CROSS_arm=arm-linux-gnueabihf`
## Cross Compilation
Setting the `CI_CROSS_TARGETS` environment variable enables cross-compiling
from Linux to the provided targets architectures.
The value of the environment variable must contain the EPICS architecture
and - depending on the target - may contain additional information like
the compiler prefix to be used or the version of the target OS.
Multiple cross-targets can be added to the `CI_CROSS_TARGETS` variable
by separating them with a colon (`:`) character.
For example, possible values are:
- linux-aarch64
- linux-arm@arm-linux-gnueabi
- linux-arm@arm-linux-gnueabihf
- linux-ppc
- linux-ppc64
- win32-x86-mingw
- windows-x64-mingw
- [email protected]
- [email protected]
- RTEMS-pc686-qemu@5
## Debugging
Expand Down
4 changes: 2 additions & 2 deletions github-actions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
## Features

- 20 parallel runners on Linux/Windows (5 runners on MacOS)
- Ubuntu 16/18/20, MacOS 10.15, Windows Server 2016/2019
- Ubuntu 18/20/22, MacOS 11/12, Windows Server 2019/2022
- Compile natively on Linux (gcc, clang)
- Compile natively on MacOS (clang)
- Compile natively on Windows (gcc/MinGW, Visual Studio 2017/2019/2022)
- Compile natively on Windows (gcc/MinGW, Visual Studio 2019/2022)
- Cross-compile for Windows 32bit and 64bit using MinGW and WINE
- Cross-compile for RTEMS 4.9 and 4.10 (pc386, Base >= 3.15)
- Cross-compile for RTEMS 5 (10 BSPs, Base >= 7.0.5.1)
Expand Down
52 changes: 41 additions & 11 deletions github-actions/ci-scripts-build.yml.example-full
Original file line number Diff line number Diff line change
Expand Up @@ -119,20 +119,15 @@ jobs:
configuration: default
name: "Ub-20 clang-10"

- os: macos-latest
- os: macos-11
cmp: clang
configuration: default
name: "MacOS clang-12"
name: "MacOS clang-13"

- os: windows-2016
cmp: vs2017
- os: macos-12
cmp: clang
configuration: default
name: "Win2016 MSC-17"

- os: windows-2016
cmp: vs2017
configuration: static
name: "Win2016 MSC-17, static"
name: "MacOS clang-13"

- os: windows-2019
cmp: gcc
Expand Down Expand Up @@ -187,11 +182,46 @@ jobs:
- name: Build main module
run: python .ci/cue.py build
- name: Run main module tests
run: python .ci/cue.py test
run: python .ci/cue.py -T 15M test
- name: Upload tapfiles Artifact
uses: actions/upload-artifact@v2
with:
name: tapfiles ${{ matrix.name }}
path: '**/O.*/*.tap'
- name: Collect and show test results
run: python .ci/cue.py test-results

build-cross:
name: cross ${{ matrix.cross }} / ${{ matrix.cmp }} / ${{ matrix.configuration }}
runs-on: ubuntu-20.04
env:
CMP: gcc
BCFG: default
CI_CROSS_TARGETS: ${{ matrix.cross }}
APT: re2c
strategy:
fail-fast: false
matrix:
# configuration: [default, static, debug, static-debug]
configuration: [default]
cross:
- linux-aarch64
- linux-arm@arm-linux-gnueabi
- linux-arm@arm-linux-gnueabihf
- linux-ppc
- linux-ppc64
- win32-x86-mingw
- windows-x64-mingw
- [email protected]
- [email protected]
- RTEMS-pc686-qemu@5
steps:
- uses: actions/checkout@v2
- name: Prepare and compile dependencies
run: python cue.py prepare
- name: Build main module
run: python cue.py build
- name: Run main module tests
run: python cue.py -T 15M test
- name: Collect and show test results
run: python cue.py test-results

0 comments on commit aea7906

Please sign in to comment.