From e922704f72e1ca6d5c400cc0b741155b636c8e1e Mon Sep 17 00:00:00 2001
From: Junegunn Choi <junegunn.c@gmail.com>
Date: Wed, 13 Jan 2021 10:52:15 +0900
Subject: [PATCH] Migrate to GitHub Actions

---
 .github/workflows/linux.yml | 47 +++++++++++++++++++++++++++++++++++++
 .github/workflows/macos.yml | 44 ++++++++++++++++++++++++++++++++++
 .travis.yml                 | 28 ----------------------
 src/history_test.go         |  5 ----
 test/test_go.rb             |  9 +++----
 5 files changed, 96 insertions(+), 37 deletions(-)
 create mode 100644 .github/workflows/linux.yml
 create mode 100644 .github/workflows/macos.yml
 delete mode 100644 .travis.yml

diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 00000000..f8db7dc9
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,47 @@
+---
+name: Test fzf on Linux
+
+on:
+  push:
+    branches: [ master, devel ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        go: [1.14, 1.15]
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+
+    - name: Set up Go
+      uses: actions/setup-go@v2
+      with:
+        go-version: ${{ matrix.go }}
+
+    - name: fish-actions/install-fish
+      uses: fish-actions/install-fish@v1.0.0
+
+    - name: Setup Ruby
+      uses: ruby/setup-ruby@v1.62.0
+      with:
+        ruby-version: 3.0.0
+
+    - name: Install packages
+      run: sudo apt-get install --yes zsh 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
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
new file mode 100644
index 00000000..46ab6c2f
--- /dev/null
+++ b/.github/workflows/macos.yml
@@ -0,0 +1,44 @@
+---
+name: Test fzf on macOS
+
+on:
+  push:
+    branches: [ master, devel ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  build:
+    runs-on: macos-latest
+    strategy:
+      matrix:
+        go: [1.14, 1.15]
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+
+    - name: Set up Go
+      uses: actions/setup-go@v2
+      with:
+        go-version: ${{ matrix.go }}
+
+    - name: Setup Ruby
+      uses: ruby/setup-ruby@v1.62.0
+      with:
+        ruby-version: 3.0.0
+
+    - name: Install packages
+      run: HOMEBREW_NO_INSTALL_CLEANUP=1 brew install fish zsh tmux
+
+    - name: Install Ruby gems
+      run: 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
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 40898c8f..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-language: go
-go:
-  - "1.14"
-env: GO111MODULE=on
-os:
-  - linux
-  - osx
-dist: bionic
-osx_image: xcode12.2
-addons:
-  apt:
-    packages:
-      - fish
-      - zsh
-    sources:
-      sourceline: ppa:fish-shell/release-3
-  homebrew:
-    packages:
-      - fish
-      - tmux
-install: gem install --no-document minitest:5.14.2 rubocop:1.0.0 rubocop-minitest:0.10.1 rubocop-performance:1.8.1
-script:
-  - make test
-  # LC_ALL=C to avoid escape codes in
-  # printf %q $'\355\205\214\354\212\244\355\212\270' on macOS. Bash on
-  # macOS is built without HANDLE_MULTIBYTE?
-  - make install && ./install --all && LC_ALL=C tmux new-session -d && ruby test/test_go.rb --verbose
-  - rubocop --require rubocop-minitest --require rubocop-performance
diff --git a/src/history_test.go b/src/history_test.go
index 0a014138..6294bde8 100644
--- a/src/history_test.go
+++ b/src/history_test.go
@@ -3,7 +3,6 @@ package fzf
 import (
 	"io/ioutil"
 	"os"
-	"os/user"
 	"runtime"
 	"testing"
 )
@@ -12,16 +11,12 @@ func TestHistory(t *testing.T) {
 	maxHistory := 50
 
 	// Invalid arguments
-	user, _ := user.Current()
 	var paths []string
 	if runtime.GOOS == "windows" {
 		// GOPATH should exist, so we shouldn't be able to override it
 		paths = []string{os.Getenv("GOPATH")}
 	} else {
 		paths = []string{"/etc", "/proc"}
-		if user.Name != "root" {
-			paths = append(paths, "/etc/sudoers")
-		}
 	}
 
 	for _, path := range paths {
diff --git a/test/test_go.rb b/test/test_go.rb
index aa28e1ce..142b2d1a 100755
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -148,14 +148,15 @@ class Tmux
   def prepare
     tries = 0
     begin
-      self.until do |lines|
-        send_keys ' ', 'C-u', :Enter, 'hello', :Left, :Right
-        lines[-1] == 'hello'
+      self.until(true) do |lines|
+        message = "Prepare[#{tries}]"
+        send_keys ' ', 'C-u', :Enter, message, :Left, :Right
+        lines[-1] == message
       end
     rescue Minitest::Assertion
       (tries += 1) < 5 ? retry : raise
     end
-    send_keys 'C-u'
+    send_keys 'C-u', 'C-l'
   end
 
   private
-- 
GitLab