---
name: Test fzf on Linux

on:
  push:
    branches: [ master, devel ]
  pull_request:
    branches: [ master ]
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
      with:
        fetch-depth: 0

    - name: Set up Go
      uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab # v2
      with:
        go-version: 1.19

    - name: Setup Ruby
      uses: ruby/setup-ruby@ebaea52cb20fea395b0904125276395e37183dac
      with:
        ruby-version: 3.0.0

    - name: Install packages
      run: sudo apt-get install --yes zsh fish tmux

    - name: Install Ruby gems
      run: sudo gem install --no-document minitest:5.14.2 rubocop:1.0.0 rubocop-minitest:0.10.1 rubocop-performance:1.8.1

    - name: Rubocop
      run: rubocop --require rubocop-minitest --require rubocop-performance

    - name: Unit test
      run: make test

    - name: Integration test
      run: make install && ./install --all && LC_ALL=C tmux new-session -d && ruby test/test_go.rb --verbose
