2 on: [push, pull_request]
10 config: [Debug, Release]
12 runs-on: ubuntu-latest
14 - name: Get RosBE build specifics
17 gcc -march=native -Q --help=target | grep "\-march= " | awk '{print $NF}'
18 echo ::set-output name=march-sha::$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}')
19 echo ::set-output name=git-sha::$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}')
20 wget https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
23 uses: actions/cache@v2
26 key: RosBE-CI-${{runner.os}}-${{steps.get_rosbe_spec.outputs.march-sha}}-${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}
28 if: ${{ steps.get_rosbe.outputs.cache-hit != 'true' }}
30 chmod +x build_rosbe_ci.sh
31 ./build_rosbe_ci.sh ${{github.workspace}}/RosBE-CI
32 - name: Install ccache
33 run: sudo apt install ccache
35 if: ${{ matrix.compiler == 'clang' }}
37 export LLVM_VERSION=12
38 wget https://apt.llvm.org/llvm.sh
40 sudo ./llvm.sh $LLVM_VERSION
41 echo "D_CLANG_VERSION=-DCLANG_VERSION=$LLVM_VERSION" >> $GITHUB_ENV
42 - name: Source checkout
43 uses: actions/checkout@v2
46 - name: Set up cache for ccache
47 uses: actions/cache@v2
50 key: ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
52 ccache-${{matrix.compiler}}-${{matrix.arch}}-
53 - name: Set ccache settings
55 echo "CCACHE_BASEDIR=${{github.workspace}}" >> $GITHUB_ENV
56 echo "CCACHE_DIR=${{github.workspace}}/ccache" >> $GITHUB_ENV
57 echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
58 echo "CCACHE_SLOPPINESS=time_macros" >> $GITHUB_ENV
59 - name: Ease ccache compiler check (GCC)
60 if: ${{ matrix.compiler == 'gcc' }}
61 run: echo "CCACHE_COMPILERCHECK=string:${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}" >> $GITHUB_ENV
63 run: echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
65 run: echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
67 run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
68 - name: Print ccache statistics
71 uses: actions/upload-artifact@v2
73 name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
81 toolset: ['14.2', '14.1'] # VS 2019, 2017
83 config: [Debug, Release]
85 - arch: i386 # Not compiling on amd64 prompt
86 toolset: '14.0' # VS 2015
88 runs-on: windows-latest
91 run: choco install -y ninja
92 - name: Install Flex & Bison
94 curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
95 7z x flexbison.7z -O${{github.workspace}}\bin
96 echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
97 echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
98 echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
99 - name: Activate VS cmd (x86)
100 if: ${{ matrix.arch == 'i386' }}
101 uses: ilammy/msvc-dev-cmd@v1
104 toolset: ${{matrix.toolset}}
105 - name: Activate VS cmd (amd64)
106 if: ${{ matrix.arch == 'amd64' }}
107 uses: ilammy/msvc-dev-cmd@v1
110 toolset: ${{matrix.toolset}}
111 - name: Source checkout
112 uses: actions/checkout@v2
116 run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
118 run: cmake --build build -- -k0
119 - name: Generate ISOs
120 run: cmake --build build --target bootcd --target livecd
122 uses: actions/upload-artifact@v2
124 name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
128 - name: Upload debug symbols
129 if: ${{ matrix.config == 'Debug' }}
130 uses: actions/upload-artifact@v2
132 name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
138 toolset: ['14.2', '14.1'] # VS 2019, 2017
141 runs-on: windows-latest
143 - name: Install ninja
144 run: choco install -y ninja
145 - name: Install Flex & Bison
147 curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
148 7z x flexbison.7z -O${{github.workspace}}\bin
149 echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
150 echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
151 echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
152 - name: Activate VS cmd (arm)
153 uses: ilammy/msvc-dev-cmd@v1
156 toolset: ${{matrix.toolset}}
157 - name: Source checkout
158 uses: actions/checkout@v2
162 run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
164 run: cmake --build build --target rapps
170 config: [Debug, Release]
172 runs-on: windows-latest
174 - name: Install ninja
175 run: choco install -y ninja
178 choco install -y llvm
179 echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
180 - name: Install Flex & Bison
182 curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
183 7z x flexbison.7z -O${{github.workspace}}\bin
184 echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
185 echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
186 echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
187 - name: Activate VS cmd (x86)
188 if: ${{ matrix.arch == 'i386' }}
189 uses: ilammy/msvc-dev-cmd@v1
192 toolset: '14.1' # latest masm build known to make bootable builds
193 - name: Activate VS cmd (amd64)
194 if: ${{ matrix.arch == 'amd64' }}
195 uses: ilammy/msvc-dev-cmd@v1
198 toolset: '14.1' # latest masm build known to make bootable builds
199 - name: Add LLVM to PATH
200 run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
201 - name: Source checkout
202 uses: actions/checkout@v2
206 run: cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=TRUE
208 run: cmake --build build -- -k0
209 - name: Generate ISOs
210 run: cmake --build build --target bootcd --target livecd
212 uses: actions/upload-artifact@v2
214 name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
218 - name: Upload debug symbols
219 if: ${{ matrix.config == 'Debug' }}
220 uses: actions/upload-artifact@v2
222 name: reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
227 runs-on: windows-latest
229 - name: Install Flex and Bison
231 curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
232 7z x flexbison.7z -O${{github.workspace}}\bin
233 echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
234 echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
235 echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
236 - name: Add CL to PATH
237 uses: ilammy/msvc-dev-cmd@v1
240 - uses: actions/checkout@v2
247 cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
249 run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd