File: linux-mingw.yml

package info (click to toggle)
gnu-efi 4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,916 kB
  • sloc: ansic: 18,175; asm: 2,317; makefile: 321; sh: 102
file content (96 lines) | stat: -rw-r--r-- 2,559 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: Linux, MinGW

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    
    strategy:
      matrix:
        arch: [x64, ia32]
        include:
        - arch: x64
          dir: x86_64
          pkg: gcc-mingw-w64-x86-64
          tuple: x86_64-w64-mingw32-
        - arch: ia32
          dir: ia32
          pkg: gcc-mingw-w64-i686
          tuple: i686-w64-mingw32-

    steps:
    - name: Checkout repository and submodules
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Install gcc toolchain
      run: sudo apt install ${{ matrix.pkg }}

    - name: Build
      run: make ARCH=${{ matrix.arch }} CROSS_COMPILE=${{ matrix.tuple }}

    - name: Upload artifacts
      uses: actions/upload-artifact@v4
      with:
        name: ${{ matrix.arch }}
        path: ./${{ matrix.dir }}/apps/*.efi

  tests:
    runs-on: ubuntu-latest
    needs: build

    strategy:
      matrix:
        arch: [x64, ia32]
        include:
        - arch: x64
          pkg: qemu-system-x86
          qemu_arch: x86_64
          qemu_opts: -M q35
          fw_base: OVMF
        - arch: ia32
          pkg: qemu-system-x86
          qemu_arch: i386
          qemu_opts: -M pc
          fw_base: OVMF

    steps:
    - name: Set up Linux environment
      run: |
        sudo apt-get update
        sudo apt-get -y --no-install-recommends install ${{ matrix.pkg }}

    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Download artifacts
      uses: actions/download-artifact@v4
      with:
        name: ${{ matrix.arch }}

    - name: Download UEFI firmware
      run: |
        fw_arch=$(echo ${{ matrix.arch }} | tr a-z A-Z)
        fw_zip=${{ matrix.fw_base }}-${fw_arch}.zip
        curl -O https://efi.akeo.ie/${{ matrix.fw_base }}/${fw_zip}
        7z x ${fw_zip}
        rm ${fw_zip}

    - name: Download UEFI Shell
      run: |
        curl -L -O https://github.com/pbatard/UEFI-Shell/releases/download/23H2/UEFI-Shell-2.2-23H2-RELEASE.iso
        mkdir ./image
        7z x -o./image *.iso
        rm *.iso

    - name: Run tests
      run: |
         export UEFI_ARCH=${{ matrix.arch }}
         export UEFI_DIR=./image
         export QEMU_CMD="qemu-system-${{ matrix.qemu_arch }} ${{ matrix.qemu_opts }} -L . -drive if=pflash,format=raw,unit=0,file=${{ matrix.fw_base }}.fd,readonly=on -drive format=raw,file=fat:rw:image -nodefaults -nographic -serial stdio -net none"
         ./tests/gen_tests.sh ./tests/test_list.txt
         ./tests/run_tests.sh