name: Test on: pull_request jobs: bower: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v2 with: node-version: 8 - name: Install Bower run: npm install -g bower - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/bower - name: Run tests run: script/test bower bundler: runs-on: ubuntu-latest strategy: matrix: bundler: [ '~> 1.15.0', '~> 1.16.0', '~> 1.17.0', '~> 2.0.0' ] steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - name: Set up Bundler run: | yes | gem uninstall bundler --all gem install bundler -v "${{ matrix.bundler }}" - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/bundler - name: Run tests run: script/test bundler cabal: runs-on: ubuntu-latest strategy: matrix: ghc: [ '8.2', '8.6', '8.8', '8.10' ] cabal: [ '2.4', '3.0', '3.2' ] steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - name: Setup Haskell uses: haskell/actions/setup@v1 with: ghc-version: ${{ matrix.ghc }} cabal-version: ${{ matrix.cabal }} - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/cabal - name: Run tests run: script/test cabal composer: runs-on: ubuntu-latest strategy: matrix: php: [ '7.3', '7.4' ] steps: - uses: actions/checkout@v2 - name: Setup php uses: nanasess/setup-php@v3.0.6 with: php-version: ${{ matrix.php }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/composer - name: Run tests run: script/test composer core: runs-on: ubuntu-latest strategy: matrix: ruby: [ 2.5, 2.6, 2.7 ] steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{matrix.ruby}} - name: Set up Bundler run: gem install bundler - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Build and lint run: bundle exec rake rubocop build - name: Core functionality tests run: script/test core dep: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup go uses: actions/setup-go@v1 with: go-version: 1.10.x - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/go - name: Run tests run: script/test dep go: runs-on: ubuntu-latest strategy: matrix: go: [ '1.10.x', '1.11.x', '1.12.x', '1.13.x', '1.14.x', '1.15.x' ] steps: - uses: actions/checkout@v2 - name: Setup go uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/go - name: Run tests run: script/test go gradle: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Gradle version run: test/fixtures/gradle/gradlew --quiet --version - name: Run tests run: script/test gradle manifest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Run tests run: script/test manifest mix: runs-on: ubuntu-latest strategy: matrix: otp: [21.x, 22.x, 23.x] elixir: [ 1.10.x, 1.11.x ] steps: - uses: actions/checkout@v2 - uses: erlef/setup-elixir@v1.6.0 with: otp-version: ${{matrix.otp}} elixir-version: ${{matrix.elixir}} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/mix - name: Run tests run: script/test mix npm: runs-on: ubuntu-latest strategy: matrix: node_version: [ 10, 12, 14, 15 ] steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v2 with: node-version: ${{ matrix.node_version }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/npm - name: Run tests run: script/test npm nuget: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup dotnet uses: actions/setup-dotnet@v1 with: dotnet-version: 3.1.202 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/nuget - name: Run tests run: script/test nuget pip: runs-on: ubuntu-latest strategy: matrix: python: [ '2.x', '3.x' ] steps: - uses: actions/checkout@v2 - name: Setup python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python }} architecture: x64 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Install virtualenv run: pip install virtualenv - name: Set up fixtures run: script/source-setup/pip - name: Run tests run: script/test pip pipenv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup python uses: actions/setup-python@v1 with: python-version: '3.x' architecture: x64 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Install pipenv run: pip install pipenv - name: Set up fixtures run: script/source-setup/pipenv - name: Run tests run: script/test pipenv swift: runs-on: ubuntu-latest strategy: matrix: swift: [ "5.4", "5.3" ] steps: - uses: actions/checkout@v2 - name: Setup Swift uses: fwal/setup-swift@v1 with: swift-version: ${{ matrix.swift }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/swift - name: Run tests run: script/test swift yarn: runs-on: ubuntu-latest strategy: matrix: # not using 1.0.0 because it doesn't support `yarn list --production` yarn_version: [ 1.4.0, latest ] steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v2 with: node-version: 12 - name: Install Yarn run: npm install -g yarn@${YARN_VERSION} env: YARN_VERSION: ${{ matrix.yarn_version }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: bundle lock - uses: actions/cache@v1 with: path: vendor/gems key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }} - name: Bootstrap run: script/bootstrap - name: Set up fixtures run: script/source-setup/yarn - name: Run tests run: script/test yarn