name: Build & Test on: [push, pull_request] jobs: Check-Skip: if: | !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[skip gha]') runs-on: ubuntu-latest steps: - run: echo not skip Ubuntu-1604: needs: Check-Skip runs-on: ubuntu-16.04 env: MRUBY_CONFIG: ci/gcc-clang CC: gcc steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test run: rake -m test:build && rake test:run Ubuntu-1804-gcc: needs: Check-Skip runs-on: ubuntu-18.04 env: MRUBY_CONFIG: ci/gcc-clang CC: gcc steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test run: rake -m test:build && rake test:run Ubuntu-1804-clang: needs: Check-Skip runs-on: ubuntu-18.04 env: MRUBY_CONFIG: ci/gcc-clang CC: clang steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test run: rake -m test:build && rake test:run macOS: needs: Check-Skip runs-on: macos-latest env: MRUBY_CONFIG: ci/gcc-clang CC: clang steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test run: rake -m test:build && rake test:run Windows-MinGW: needs: Check-Skip runs-on: windows-latest env: MRUBY_CONFIG: ci/gcc-clang CC: gcc steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test run: rake -m test:build && rake test:run Windows-Cygwin: needs: Check-Skip runs-on: windows-latest env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true MRUBY_CONFIG: ci/gcc-clang CC: gcc installer-path: '%TMP%\cygwin-setup.exe' cygwin-root: C:\cygwin package-dir: C:\cygwin-package cache-version: v1 steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ${{ env.package-dir }} key: ${{ runner.os }}-cygwin-${{ env.cache-version }} - name: Download Cygwin installer shell: cmd run: > bitsadmin /transfer download /priority foreground https://cygwin.com/setup-x86_64.exe ${{ env.installer-path }} - name: Install Cygwin shell: cmd run: > ${{ env.installer-path }} --quiet-mode --no-shortcuts --no-startmenu --no-desktop --no-admin --only-site --site http://mirrors.kernel.org/sourceware/cygwin/ --root ${{ env.cygwin-root }} --local-package-dir ${{ env.package-dir }} --packages gcc-core,gcc-g++,ruby - name: Set PATH for Cygwin run: | echo '::set-env name=PATH::${{ env.cygwin-root }}\bin;${{ env.cygwin-root }}\usr\bin' - name: Ruby version shell: cmd run: ruby -v - name: Compiler version run: ${{ env.CC }} --version - name: Build and test shell: cmd run: ruby /usr/bin/rake -m test:build && ruby /usr/bin/rake test:run - name: Set PATH for cache archiving (tar) # set Windows path so that Cygwin tar is not used for cache archiving run: echo '::set-env name=PATH::C:\windows\System32' Windows-VC: needs: Check-Skip runs-on: windows-latest env: MRUBY_CONFIG: ci/msvc steps: - uses: actions/checkout@v2 - name: Ruby version run: ruby -v - name: Build and test shell: cmd run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" rake -m test:build && rake test:run