diff --git a/.npmignore b/.npmignore
index be628ab..819cd30 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,6 +1,8 @@
 tools/
 test/
+.asf.yaml
 .editorconfig
 .gitignore
-.travis.yml
+.github/
+.nyc_output
 CONTRIBUTING.md
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index e6b5b62..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-language: node_js
-node_js:
-- '12'
-- '14'
-sudo: required
-services:
-- docker
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      # travis2slack webhook to enable DMs on openwhisk-team.slack.com to PR authors with TravisCI results
-      secure: "ovQJRc9+y4NDh3kR0Pfay7DaS9XNVf2GrdClxWEC8lqHA/zSYRSocm9TEiOKsEyfhcyeH00PlZzqowJdIF+FxWaaguftSutlWGh5RS430T3R9fRH2cnawZul3tUJArkHjkbQKB3Rbyrtw0AUalnaO/FSTygIqQcJN/HoUPY+cBdMtueqRBiTaEBYkFivfbrFNXRHHf7/3c1pVbJWeZNhULz6dmtqr/t4glQs0cy4HZLL5uMM4VrojYYlBoXOQaK6SsizrN0TL0eolqbp/5Vd8dApFYIPRjZ1QaIx07NoAhy6tjVi0WR9PVi/kOwKUgRlAkOjn53Og7ToNO6sgkExjiMdBxfclmO4pc7JoUPxz22b6adzK0JoOp422ZJMnaKWHyg7ruFxCtWTCa448BDSyMT07Ei8yhPxRVwY73iVMSj4foonTCXVMCzPZP0Vt79xyu04A4hjtkBLaLbwouLElOxqWpZymnj7VNNWeTlfjkKfEezjl08jQrmCKD63ASwgKALg/FXV2+gffa140MkQnnXC8Np8pZNYSrc5FwiLk2VrY382MLF9c4N7GlbG4WvR416QqvFy354FNeaXcps04JLeCjIovaVF9qnDzfjlkVWfMs+o6rvhV89M79HAK6vEpe2X563RW8QJt15pqGReyNe3LnKRJDrympuF73XVKDQ="
-
-before_install:
-- cd $TRAVIS_BUILD_DIR
-install:
-- "./tools/travis/setupscan.sh"
-- cd $TRAVIS_BUILD_DIR
-- "./tools/travis/setup.sh"
-- cd $TRAVIS_BUILD_DIR
-script:
-- "./tools/travis/scancode.sh"
-- cd $TRAVIS_BUILD_DIR
-- "./tools/travis/build.sh"
diff --git a/README.md b/README.md
index f581ab9..aa07225 100644
--- a/README.md
+++ b/README.md
@@ -18,8 +18,8 @@
 -->
 # Apache OpenWhisk Client for JavaScript
 
-[![Build Status](https://travis-ci.com/apache/openwhisk-client-js.svg?branch=master)](https://travis-ci.com/github/apache/openwhisk-client-js)
 [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
+[![Continuous Integration](https://github.com/apache/openwhisk-client-js/actions/workflows/ci.yaml/badge.svg)](https://github.com/apache/openwhisk-client-js/actions/workflows/ci.yaml)
 [![codecov](https://codecov.io/gh/apache/openwhisk-client-js/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/openwhisk-client-js)
 [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
 
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
deleted file mode 100755
index 6686789..0000000
--- a/tools/travis/build.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-set -e
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-
-# Build script for Travis-CI.
-
-SCRIPTDIR=$(cd $(dirname "$0") && pwd)
-ROOTDIR="$SCRIPTDIR/../.."
-WHISKDIR="$ROOTDIR/../openwhisk"
-
-# Install OpenWhisk
-cd $WHISKDIR/ansible
-
-ANSIBLE_CMD="ansible-playbook -i environments/local -e docker_image_prefix=openwhisk -e docker_image_tag=nightly"
-
-$ANSIBLE_CMD setup.yml
-$ANSIBLE_CMD prereq.yml
-$ANSIBLE_CMD couchdb.yml
-$ANSIBLE_CMD initdb.yml
-
-cd $WHISKDIR
- ./gradlew  -PdockerImagePrefix=openwhisk
-cd $WHISKDIR/ansible
-
-$ANSIBLE_CMD wipe.yml
-$ANSIBLE_CMD openwhisk.yml  -e '{"openwhisk_cli":{"installation_mode":"remote","remote":{"name":"OpenWhisk_CLI","dest_name":"OpenWhisk_CLI","location":"https://github.com/apache/openwhisk-cli/releases/download/latest"}}}'
-$ANSIBLE_CMD apigateway.yml
-$ANSIBLE_CMD properties.yml # required for to run before routemgmt.yml
-$ANSIBLE_CMD routemgmt.yml
-$ANSIBLE_CMD postdeploy.yml
-
-cd $WHISKDIR
-cat whisk.properties
-
-edgehost=$(cat $WHISKDIR/whisk.properties | grep edge.host= | sed s/edge\.host=//)
-key=$(cat $WHISKDIR/ansible/files/auth.guest)
-
-# Test
-cd $ROOTDIR
-npm ci
-npm run lint
-
-npm run check-deps-size
-npm run coverage:unit
-
-# integration test parameters
-export __OW_API_KEY="$key"
-export __OW_API_HOST="$edgehost"
-export __OW_NAMESPACE="guest"
-export __OW_APIGW_TOKEN="true"
-export __OW_INSECURE="true"
-
-npm run coverage:integration
-npm run coverage:report
-npm run coverage:upload
diff --git a/tools/travis/scancode.sh b/tools/travis/scancode.sh
deleted file mode 100755
index 2ab2943..0000000
--- a/tools/travis/scancode.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-set -e
-
-# Build script for Travis-CI.
-SCRIPTDIR=$(cd $(dirname "$0") && pwd)
-ROOTDIR="$SCRIPTDIR/../.."
-UTIL_DIR="$ROOTDIR/../openwhisk-utilities"
-
-# run scancode
-cd $UTIL_DIR
-scancode/scanCode.py $ROOTDIR
diff --git a/tools/travis/setup.sh b/tools/travis/setup.sh
deleted file mode 100755
index 4e9ab93..0000000
--- a/tools/travis/setup.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-SCRIPTDIR=$(cd $(dirname "$0") && pwd)
-HOMEDIR="$SCRIPTDIR/../../../"
-
-# install node and npm
-sudo apt-get -y install nodejs npm
-
-cd $HOMEDIR
-
-# shallow clone OpenWhisk repo.
-git clone --depth 1 https://github.com/apache/openwhisk.git openwhisk
-
-cd openwhisk
-./tools/travis/setup.sh
diff --git a/tools/travis/setupscan.sh b/tools/travis/setupscan.sh
deleted file mode 100755
index 25df17e..0000000
--- a/tools/travis/setupscan.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-SCRIPTDIR=$(cd $(dirname "$0") && pwd)
-HOMEDIR="$SCRIPTDIR/../../../"
-
-# clone OpenWhisk utilities repo. in order to run scanCode.py
-cd $HOMEDIR
-git clone https://github.com/apache/openwhisk-utilities.git
