https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a0283ecea3c10d081320a6fab0821a03cda6b7f8
commit a0283ecea3c10d081320a6fab0821a03cda6b7f8 Author: Victor Perevertkin <victor.perevert...@reactos.org> AuthorDate: Wed Apr 29 12:07:50 2020 +0300 Commit: Victor Perevertkin <vic...@perevertkin.ru> CommitDate: Mon May 4 19:53:16 2020 +0300 [GITHUB][TRAVIS][APPVEYOR] Move all CI to GitHub Actions --- .github/workflows/build.yml | 127 ++++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 34 ------------ README.md | 6 +-- appveyor.yml | 59 -------------------- 4 files changed, 128 insertions(+), 98 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..b533cb4f214 --- /dev/null +++ b/.github/workflows/build.yml @@ -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 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9f123a95180..00000000000 --- a/.travis.yml +++ /dev/null @@ -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 diff --git a/README.md b/README.md index f093644398f..bf96c76dab8 100644 --- a/README.md +++ b/README.md @@ -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/ diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 1c05af1dd27..00000000000 --- a/appveyor.yml +++ /dev/null @@ -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