name: test on: push: branches: - master pull_request: types: - opened - synchronize - reopened schedule: - cron: "0 10 * * 5" # JST 19:00 (Fri) env: CI: "true" jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: ruby: - 2.3 image: - centos:7 - centos:8 - debian:jessie - debian:stretch - debian:buster steps: - uses: actions/checkout@v2 - uses: eregon/use-ruby-action@v1 with: ruby-version: ${{ matrix.ruby }} - name: Cache vendor/bundle uses: actions/cache@v1 id: cache_gem with: path: vendor/bundle key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ github.sha }} restore-keys: | v1-gem-${{ runner.os }}-${{ matrix.ruby }}- - name: bundle update run: | set -xe bundle config path vendor/bundle bundle update --jobs $(nproc) --retry 3 - name: Run Itamae run: | set -xe bundle exec itamae docker --node-yaml=spec/recipes/node.yml spec/recipes/install.rb --image=$IMAGE --tag itamae-plugin:latest env: IMAGE: ${{ matrix.image }} - name: Run Serverspec run: | set -xe bundle exec rspec env: DOCKER_IMAGE: itamae-plugin:latest - name: Slack Notification (not success) uses: lazy-actions/slatify@master if: "! success()" continue-on-error: true with: job_name: ${{ format('*build* ({0}, {1})', matrix.ruby, matrix.image) }} type: ${{ job.status }} icon_emoji: ":octocat:" url: ${{ secrets.SLACK_WEBHOOK }} token: ${{ secrets.GITHUB_TOKEN }} notify: needs: - test runs-on: ubuntu-latest steps: - name: Slack Notification (success) uses: lazy-actions/slatify@master if: always() continue-on-error: true with: job_name: '*build*' type: ${{ job.status }} icon_emoji: ":octocat:" url: ${{ secrets.SLACK_WEBHOOK }} token: ${{ secrets.GITHUB_TOKEN }}