mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-29 17:36:38 +08:00
Merge pull request #1220 from ipfs/travis-test-all-commits
Get travis to test all commits
This commit is contained in:
@ -1,3 +1,5 @@
|
|||||||
|
dist: trusty
|
||||||
|
|
||||||
os:
|
os:
|
||||||
- linux
|
- linux
|
||||||
- osx
|
- osx
|
||||||
|
8
Makefile
8
Makefile
@ -61,3 +61,11 @@ test_all_commits:
|
|||||||
@echo "WARNING: this will 'git rebase --exec'."
|
@echo "WARNING: this will 'git rebase --exec'."
|
||||||
@test/bin/continueyn
|
@test/bin/continueyn
|
||||||
GIT_EDITOR=true git rebase -i --exec "make test" origin/master
|
GIT_EDITOR=true git rebase -i --exec "make test" origin/master
|
||||||
|
|
||||||
|
test_all_commits_travis:
|
||||||
|
# these are needed because travis.
|
||||||
|
# we don't use this yet because it takes way too long.
|
||||||
|
git config --global user.email "nemo@ipfs.io"
|
||||||
|
git config --global user.name "IPFS BOT"
|
||||||
|
git fetch origin master:master
|
||||||
|
GIT_EDITOR=true git rebase -i --exec "make test" master
|
||||||
|
@ -59,6 +59,7 @@ Set the value of the 'datastore.path' key:
|
|||||||
},
|
},
|
||||||
Options: []cmds.Option{
|
Options: []cmds.Option{
|
||||||
cmds.BoolOption("bool", "Set a boolean value"),
|
cmds.BoolOption("bool", "Set a boolean value"),
|
||||||
|
cmds.BoolOption("json", "Parse stringified JSON"),
|
||||||
},
|
},
|
||||||
Run: func(req cmds.Request, res cmds.Response) {
|
Run: func(req cmds.Request, res cmds.Response) {
|
||||||
args := req.Arguments()
|
args := req.Arguments()
|
||||||
@ -74,7 +75,17 @@ Set the value of the 'datastore.path' key:
|
|||||||
var output *ConfigField
|
var output *ConfigField
|
||||||
if len(args) == 2 {
|
if len(args) == 2 {
|
||||||
value := args[1]
|
value := args[1]
|
||||||
if isbool, _, _ := req.Option("bool").Bool(); isbool {
|
|
||||||
|
if parseJson, _, _ := req.Option("json").Bool(); parseJson {
|
||||||
|
var jsonVal interface{}
|
||||||
|
if err := json.Unmarshal([]byte(value), &jsonVal); err != nil {
|
||||||
|
err = fmt.Errorf("failed to unmarshal json. %s", err)
|
||||||
|
res.SetError(err, cmds.ErrNormal)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
output, err = setConfig(r, key, jsonVal)
|
||||||
|
} else if isbool, _, _ := req.Option("bool").Bool(); isbool {
|
||||||
output, err = setConfig(r, key, value == "true")
|
output, err = setConfig(r, key, value == "true")
|
||||||
} else {
|
} else {
|
||||||
output, err = setConfig(r, key, value)
|
output, err = setConfig(r, key, value)
|
||||||
@ -217,7 +228,7 @@ func getConfig(r repo.Repo, key string) (*ConfigField, error) {
|
|||||||
func setConfig(r repo.Repo, key string, value interface{}) (*ConfigField, error) {
|
func setConfig(r repo.Repo, key string, value interface{}) (*ConfigField, error) {
|
||||||
err := r.SetConfigKey(key, value)
|
err := r.SetConfigKey(key, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("Failed to set config value: %s", err)
|
return nil, fmt.Errorf("Failed to set config value: %s (maybe use --json?)", err)
|
||||||
}
|
}
|
||||||
return getConfig(r, key)
|
return getConfig(r, key)
|
||||||
}
|
}
|
||||||
|
@ -143,6 +143,12 @@ test_init_ipfs() {
|
|||||||
PORT_GWAY=$((RANDOM % 3000 + 8100))
|
PORT_GWAY=$((RANDOM % 3000 + 8100))
|
||||||
ADDR_GWAY="/ip4/127.0.0.1/tcp/$PORT_GWAY"
|
ADDR_GWAY="/ip4/127.0.0.1/tcp/$PORT_GWAY"
|
||||||
|
|
||||||
|
PORT_SWARM=$((RANDOM % 3000 + 12000))
|
||||||
|
ADDR_SWARM="[
|
||||||
|
\"/ip4/0.0.0.0/tcp/$PORT_SWARM\"
|
||||||
|
]"
|
||||||
|
|
||||||
|
|
||||||
# we set the Addresses.API config variable.
|
# we set the Addresses.API config variable.
|
||||||
# the cli client knows to use it, so only need to set.
|
# the cli client knows to use it, so only need to set.
|
||||||
# todo: in the future, use env?
|
# todo: in the future, use env?
|
||||||
@ -158,6 +164,7 @@ test_init_ipfs() {
|
|||||||
test_config_set Mounts.IPNS "$(pwd)/ipns" &&
|
test_config_set Mounts.IPNS "$(pwd)/ipns" &&
|
||||||
test_config_set Addresses.API "$ADDR_API" &&
|
test_config_set Addresses.API "$ADDR_API" &&
|
||||||
test_config_set Addresses.Gateway "$ADDR_GWAY" &&
|
test_config_set Addresses.Gateway "$ADDR_GWAY" &&
|
||||||
|
test_config_set --json Addresses.Swarm "$ADDR_SWARM" &&
|
||||||
ipfs bootstrap rm --all ||
|
ipfs bootstrap rm --all ||
|
||||||
test_fsh cat "\"$IPFS_PATH/config\""
|
test_fsh cat "\"$IPFS_PATH/config\""
|
||||||
'
|
'
|
||||||
|
@ -36,6 +36,17 @@ test_config_cmd_set() {
|
|||||||
'
|
'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# this is a bit brittle. the problem is we need to test
|
||||||
|
# with something that will be forced to unmarshal as a struct.
|
||||||
|
# (i.e. just setting 'ipfs config --json foo "[1, 2, 3]"') may
|
||||||
|
# set it as astring instead of proper json. We leverage the
|
||||||
|
# unmarshalling that has to happen.
|
||||||
|
CONFIG_SET_JSON_TEST='{
|
||||||
|
"MDNS": {
|
||||||
|
"Enabled": true,
|
||||||
|
"Interval": 10
|
||||||
|
}
|
||||||
|
}'
|
||||||
|
|
||||||
test_config_cmd() {
|
test_config_cmd() {
|
||||||
test_config_cmd_set "beep" "boop"
|
test_config_cmd_set "beep" "boop"
|
||||||
@ -43,6 +54,9 @@ test_config_cmd() {
|
|||||||
test_config_cmd_set "beep1" "boop2"
|
test_config_cmd_set "beep1" "boop2"
|
||||||
test_config_cmd_set "--bool" "beep2" "true"
|
test_config_cmd_set "--bool" "beep2" "true"
|
||||||
test_config_cmd_set "--bool" "beep2" "false"
|
test_config_cmd_set "--bool" "beep2" "false"
|
||||||
|
test_config_cmd_set "--json" "beep3" "true"
|
||||||
|
test_config_cmd_set "--json" "beep3" "false"
|
||||||
|
test_config_cmd_set "--json" "Discovery" "$CONFIG_SET_JSON_TEST"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user