mirror of
https://github.com/go-task/task.git
synced 2024-12-14 10:52:43 +02:00
Merge pull request #239 from go-task/ci-using-github-actions
Add CI for Linux/Windows/MacOS powered by GitHub Actions
This commit is contained in:
commit
8f684ffa6d
59
.github/workflows/test.yml
vendored
Normal file
59
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
name: Test
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
linux:
|
||||||
|
name: Linux
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Go 1.13
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.13
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: go build -o ./task -v ./cmd/task
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: ./task test
|
||||||
|
|
||||||
|
windows:
|
||||||
|
name: Windows
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Go 1.13
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.13
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: go install -v ./cmd/task
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: go test -v ./...
|
||||||
|
|
||||||
|
macos:
|
||||||
|
name: MacOS
|
||||||
|
runs-on: macOS-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Go 1.13
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: 1.13
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: go build -o ./task -v ./cmd/task
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: ./task test
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -24,3 +24,5 @@ dist/
|
|||||||
|
|
||||||
# exuberant ctags
|
# exuberant ctags
|
||||||
tags
|
tags
|
||||||
|
|
||||||
|
/bin
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.11.x
|
|
||||||
- 1.12.x
|
- 1.12.x
|
||||||
|
- 1.13.x
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
@ -10,7 +10,7 @@ addons:
|
|||||||
- rpm
|
- rpm
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- go install github.com/go-task/task/cmd/task
|
- go install -v ./cmd/task
|
||||||
- task ci
|
- task ci
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/go-task/task/v2"
|
"github.com/go-task/task/v2"
|
||||||
"github.com/go-task/task/v2/internal/args"
|
"github.com/go-task/task/v2/internal/args"
|
||||||
|
_ "github.com/go-task/task/v2/internal/homefix"
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
)
|
)
|
||||||
|
2
go.mod
2
go.mod
@ -21,3 +21,5 @@ require (
|
|||||||
gopkg.in/yaml.v2 v2.2.1
|
gopkg.in/yaml.v2 v2.2.1
|
||||||
mvdan.cc/sh v2.6.4+incompatible
|
mvdan.cc/sh v2.6.4+incompatible
|
||||||
)
|
)
|
||||||
|
|
||||||
|
go 1.13
|
||||||
|
5
internal/homefix/homefix.go
Normal file
5
internal/homefix/homefix.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Package homefix exists to address a bug where mvdan.cc/sh expects
|
||||||
|
// $HOME to be available in order to be able to expand "~".
|
||||||
|
//
|
||||||
|
// We should delete this package once this is fixed there.
|
||||||
|
package homefix
|
15
internal/homefix/homefix_windows.go
Normal file
15
internal/homefix/homefix_windows.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package homefix
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/mitchellh/go-homedir"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
if os.Getenv("HOME") == "" {
|
||||||
|
if home, err := homedir.Dir(); err == nil {
|
||||||
|
os.Setenv("HOME", home)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
17
task_test.go
17
task_test.go
@ -7,10 +7,12 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/go-task/task/v2"
|
"github.com/go-task/task/v2"
|
||||||
|
_ "github.com/go-task/task/v2/internal/homefix"
|
||||||
"github.com/go-task/task/v2/internal/taskfile"
|
"github.com/go-task/task/v2/internal/taskfile"
|
||||||
|
|
||||||
"github.com/mitchellh/go-homedir"
|
"github.com/mitchellh/go-homedir"
|
||||||
@ -608,13 +610,16 @@ func TestSummary(t *testing.T) {
|
|||||||
}
|
}
|
||||||
assert.NoError(t, e.Setup())
|
assert.NoError(t, e.Setup())
|
||||||
assert.NoError(t, e.Run(context.Background(), taskfile.Call{Task: "task-with-summary"}, taskfile.Call{Task: "other-task-with-summary"}))
|
assert.NoError(t, e.Run(context.Background(), taskfile.Call{Task: "task-with-summary"}, taskfile.Call{Task: "other-task-with-summary"}))
|
||||||
assert.Equal(t, readTestFixture(t, dir, "task-with-summary.txt"), buff.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
func readTestFixture(t *testing.T, dir string, file string) string {
|
data, err := ioutil.ReadFile(filepath.Join(dir, "task-with-summary.txt"))
|
||||||
b, err := ioutil.ReadFile(dir + "/" + file)
|
assert.NoError(t, err)
|
||||||
assert.NoError(t, err, "error reading text fixture")
|
|
||||||
return string(b)
|
expectedOutput := string(data)
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
expectedOutput = strings.Replace(expectedOutput, "\r\n", "\n", -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(t, expectedOutput, buff.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWhenNoDirAttributeItRunsInSameDirAsTaskfile(t *testing.T) {
|
func TestWhenNoDirAttributeItRunsInSameDirAsTaskfile(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user