name: CI on: push: branches: - master pull_request: branches: - master jobs: lint: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v2 - name: Set up Ruby 2.3 uses: ruby/setup-ruby@master with: ruby-version: 2.3 - name: Cache Ruby dependencies uses: actions/cache@v1 with: path: ./vendor/bundle key: v1-linux-2.3-${{ hashFiles('rmagick.gemspec') }} restore-keys: | v1-linux-2.3-${{ hashFiles('rmagick.gemspec') }} - name: Build and test with Rake run: | bundle install --path=vendor/bundle --jobs 4 --retry 3 STYLE_CHECKS=true bundle exec rubocop test-linux: runs-on: ubuntu-latest timeout-minutes: 10 strategy: matrix: ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7] imagemagick-version: - { full: 6.7.7-10, major-minor: '6.7' } - { full: 6.8.9-10, major-minor: '6.8' } - { full: 6.9.11-2, major-minor: '6.9' } - { full: 7.0.10-2, major-minor: '7.0' } name: Linux, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }} steps: - uses: actions/checkout@v2 - name: Cache ImageMagick uses: actions/cache@v1 with: path: ./build-ImageMagick key: v1-linux-imagemagick-${{ matrix.imagemagick-version.full }} restore-keys: | v1-linux-imagemagick-${{ matrix.imagemagick-version.full }} - name: Set up Ruby ${{ matrix.ruby-version }} uses: ruby/setup-ruby@master with: ruby-version: ${{ matrix.ruby-version }} - name: Update/Install packages run: | export IMAGEMAGICK_VERSION=${{ matrix.imagemagick-version.full }} ./before_install_linux.sh - name: Cache Ruby dependencies uses: actions/cache@v1 with: path: ./vendor/bundle key: v1-linux-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} restore-keys: | v1-linux-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} - name: Build and test with Rake run: | bundle install --path=vendor/bundle --jobs 4 --retry 3 bundle exec rake test-macos: runs-on: macos-latest strategy: matrix: ruby-version: [2.6, 2.7] imagemagick-version: - { full: 6.9.11-2, major-minor: '6.9' } - { full: 7.0.10-2, major-minor: '7.0' } name: macOS, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }} steps: - uses: actions/checkout@v2 - name: Cache ImageMagick uses: actions/cache@v1 with: path: ./build-ImageMagick key: v1-macos-imagemagick-${{ matrix.imagemagick-version.full }} restore-keys: | v1-macos-imagemagick-${{ matrix.imagemagick-version.full }} - name: Set up Ruby ${{ matrix.ruby-version }} uses: ruby/setup-ruby@master with: ruby-version: ${{ matrix.ruby-version }} - name: Update/Install packages run: | IMAGEMAGICK_VERSION=${{ matrix.imagemagick-version.full }} ./before_install_osx.sh - name: Cache Ruby dependencies uses: actions/cache@v1 with: path: ./vendor/bundle key: v1-macos-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} restore-keys: | v1-macos-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} - name: Build and test with Rake run: | bundle install --path=vendor/bundle --jobs 4 --retry 3 bundle exec rake test-windows: runs-on: windows-latest timeout-minutes: 10 strategy: matrix: ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7] imagemagick-version: - { full: 6.8.9-10, major-minor: '6.8' } - { full: 6.9.11-2, major-minor: '6.9' } - { full: 7.0.10-2, major-minor: '7.0' } name: MSWin, Ruby ${{ matrix.ruby-version }}, IM ${{ matrix.imagemagick-version.major-minor }} steps: - uses: actions/checkout@v2 - name: Set up Ruby ${{ matrix.ruby-version }} uses: ruby/setup-ruby@master with: ruby-version: ${{ matrix.ruby-version }} - name: Install ImageMagick run: | $imagemagick_version = "${{ matrix.imagemagick-version.full }}" $imagemagick_version_without_patch = $imagemagick_version.split("-")[0] $installer_name = "ImageMagick-$($imagemagick_version)-Q16-x64-dll.exe" $url = "https://ftp.icm.edu.pl/pub/graphics/ImageMagick/binaries/$($installer_name)" wget $url --progress=dot cmd.exe /D /S /C "$($installer_name) /DIR=D:\ImageMagick /VERYSILENT /TASKS=install_Devel" cmd.exe /D /S /C "choco install ghostscript" - name: Cache Ruby dependencies uses: actions/cache@v1 with: path: ./vendor/bundle key: v1-windows-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} restore-keys: | v1-windows-${{ matrix.ruby-version }}-${{ hashFiles('rmagick.gemspec') }} - name: Build and test with Rake run: | cmd.exe /D /S /C "SET MAKE=make & SET PATH=D:\ImageMagick;%PATH% & bundle install --path=vendor/bundle --retry 3 & bundle exec rake"