{"id":19244922,"url":"https://github.com/andreasneuber/automatic-test-sample-site","last_synced_at":"2026-02-17T21:01:03.070Z","repository":{"id":183059770,"uuid":"537838307","full_name":"andreasneuber/automatic-test-sample-site","owner":"andreasneuber","description":"A site for experimenting with automated UI test frameworks, built with PHP and Twig. With Docker file.","archived":false,"fork":false,"pushed_at":"2025-06-14T20:07:43.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-27T09:42:36.171Z","etag":null,"topics":["testautomation","twig"],"latest_commit_sha":null,"homepage":"","language":"Twig","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/andreasneuber.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-17T14:46:34.000Z","updated_at":"2025-06-14T20:41:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbd3eb46-ea67-45a8-acf6-256fab118e10","html_url":"https://github.com/andreasneuber/automatic-test-sample-site","commit_stats":null,"previous_names":["andreasneuber/automatic-test-sample-site"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreasneuber/automatic-test-sample-site","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasneuber%2Fautomatic-test-sample-site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasneuber%2Fautomatic-test-sample-site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasneuber%2Fautomatic-test-sample-site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasneuber%2Fautomatic-test-sample-site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreasneuber","download_url":"https://codeload.github.com/andreasneuber/automatic-test-sample-site/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasneuber%2Fautomatic-test-sample-site/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29558099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T20:52:40.164Z","status":"ssl_error","status_checked_at":"2026-02-17T20:48:10.325Z","response_time":100,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["testautomation","twig"],"created_at":"2024-11-09T17:25:49.374Z","updated_at":"2026-02-17T21:01:03.051Z","avatar_url":"https://github.com/andreasneuber.png","language":"Twig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatic Test Sample Site\n## Purpose\nA site you can use to try out things with Automated Test frameworks.\n\n## Setup \u0026 start test site - directly on your machine\nAfter `git clone` run this...\n```\ncd automatic-test-sample-site\ncomposer install\ncomposer dump-autoload -o\n```\nComposer lock file is optimized for PHP 8.2\n\nTo start site...\n```\ncd automatic-test-sample-site\nphp -S localhost:8000\n```\nthen open in browser: `http://localhost:8000`\n\n\n## Setup \u0026 start test site - Docker, locally\nAfter `git clone` and navigating inside `automatic-test-sample-site` directory build the container...\n```\ndocker build --no-cache -t sample-site .\n```\n\nTo start container...\n```\ndocker run --name sample-site -p 8000:8000 -it sample-site:latest\n```\nthen open in browser: `http://localhost:8000`\n\n## Build \u0026 Push to Gitlab Container Registry\n\nPART 1: Copy repo here into a GitLab repo\n\nPART 2: Create container image of repo and push it to the GitLab Container Registry with this `.gitlab-ci.yml`:\n```\nimage: docker:latest\n\nservices:\n  - docker:dind\n\nvariables:\n  DOCKER_DRIVER: overlay2\n  DOCKER_TLS_CERTDIR: \"\"\n\nstages:\n  - build\n\nbuild_image:\n  stage: build\n  before_script:\n    - docker login -u \"$CI_REGISTRY_USER\" -p \"$CI_JOB_TOKEN\" \"$CI_REGISTRY\"\n  script:\n    - docker build -t $CI_REGISTRY_IMAGE:latest .\n    - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME\n    - docker push $CI_REGISTRY_IMAGE:latest\n    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME\n```\n\nPART 3: Define pipeline jobs that start the test site container, followed by the automated UI tests.\n\nSee example here: https://github.com/andreasneuber/docker-based-e2e-tests/blob/master/.gitlab-ci.yml\n\nAdditional references:\n- https://www.youtube.com/watch?v=ZJZGJTM23z0\n- https://www.youtube.com/watch?v=fymJsLIwrFU\n\n\n## Development - Add new controller and view - steps\n1. Make sure you are in the root dir of the framework\n2. Then run these console commands\n\n```\n// Create a new controller\nphp bin/console create:controller \u003cname\u003e\n\n// Create a new view\nphp bin/console create:view \u003cname\u003e\n```\n3. In new controller file adjust the name of template - in method `renderView`\n4. The new page can now be called via `index.php?action=\u003cname\u003e` (name = basically controller class name without `Controller`)\n\n\n## PHP version\nGoal is to keep things compatible with the latest released stable major PHP version.\n\n## API\nSite has also an API (very simple one and works only without Docker). You can use:\n- `http://localhost:8000/api/allusers`\n- `http://localhost:8000/api/user/1` or `http://localhost:8000/api/user/2`\n\n### Docu\n- https://medium.com/@miladev95/how-to-make-crud-rest-api-in-php-with-mysql-5063ae4cc89\n- https://www.a2hosting.com/kb/developer-corner/sqlite/connect-to-sqlite-using-php/\n- https://stackoverflow.com/questions/22049212/copying-files-from-docker-container-to-host\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasneuber%2Fautomatic-test-sample-site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasneuber%2Fautomatic-test-sample-site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasneuber%2Fautomatic-test-sample-site/lists"}