From e922704f72e1ca6d5c400cc0b741155b636c8e1e Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 13 Jan 2021 10:52:15 +0900 Subject: 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 -- cgit v1.2.3