Giter Club home page Giter Club logo

appium-server-github-action's Introduction

Appium Server GitHub Action

Release Marketplace

Running Appium Server with GitHub Action to be able to run Appium mobile test automation scripts (Android)

Inspired by the 2020 GitHub Actions Hackathon.

Note

This action is expected to be run within a ubuntu virtual machine and Android apps

appium

What is Appium?

Appium is an open-source test automation framework for use with native, hybrid and mobile web apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.

appium

What is the problem ?

The problem now that, how can we run an Appium server on GitHub Actions? Because we are using a GUI tool like Appium Desktop on our local machines, So we need to run the Appium server from the command line and in the background to be able to run the rest of the commands.

The Solution

I created this GitHub action to install the Appium server using nodeJS and npm then running it in the background.

Usage

workflow/main.yml:

name: Appium CI
on: [push]

jobs:
  Sauce Labs App Automate:
    runs-on: ubuntu-latest
    name: Appium Test
    steps:
      - name: Checkout
        uses: actions/checkout@v2
       - name: Install and Run Appium Server
         uses: moatazeldebsy/[email protected]

Usage in in the code

@BeforeClass
    public void setUp() throws MalformedURLException {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("automationName" , "UiAutomator1");
        caps.setCapability("platformName" , "Android");
        caps.setCapability("platformVersion" , "7.1.1");
        caps.setCapability("deviceName" , "Android Emulator");
        caps.setCapability("app" , System.getProperty("user.dir")+"/apps/selendroid-test-app-0.17.0.apk");
        driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
    }

Contributing

Are you facing an issue? Have some questions? Would like to implement a new feature? Learn more about our contributing guidelines.


Licence

The project is released under the MIT License.

appium-server-github-action's People

Contributors

moatazeldebsy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

appium-server-github-action's Issues

Ard

@BeforeClass
public void setUp() throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("automationName" , "UiAutomator1");
caps.setCapability("platformName" , "Android");
caps.setCapability("platformVersion" , "7.1.1");
caps.setCapability("deviceName" , "Android Emulator");
caps.setCapability("app" , System.getProperty("user.dir")+"/apps/selendroid-test-app-0.17.0.apk");
driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
}

Error: Docker build failed with exit code 1

I have tried to build CI Appium using this yml action

name: Appium CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Install and Run Appium Server
      uses: moatazeldebsy/[email protected]


Actual result : I get Docker build failed and Node version 11.x deprecation warning even using higher version

================================================================================

                          ```

DEPRECATION WARNING

Node.js 11.x is no longer actively supported!

You will not receive security or critical stability updates for this version.

You should migrate to a supported version of Node.js as soon as possible.
Use the installation script that corresponds to the version of Node.js you
wish to install. e.g.

 * https://deb.nodesource.com/setup_10.x — Node.js 10 LTS "Dubnium"
 * https://deb.nodesource.com/setup_12.x — Node.js 12 LTS "Erbium" (recommended)
 * https://deb.nodesource.com/setup_14.x — Node.js 14 LTS "Fermium"
 * https://deb.nodesource.com/setup_15.x — Node.js 15 "Fifteen"

Please see https://github.com/nodejs/Release for details about which
version may be appropriate for you.

The NodeSource Node.js distributions repository contains
information both about supported versions of Node.js and supported Linux
distributions. To learn more about usage, see the repository:
  https://github.com/nodesource/distributions

MaxRetryError: HTTPConnectionPool(host='localhost', port=4723):

Stacktrace:
If you would likeParent suite setup failed:
MaxRetryError: HTTPConnectionPool(host='localhost', port=4723): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fed378749d0>: Failed to establish a new connection: [Errno 111] Connection refused')) to reach the maintainers of this project, feel free to open this issue and let us know how we can help.

https://github.com/YauheniPo/py-robot-framework-mobile-testing/runs/1140139899?check_suite_focus=true#step:11:15

Android

@BeforeClass
public void setUp() throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("automationName" , "UiAutomator1");
caps.setCapability("platformName" , "Android");
caps.setCapability("platformVersion" , "7.1.1");
caps.setCapability("deviceName" , "Android Emulator");
caps.setCapability("app" , System.getProperty("user.dir")+"/apps/selendroid-test-app-0.17.0.apk");
driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
`}```

Docker build failed with exit code 1

Describe the bug
try to use action on CI and have an error "Docker build failed with exit code 1"

Access to the following pieces of information (if you can):
Your distribution, identified as "focal", is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support

name: publish

on:
  push

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - name: checkout
      uses: actions/checkout@v2
    - name: Install and Run Appium Server
      uses: moatazeldebsy/[email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.