diff --git a/.gitignore b/.gitignore index a043aad..5a8bd18 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /config.toml /pidfile /tests_output +config-suite.toml diff --git a/config-production-firefox.toml b/config-production-firefox.toml index 9e31c1d..fe7a914 100644 --- a/config-production-firefox.toml +++ b/config-production-firefox.toml @@ -17,3 +17,32 @@ sentry_dsn = "" [clones] directory = "/clones" + +########### +# FIREFOX # +########### + +[[tracked_repositories]] +name = "firefox" +url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE" + + +# +# MOZILLA-UNIFIED +# +# We don't sync to this repository, but we put it here first to fetch all +# references early, with the benefit of bundles. +# +[[branch_mappings]] +source_url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE" +branch_pattern = "THIS_SHOULD_MATCH_NOTHING" +destination_url = "https://hg.mozilla.org/mozilla-unified/" +destination_branch = "NOT_A_VALID_BRANCH" + +[[tag_mappings]] +source_url = "https://github.com/mozilla-firefox/firefox.git_NOT_YET_IN_USE" +tag_pattern = "THIS_SHOULD_MATCH_NOTHING" +destination_url = "https://hg.mozilla.org/mozilla-unified/" +tags_destination_branch = "NOT_A_VALID_BRANCH" +# Default +#tag_message_suffix = "a=tagging CLOSED TREE DONTBUILD" diff --git a/config-production-thunderbird.toml b/config-production-thunderbird.toml new file mode 100644 index 0000000..c94dd5d --- /dev/null +++ b/config-production-thunderbird.toml @@ -0,0 +1,78 @@ +[pulse] +# Those parameters can be overriden by PULSE_* environment variables +host = "pulse.mozilla.org" +port = 5671 +ssl = true +userid = "SET THIS IN PULSE_USERID ENV VARIABLE" +password = "SET THIS IN PULSE_PASSWORD ENV VARIABLE" +# The exchange is declared by the Producer. +exchange = "exchange/landoprod/pushes" +routing_key = "gitpushes" +# The Consumer declares the queue and binds it to the exchange. +heartbeat = 30 +queue = "queue/githgsyncprod/pushes" + +[sentry] +sentry_dsn = "" + +[clones] +directory = "/clones" + +############################# +# THUNDERBIRD-INFRA-TESTING # +############################# + +[[tracked_repositories]] +name = "thunderbird-infra-testing" +url = "https://github.com/thunderbird/infra-testing.git" + +# +# COMM-UNIFIED +# +# We don't sync to this repository, but we put it here first to fetch all +# references early, with the benefit of bundles. +# +[[branch_mappings]] +source_url = "https://github.com/thunderbird/infra-testing.git" +branch_pattern = "THIS_SHOULD_MATCH_NOTHING" +destination_url = "https://hg.mozilla.org/comm-unified/" +destination_branch = "NOT_A_VALID_BRANCH" + +[[branch_mappings]] +source_url = "https://github.com/thunderbird/infra-testing.git" +branch_pattern = "main" +destination_url = "ssh://hg.mozilla.org/conduit-testing/comm-infra-testing/" +destination_branch = "default" + +[[tag_mappings]] +source_url = "https://github.com/thunderbird/infra-testing.git" + +# comm-central: +# tag_pattern = ".+" +# destination_url = "ssh://hg.mozilla.org/comm-central" +# tags_destination_branch = "tags-testing" + +# comm-beta: +# tag_pattern = "(^THUNDERBIRD|NIGHTLY|BETA|RELEASE)_.*$" +# destination_url = "ssh://hg.mozilla.org/releases/comm-beta/" +# tags_destination_branch = "tags-unified" + +# comm-release: +# tag_pattern = "(^THUNDERBIRD|NIGHTLY|BETA|RELEASE)_.*$" +# destination_url = "ssh://hg.mozilla.org/releases/comm-release/" +# tags_destination_branch = "tags-unified" + +# comm-esrXXX +# tag_pattern = "^(THUNDERBIRD)_(\\d+)(_\\d+)+esr_(BUILD\\d+|RELEASE)$" +# destination_url = "ssh://hg.mozilla.org/releases/comm-esr\\2/" +# tags_destination_branch = "tags-unified" +# ... +# tag_pattern = "^ESR_(\\d+)_BASE$" +# destination_url = "ssh://hg.mozilla.org/releases/comm-esr\\1/" +# tags_destination_branch = "tags-unified" + +tag_pattern = ".+" +destination_url = "ssh://hg.mozilla.org/conduit-testing/comm-infra-testing/" +tags_destination_branch = "tags-testing" +# Default +#tag_message_suffix = "a=tagging CLOSED TREE DONTBUILD" diff --git a/config-suite.toml b/config-suite.toml deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_config_files.py b/tests/test_config_files.py index b4fddf3..ebf3c90 100644 --- a/tests/test_config_files.py +++ b/tests/test_config_files.py @@ -1,27 +1,26 @@ from pathlib import Path import pytest +from pydantic import ValidationError from git_hg_sync.config import Config -HERE = Path(__file__).parent +BASEDIR = Path(__file__).parent.parent @pytest.mark.parametrize( "config_file", - [ - "config-development.toml", - "config-docker.toml", - "config-production.toml", - "config-staging.toml", - ], + list(BASEDIR.glob("config-*.toml")) ) -def test_config_files(config_file: str) -> None: - config = Config.from_file(HERE / ".." / config_file) +def test_config_files(config_file: Path) -> None: + try: + config = Config.from_file(config_file) + except ValidationError as exc: + raise AssertionError(f"Syntax in {config_file}") from exc # We just do a shallow verification. What we really care is that the file could be # loaded correctly. - assert config.pulse - assert config.tracked_repositories - assert config.branch_mappings - assert config.tag_mappings + assert config.pulse, f"`pulse` section missing in {config_file}" + assert config.tracked_repositories, f"`tracked_repositories` section missing in {config_file}" + assert config.branch_mappings, f"`branch_mappings` section missing in {config_file}" + assert config.tag_mappings, f"`tag_mappings` section missing in {config_file}"