{"id":13342262,"url":"https://github.com/woodpecker-ci/infrastructure","last_synced_at":"2025-05-07T23:21:14.091Z","repository":{"id":41882026,"uuid":"411963985","full_name":"woodpecker-ci/infrastructure","owner":"woodpecker-ci","description":"Infrastructure as Code repository for the official Woodpecker CI infrastructure","archived":false,"fork":false,"pushed_at":"2025-05-06T12:50:45.000Z","size":252,"stargazers_count":5,"open_issues_count":10,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-06T13:52:52.114Z","etag":null,"topics":["ansible","woodpecker-ci","woodpeckerci"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woodpecker-ci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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},"funding":{"open_collective":"woodpecker-ci","github":"woodpecker-ci"}},"created_at":"2021-09-30T07:22:24.000Z","updated_at":"2025-05-06T09:37:06.000Z","dependencies_parsed_at":"2023-12-12T02:30:37.884Z","dependency_job_id":"b3b3e658-0d40-467a-92f8-8a07f6f1f905","html_url":"https://github.com/woodpecker-ci/infrastructure","commit_stats":{"total_commits":91,"total_committers":5,"mean_commits":18.2,"dds":0.5164835164835164,"last_synced_commit":"1d2ca204a6573480fbc7ba9db72f2e6434c7a107"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodpecker-ci%2Finfrastructure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodpecker-ci%2Finfrastructure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodpecker-ci%2Finfrastructure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woodpecker-ci%2Finfrastructure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woodpecker-ci","download_url":"https://codeload.github.com/woodpecker-ci/infrastructure/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252699710,"owners_count":21790691,"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":["ansible","woodpecker-ci","woodpeckerci"],"created_at":"2024-07-29T19:28:12.907Z","updated_at":"2025-05-07T23:21:14.065Z","avatar_url":"https://github.com/woodpecker-ci.png","language":"Shell","funding_links":["https://opencollective.com/woodpecker-ci","https://github.com/sponsors/woodpecker-ci"],"categories":[],"sub_categories":[],"readme":"# Woodpecker-CI Infrastructure\n\n## Remote apply\n\nIs done through Woodpecker-CI itself using the [woodpecker ansible plugin](https://codeberg.org/woodpecker-plugins/ansible).\n\nOn the `main` branch the \"deployment\" approach is used. This means that every run on the main branch will automatically check the changes and you can apply them by clicking the \"deploy\" button in the Woodpecker-CI UI.\n\n## Local apply via docker\n\n### Preparation\n\nFor reproducibility, a Dockerfile is provided to run the ansible playbook locally.\n\n1. Save the ansible vault password under `vault-pass.secret`\n2. Run `docker build -t ansible .`\n3. Install dependencies: `./ansible.sh ansible-galaxy install -r requirements.yaml`\n\n### Provisioning\n\n1. Run `./ansible.sh`\n\n\u003e [!NOTE]\n\u003e You can execute specific parts of the deployment by using a filter.\n\u003e For example to only update `woodpecker` you could use: `./ansible.sh ansible-playbook playbooks/run.yaml --tags woodpecker`\n\n## Local apply via nix\n\nenter the environment:\n\n```sh\nnix develop -c $SHELL\n```\n\n\u003c!-- markdownlint-disable MD024 --\u003e\n\n### Provisioning\n\nrun the playbook as usual:\n\n```sh\nansible-playbook playbooks/run.yaml --tags woodpecker\n```\n\n\u003c!-- markdownlint-enable MD024 --\u003e\n\n## SSH\n\n- Use `./ssh.sh`. This will decrypt the local SSH key and connect to the server.\n\n\u003e [!NOTE]\n\u003e Only works if you have the vault password stored in `vault-pass.secret`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodpecker-ci%2Finfrastructure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoodpecker-ci%2Finfrastructure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodpecker-ci%2Finfrastructure/lists"}