ci: adding windows #73
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Sentry kernel build on Windows | |
on: | |
workflow_dispatch: | |
push: | |
pull_request: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
MSYSTEM: MINGW64 | |
# using /home/build as home, as buildbot is using user build. Cache is still in /cache | |
# This allows the usage of automated ssh key installation step | |
jobs: | |
build_u5_w10: | |
defaults: | |
run: | |
shell: msys2 {0} | |
runs-on: windows-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
set-safe-directory: true | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: >- | |
base-devel | |
dtc | |
libssh2 | |
curl | |
bash | |
git | |
mercurial | |
cmake | |
unzip | |
python-brotli | |
mingw-w64-x86_64-srecord | |
mingw-w64-x86_64-cmake | |
mingw-w64-x86_64-glib2 | |
mingw-w64-x86_64-libxml2 | |
mingw-w64-x86_64-ninja | |
mingw-w64-x86_64-pkg-config | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-pdcurses | |
mingw-w64-x86_64-swig | |
mingw-w64-x86_64-python | |
mingw-w64-x86_64-python-setuptools | |
mingw-w64-x86_64-python-pip | |
mingw-w64-x86_64-python-fastjsonschema | |
mingw-w64-x86_64-python-cffi | |
mingw-w64-x86_64-python-lxml | |
mingw-w64-x86_64-python-pillow | |
mingw-w64-x86_64-python-types-pyyaml | |
mingw-w64-x86_64-python-libsass | |
mingw-w64-x86_64-libjpeg-turbo | |
mingw-w64-x86_64-python-lief | |
mingw-w64-x86_64-objfw | |
mingw-w64-x86_64-meson | |
mingw-w64-x86_64-meson-python | |
env: | |
MSYS2_ARCH: x86_64 | |
MSYS2_CURSES: pdcurses | |
COMPILER: gcc | |
TOOLCHAIN: toolchain | |
- name: Install local dependencies | |
run: | | |
python3 -m pip --disable-pip-version-check install -r requirements.txt | |
env: | |
MSYS2_ARCH: x86_64 | |
MSYS2_CURSES: pdcurses | |
COMPILER: gcc | |
TOOLCHAIN: toolchain | |
- run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y | |
- name: Clone cross-files | |
uses: actions/checkout@v4 | |
with: | |
ref: 'using-local-dirs' | |
repository: 'outpost-os/meson-cross-files' | |
path: crossfiles | |
- name: Deploy cross-files | |
run: | | |
cp $GITHUB_WORKSPACE\\crossfiles\\mingw64-arm-none-eabi-gcc.ini $GITHUB_WORKSPACE | |
echo "MESON_CROSS_FILES=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@v1 | |
with: | |
toolchain: nightly | |
targets: thumbv7m-none-eabi,thumbv7em-none-eabi,thumbv7em-none-eabihf | |
components: clippy,rustfmt | |
- name: Setup C toolchain | |
uses: outpost-os/action-setup-compiler@use-local-dir | |
with: | |
compiler: gcc | |
triple: arm-none-eabi | |
ref: 13.2.Rel1 | |
- name: set safe dir for dunami (to be removed) | |
run: | | |
git config --global --add safe.directory '*' | |
- name: defconfig | |
run: | | |
defconfig configs/nucleo_u5a5_autotest_defconfig | |
- name: Meson Build | |
run: | | |
meson subprojects download || true | |
meson subprojects foreach python3 -m pip install -r requirements.txt || true | |
meson setup -Dconfig=.config -Ddts=dts/examples/nucleo_u5a5_autotest.dts -Ddts-include-dirs=dts --cross-file mingw64-arm-none-eabi-gcc.ini builddir | |
ninja -C builddir | |
ninja -C builddir test | |
ninja -C builddir coverage | |
ninja -C builddir install | |
meson dist --no-tests --include-subprojects | |
env: | |
MSYS2_ARCH: x86_64 | |
MSYS2_CURSES: pdcurses | |
COMPILER: gcc | |
TOOLCHAIN: toolchain | |
- name: Meson postcheck | |
if: failure() | |
run: | | |
cat builddir/meson-logs/meson-log.txt |