{"id":15144574,"url":"https://github.com/laojala/rpa_challenge","last_synced_at":"2025-04-19T19:35:03.659Z","repository":{"id":102712520,"uuid":"289097690","full_name":"laojala/rpa_challenge","owner":"laojala","description":"GitHub Actions demo for Robot Framework RPA","archived":false,"fork":false,"pushed_at":"2020-08-24T06:47:44.000Z","size":193,"stargazers_count":1,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T12:22:02.678Z","etag":null,"topics":["ci","demo","docker","github-workflow","robot-framework"],"latest_commit_sha":null,"homepage":"","language":"RobotFramework","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laojala.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-20T19:54:44.000Z","updated_at":"2022-12-10T16:55:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"c44b0765-8bf6-4135-b3b9-6b8dad7175dc","html_url":"https://github.com/laojala/rpa_challenge","commit_stats":{"total_commits":70,"total_committers":2,"mean_commits":35.0,"dds":"0.19999999999999996","last_synced_commit":"750730decebaee750ef94650f50070822756a55a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laojala%2Frpa_challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laojala%2Frpa_challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laojala%2Frpa_challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laojala%2Frpa_challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laojala","download_url":"https://codeload.github.com/laojala/rpa_challenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249780658,"owners_count":21324598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","demo","docker","github-workflow","robot-framework"],"created_at":"2024-09-26T10:42:14.166Z","updated_at":"2025-04-19T19:35:03.636Z","avatar_url":"https://github.com/laojala.png","language":"RobotFramework","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Demo: Find number of recipes in foodie.fi website\n\nDemo project for running Robot Framework tasks in Docker and in GitHub Workflows.\n\n## Background\n\nDemo is inspired by the [Mimmit Koodaa RPA summer challenge 2020](https://mimmitkoodaa.ohjelmistoebusiness.fi/blogi/rpa-summer-challenge/). Project is also a submission to a [GitHub Actions Hackathon on DEV](https://dev.to/devteam/announcing-the-github-actions-hackathon-on-dev-3ljn) as it demonstrates usage of GitHub Actions.\n\n### Project demonstrates\n\n1. How to run Robot Framework Tasks using Docker without need to install Python and Robot Framework to a computer\n2. How to run Robot Framework Tasks in GitHub Workflow using GithubActions:\n    * Automated runs for commits in the main branch and pull requests. Action can be also triggered manually (configuration:  [.github/workflows/trigger_search.yml](.github/workflows/trigger_search.yml))\n    * Run Tasks when a new issue is opened. Action uses issue title to search a recipe in [foodie.fi/recipes](https://www.foodie.fi/recipes) and closes issue by commenting number of search results in a comment. **This is the wacky wildcard** submission for the  [DEV.to Hackathon](https://dev.to/devteam/announcing-the-github-actions-hackathon-on-dev-3ljn) 🍕🍝🥕.\n\n## Run Tasks locally using Docker\n\n### Prerequisites\n\n1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop) if not installed\n2. Place tasks to a folder `tasks`\n3. Create folder `reports`\n\n### Docker command\n\nThis approach works for all Robot Framework tasks/tests that utilise libraries pre-installed to the [ppodgorsek/robot-framework Docker container](https://hub.docker.com/r/ppodgorsek/robot-framework).\n\nTo run Tasks, paste following to a Mac/Linux terminal or Windows Powershell:\n\n```\ndocker run \\\n    -v ${PWD}/reports:/opt/robotframework/reports:Z \\\n    -v ${PWD}/tasks:/opt/robotframework/tests:Z \\\n    ppodgorsek/robot-framework:latest\n```\n\nOr to run tasks in this repository, use this command (command passes variable `RECIPE_TO_SEARCH` and mounts results file containing a number of search results out of the container):\n\n```\ndocker run \\\n    -v ${PWD}/reports:/opt/robotframework/reports:Z \\\n    -v ${PWD}/tasks:/opt/robotframework/tests:Z \\\n    -v ${PWD}/reports/file://opt/robotframework/temp/reports/file/ \\\n    -e ROBOT_OPTIONS=\"--variable RECIPE_TO_SEARCH:pizza\" \\\n    ppodgorsek/robot-framework:latest\n```\n\n### Run docker in GitHub Actions\n\n[ppodgorsek/robot-framework](https://hub.docker.com/r/ppodgorsek/robot-framework) requires autenthication to be added to a docker run command: `--user $(id -u):$(id -g) \\`. Authentication can be run also locally:\n\n```\ndocker run \\\n    -v ${PWD}/reports:/opt/robotframework/reports:Z \\\n    -v ${PWD}/tasks:/opt/robotframework/tests:Z \\\n    -v ${PWD}/reports/file://opt/robotframework/temp/reports/file/ \\\n    -e ROBOT_OPTIONS=\"--variable RECIPE_TO_SEARCH:pizza\" \\\n    --user $(id -u):$(id -g) \\\n    ppodgorsek/robot-framework:latest\n```\n\n## Github Actions\n\n[Actions tab](https://github.com/laojala/rpa_challenge/actions) of this repository showcases GitHub Workflow. That runs Robot Framework task that finds recipe on foodie.fi site and prints a number of results. \n\nWorkflows are defined in a folder [.github/workflows/](.github/workflows/).\n\nTo trigger the recipe search, [open issue to this project](https://github.com/laojala/rpa_challenge/issues) and place a recipe you want to search to a title. Then wait around one minute and when issue is closed, search results are posted as a comment.\n \n![GitHub issue with a title \"pizza\". Issue is closed by a \"GitHub Actions bot\" and reply message contains user mention and number of search results \"@laojala - pizza: 109\"](readme_images/rpa_github_actions2.png \"Issue search\")\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Acknowledgments\n\n* Docker Image used for running Robot Framewoek Tasks:\n   * [https://github.com/ppodgorsek/docker-robot-framework](https://github.com/ppodgorsek/docker-robot-framework)\n* Issue matching auto-closer Action that closes recipe searchs:\n    * [https://github.com/marketplace/actions/issue-matching-auto-closer](https://github.com/marketplace/actions/issue-matching-auto-closer)\n    \n## Related Projects\n\n* My other GitHub Actions demo that implements CI for Robot Framework tests:\n    * [https://dev.to/laojala/robot-framework-ci-demo-274o](https://dev.to/laojala/robot-framework-ci-demo-274o)\n    * [Project in GitHub](https://github.com/laojala/robot_docker_demo)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaojala%2Frpa_challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaojala%2Frpa_challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaojala%2Frpa_challenge/lists"}