[GITHUB][TRAVIS][APPVEYOR] Move all CI to GitHub Actions

This commit is contained in:
Victor Perevertkin 2020-04-29 12:07:50 +03:00 committed by Victor Perevertkin
parent 8bd9450da8
commit a0283ecea3
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
4 changed files with 128 additions and 98 deletions

127
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,127 @@
name: Build
on: [push, pull_request]
jobs:
build-gcc-i386:
name: GCC (i386)
runs-on: ubuntu-latest
steps:
- name: Install RosBE
run: |
wget https://svn.reactos.org/storage/vperevertkin/rosbe-ci.tar.zst
mkdir ${{github.workspace}}/rosbe
tar -I zstd -xvf rosbe-ci.tar.zst --directory ${{github.workspace}}/rosbe
- uses: actions/checkout@v2
with:
path: src
- name: Configure
run: |
mkdir build
echo 'cd ${{github.workspace}}/build && ${{github.workspace}}/src/configure.sh -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1' > commands
${{github.workspace}}/rosbe/RosBE.sh < commands
- name: Build
run: |
echo 'cd ${{github.workspace}}/build && cmake --build .' > commands
${{github.workspace}}/rosbe/RosBE.sh < commands
- name: Generate ISOs
run: |
echo 'cd ${{github.workspace}}/build && cmake --build . --target bootcd && cmake --build . --target livecd' > commands
${{github.workspace}}/rosbe/RosBE.sh < 'commands'
- name: Upload bootcd
uses: actions/upload-artifact@v1
with:
name: reactos-gcc-i386-${{github.sha}}
path: build/bootcd.iso
- name: Upload livecd
uses: actions/upload-artifact@v1
with:
name: reactos-gcc-i386-${{github.sha}}
path: build/livecd.iso
build-msvc-i386:
name: MSVC (i386)
runs-on: windows-latest
steps:
- name: Install packages
run: choco install ninja -y
- name: Install Flex and Bison
run: |
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
7z x flexbison.7z -O${{github.workspace}}\bin
echo "::add-path::${{github.workspace}}\bin"
- name: Add CL to PATH
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
- uses: actions/checkout@v2
with:
path: src
- name: Configure
run: |
mkdir build
cd build
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
- name: Build
working-directory: ${{github.workspace}}\build
run: cmake --build .
- name: Generate ISOs
working-directory: ${{github.workspace}}\build
run: |
cmake --build . --target bootcd
cmake --build . --target livecd
- name: Upload bootcd
uses: actions/upload-artifact@v1
with:
name: reactos-msvc-i386-${{github.sha}}
path: build/bootcd.iso
- name: Upload livecd
uses: actions/upload-artifact@v1
with:
name: reactos-msvc-i386-${{github.sha}}
path: build/livecd.iso
build-msvc-amd64:
name: MSVC (amd64)
runs-on: windows-latest
steps:
- name: Install packages
# HACK: remove all packages which contain gcc binary
run: |
choco install ninja -y
choco uninstall mingw strawberryperl -y
- name: Install Flex and Bison
run: |
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
7z x flexbison.7z -O${{github.workspace}}\bin
echo "::add-path::${{github.workspace}}\bin"
- name: Add CL to PATH
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- uses: actions/checkout@v2
with:
path: src
- name: Configure
run: |
mkdir build
cd build
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=amd64 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
- name: Build
working-directory: ${{github.workspace}}\build
run: |
cmake --build .
- name: Generate ISOs
working-directory: ${{github.workspace}}\build
run: |
cmake --build . --target bootcd
cmake --build . --target livecd
- name: Upload bootcd
uses: actions/upload-artifact@v1
with:
name: reactos-msvc-amd64-${{github.sha}}
path: build/bootcd.iso
- name: Upload livecd
uses: actions/upload-artifact@v1
with:
name: reactos-msvc-amd64-${{github.sha}}
path: build/livecd.iso

View file

@ -1,34 +0,0 @@
dist: bionic
language: cpp
addons:
apt:
sources:
- sourceline: 'deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
packages:
clang-format-9
git:
depth: 5
env:
global:
- DO_BUILD=0
- DO_CHECK=0
- CLFORMAT_BINARY=clang-format-9
jobs:
- DO_BUILD=1
before_install:
- ln -s /usr/share/clang/clang-format-9/clang-format-diff.py ./sdk/tools/;
- wget https://svn.reactos.org/amine/RosBEBinFull.tar.gz -O RosBE.tar.gz
- tar -xzf RosBE.tar.gz
- echo 'mkdir ../Build && cd ../Build && $TRAVIS_BUILD_DIR/configure.sh -DENABLE_ROSTESTS=1 && ninja -k 0 && ninja bootcd' > tmp_file
script:
- if [ $DO_BUILD == "1" ]; then
./RosBEBinFull/RosBE.sh < tmp_file;
elif [ $DO_CHECK == "1" ]; then
./sdk/tools/check_code_format.sh;
fi

