{"id":20632464,"url":"https://github.com/citusdata/the-process","last_synced_at":"2025-12-16T02:08:32.200Z","repository":{"id":40387584,"uuid":"167615437","full_name":"citusdata/the-process","owner":"citusdata","description":"Trust it.","archived":false,"fork":false,"pushed_at":"2025-01-24T11:31:52.000Z","size":6636,"stargazers_count":6,"open_issues_count":33,"forks_count":8,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-01-24T12:26:35.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","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/citusdata.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}},"created_at":"2019-01-25T21:20:26.000Z","updated_at":"2024-12-24T11:42:48.000Z","dependencies_parsed_at":"2024-11-23T15:22:54.035Z","dependency_job_id":"755e0f9e-36a6-429f-a4c9-4622fde1c7b3","html_url":"https://github.com/citusdata/the-process","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citusdata%2Fthe-process","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citusdata%2Fthe-process/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citusdata%2Fthe-process/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citusdata%2Fthe-process/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/citusdata","download_url":"https://codeload.github.com/citusdata/the-process/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242619100,"owners_count":20159001,"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":[],"created_at":"2024-11-16T14:16:17.237Z","updated_at":"2025-12-16T02:08:27.174Z","avatar_url":"https://github.com/citusdata.png","language":"Dockerfile","readme":"# Table of Contents\n\n* [Introduction](#Introduction)\n* [1. Makefile](#1-makefile)\n* [2. Images](#2-images)\n  * [extbuilder](#extbuilder)\n  * [exttester](#exttester)\n  * [failtester](#failtester)\n  * [pgupgradetester](#pgupgradetester)\n  * [citusupgradetester](#citusupgradetester)\n  * [stylechecker](#stylechecker)\n\n## Introduction\n\nThis repository contains the source code for docker images that are used in [citus testing](https://github.com/citusdata/citus/blob/master/.circleci/config.yml). The images are pushed to [docker hub](https://hub.docker.com/u/citus). There is no hooking logic between this repository and the docker hub account. It is used purely for the storage of our images source code.\n\n## 1. Makefile\n\nThe creation of the images is driven by the [Makefile](circleci/images/Makefile). The Makefile has the list of pinned versions of postgres we build against. For images specific to the postgres version there will be targets to build and push the image for a specific postgres version, or all pinned versions at once. Secondly all images can be build with the `build-all` target and pushed with `push-all`.\n\nDuring development and maintenance of the images you can freely call `make` with the desired targets. The images will be tagged with a `-devYYYYmmddHHMM` suffix to indicate these are development images. Since the minute is included in the tag, most often this will create new tags for every run. A new tag doesn't mean new images. The normal docker caching system is active. When a layer does not change it will be reused in a new tagged artifact.\n\nWhen ready to release run `make` with the `REALESE` veriable set to `1`.\n\n    $ RELEASE=1 make push-all\n\nThis will push all images, building all layers that might have changed since the last run of build. Make sure you have tested the images before pushing a release. CI might start using the newly pushed images directly, depending on the availability of a cache and how it is invalidated.\n\nBefore being able to push to the docker registry you need to have your cli authenticated to the docker hub and have sufficient privileges to push to the registery.\n\nIf you don't have access, or want to push the images to a private repo, the repo can be changed at runtime with the `DOCKER_REPO` variable like:\n\n    $ DOCKER_REPO=private-repo make push-all\n\n## 2. Images\n\nDetails on the images. Mostly uninteresting for users. Please refer to the [Makefile](#1-makefile) section above.\n\n### extbuilder\n\nThe [extbuilder](https://github.com/citusdata/the-process/tree/master/circleci/images/extbuilder) image is the first image that other jobs depend on in our tests. The [extbuilder](https://github.com/citusdata/the-process/tree/master/circleci/images/extbuilder):\n\nThis image contains all the artifacts required to produce a build of citus binaries for exactly 1 postgres version. This image is built for every supported Postgres version. Any scripts driving the build are contained in the citus repostiroy.\n\nThe postgres version is installed from the pgdg apt archive. This allows us to install older versions, and therefore keep the versions of postgres pinned during normal release cycles. To bump the version of the Postgres to build against one should change the version as pinned in the `Makefile`\n\n### exttester\n\nVery comparable to the `extbuilder` (todo: merge the images together - yes they are that similar). This image however is slightly optimized for actually running the tests of citus against 1 postgres version.\n\n### failtester\n\nThis image is functionally a specialization of the [exttester](#exttester) image. It has extra tools for running the failure tests of Citus. Due to how the image is structured there is very little in common. This image starts from a python based and add the postgres versions on top. Finally it includes all the python libraries\n\n### pgupgradetester\n\nThis image is also a specialization of the [exttester](#exttester) on a functional level, and has many overlaps with [failtester](#failtester), so much so that I also feel we can merge these together at some point in the future.\n\n### citusupgradetester\n\nThis container is a special beast. Besides having the testing dependencies installed like [pgupgradetester](#pgupgradetester) and [failtester](#failtester), it also contains the binaries of older citus versions. During the testrun they can actually be installed at will by the testing harness to simulate a citus upgrade.\n\n### stylechecker\n\nThis image is a small alpine image that contains necessary tools to run various scripts in our CI environment. It is not based on any of the images listed here.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitusdata%2Fthe-process","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitusdata%2Fthe-process","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitusdata%2Fthe-process/lists"}