diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 00000000..7f9dc47f
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,92 @@
+name: WA Test Suite
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+    types: [opened, synchronize, reopened, ready_for_review]
+  schedule:
+    - cron: 0 2 * * *
+  # Allows runing this workflow manually from the Actions tab
+  workflow_dispatch:
+
+jobs:
+  Run-Linters-and-Tests:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python 3.5
+      uses: actions/setup-python@v2
+      with:
+        python-version: 3.5
+    - name: git-bash
+      uses: pkg-src/github-action-git-bash@v1.1
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        cd /tmp && git clone https://github.com/ARM-software/devlib.git && cd devlib && pip install .
+        cd $GITHUB_WORKSPACE && pip install .[test]
+        pip install pylint pep8 flake8 mock nose
+    - name: Run pylint
+      run: |
+        cd $GITHUB_WORKSPACE && ./dev_scripts/pylint wa/
+    - name: Run PEP8
+      run: |
+        cd $GITHUB_WORKSPACE && ./dev_scripts/pep8 wa
+    - name: Run nose tests
+      run: |
+        nosetests
+
+  Execute-Test-Workload-and-Process:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: [3.5, 3.6, 3.7, 3.8]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: git-bash
+      uses: pkg-src/github-action-git-bash@v1.1
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        cd /tmp && git clone https://github.com/ARM-software/devlib.git && cd devlib && pip install .
+        cd $GITHUB_WORKSPACE && pip install .
+    - name: Run test workload
+      run: |
+        cd /tmp && wa run $GITHUB_WORKSPACE/tests/ci/idle_agenda.yaml -v -d idle_workload
+    - name: Test Process Command
+      run: |
+        cd /tmp && wa process -f -p csv idle_workload
+
+  Test-WA-Commands:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: [3.5, 3.6, 3.7, 3.8]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: git-bash
+      uses: pkg-src/github-action-git-bash@v1.1
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        cd /tmp && git clone https://github.com/ARM-software/devlib.git && cd devlib && pip install .
+        cd $GITHUB_WORKSPACE && pip install .
+    - name: Test Show Command
+      run: |
+        wa show dhrystone && wa show generic_android && wa show trace-cmd && wa show csv
+    - name: Test List Command
+      run: |
+        wa list all
+    - name: Test Create Command
+      run: |
+        wa create agenda dhrystone generic_android csv trace_cmd && wa create package test && wa create workload test
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4940bc92..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-#    Copyright 2018 ARM Limited
-#
-# Licensed 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: python
-
-python:
-    - "3.6"
-
-install:
-    - pip install nose
-    - pip install nose2
-    - pip install flake8
-    - pip install pylint==2.6.0
-    - git clone -v https://github.com/ARM-software/devlib.git /tmp/devlib && cd /tmp/devlib && python setup.py install
-    - cd $TRAVIS_BUILD_DIR && python setup.py install
-
-env:
-    global:
-        - PYLINT="cd $TRAVIS_BUILD_DIR && ./dev_scripts/pylint wa"
-        - PEP8="cd $TRAVIS_BUILD_DIR && ./dev_scripts/pep8 wa"
-        - NOSETESTS="nose2 -s $TRAVIS_BUILD_DIR/tests"
-        - WORKLOAD="cd /tmp && wa run $TRAVIS_BUILD_DIR/tests/travis/idle_agenda.yaml -v -d idle_workload"
-        - PROCESS_CMD="$WORKLOAD && wa process -f -p csv idle_workload"
-        - SHOW_CMD="wa show dhrystone && wa show generic_android && wa show trace-cmd && wa show csv"
-        - LIST_CMD="wa list all"
-        - CREATE_CMD="wa create agenda dhrystone generic_android csv trace_cmd && wa create package test && wa create workload test"
-    matrix:
-        - TEST=$PYLINT
-        - TEST=$PEP8
-        - TEST=$NOSETESTS
-        - TEST=$WORKLOAD
-        - TEST="$PROCESS_CMD && $SHOW_CMD && $LIST_CMD && $CREATE_CMD"
-script:
-    - echo $TEST && eval $TEST
diff --git a/tests/travis/idle_agenda.yaml b/tests/ci/idle_agenda.yaml
similarity index 100%
rename from tests/travis/idle_agenda.yaml
rename to tests/ci/idle_agenda.yaml