View file

@ -48,7 +48,7 @@ The code of ReactOS is licensed under [GNU GPL 2.0](https://github.com/reactos/r
## Building
[![appveyor.badge]][appveyor.link] [![travis.badge]][travis.link] [![rosbewin.badge]][rosbewin.link] [![rosbeunix.badge]][rosbeunix.link] [![coverity.badge]][coverity.link]
![Build](https://github.com/reactos/reactos/workflows/Build/badge.svg) [![rosbewin.badge]][rosbewin.link] [![rosbeunix.badge]][rosbeunix.link] [![coverity.badge]][coverity.link]
To build the system it is strongly advised to use the _ReactOS Build Environment (RosBE)._
Up-to-date versions for Windows and for Unix/GNU-Linux are available from our download page at: ["Build Environment"](https://reactos.org/wiki/Build_Environment).
@ -124,15 +124,11 @@ The main development is done on [GitHub](https://github.com/reactos/reactos). We
There is also an obsolete [SVN archive repository](https://svn.reactos.org/reactos/) that is kept for historical purposes.
[travis.badge]: https://api.travis-ci.org/reactos/reactos.svg?branch=master
[appveyor.badge]: https://ci.appveyor.com/api/projects/status/github/reactos/reactos?branch=master&svg=true
[coverity.badge]: https://scan.coverity.com/projects/205/badge.svg?flat=1
[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.1.6-0688CB.svg
[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.1.2-0688CB.svg
[prwelcome.badge]: https://img.shields.io/badge/PR-welcome-0688CB.svg
[travis.link]: https://travis-ci.org/github/reactos/reactos
[appveyor.link]: https://ci.appveyor.com/project/AmineKhaldi/reactos
[coverity.link]: https://scan.coverity.com/projects/205
[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.1.6/
[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.1.2/

View file

@ -1,59 +0,0 @@
environment:
matrix:
- BuildType: "msvc-x64"
- BuildType: "msvc"
# - BuildType: "clang-cl"
# - BuildType: vssolution
version: reactos.appveyor.{build}
skip_branch_with_pr: true
clone_depth: 5
clone_folder: c:\reactos-cov
matrix:
fast_finish: true
init:
- ps: (New-Object System.Net.WebClient).DownloadFile("https://svn.reactos.org/amine/RosCMakeNinja.zip","C:\RosCMakeNinja.zip")
- 7z x C:\RosCMakeNinja.zip -oC:\RosCMakeNinja
- ps: >-
If ($env:BuildType -Match "clang-cl") {
$env:clang_configure_option="clang"
(New-Object System.Net.WebClient).DownloadFile("https://svn.reactos.org/amine/clang-cl.7z","C:\clang-cl.7z")
7z x C:\clang-cl.7z -oC:\RosCMakeNinja\bin
} Else {
$env:clang_configure_option=""
}
build_script:
- set PATH=C:\RosCMakeNinja\bin;%PATH%
- if "%BuildType%" == "msvc-x64" (
call "C:\PROGRA~2\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
) else (
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
)
- cmake --version
- md c:\ros_build
- cd c:\ros_build
- call %APPVEYOR_BUILD_FOLDER%\configure.cmd %clang_configure_option% -DENABLE_ROSTESTS=1
- ps: >-
& ninja -k0 2>&1 | select-string -pattern "\[\d+\/\d+\] " -NotMatch | %{$_.Line}
- ps: >-
& ninja bootcd 2>&1 | select-string -pattern "\[\d+\/\d+\] " -NotMatch | %{$_.Line}
test: off
deploy: off
for:
-
matrix:
only:
- BuildType: vssolution
build_script:
- set PATH=C:\RosCMakeNinja\bin;%PATH%
- call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
- cmake --version
- md C:\ros_build
- cd C:\ros_build
- call %APPVEYOR_BUILD_FOLDER%\configure.cmd VSSolution -DENABLE_ROSTESTS=1
- msbuild /verbosity:quiet /target:bootcd REACTOS.sln