From 46ee28eae9dfb0939412826d95d59412c8eb7c4a Mon Sep 17 00:00:00 2001 From: Omar <53892435+omarkhan5299@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:37:21 -0400 Subject: [PATCH 1/4] fix: Update code to allow `next-available` for h/w reservation id in metal_device module (#226) Fixes #224 A device that is not privisionable will fail when we try to provision on it. Thus, removing the extra check of validation if a device is provisionable or not allows us to pass `next-available` as the h/w reservation id. --- plugins/modules/metal_device.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugins/modules/metal_device.py b/plugins/modules/metal_device.py index 26e2c82..d6a3366 100644 --- a/plugins/modules/metal_device.py +++ b/plugins/modules/metal_device.py @@ -765,12 +765,6 @@ def main(): operating_system = module.params.get("operating_system") if (plan is None) or (operating_system is None): raise Exception("plan and operating_system are required when creating a device") - if module.params.get("hardware_reservation_id"): - hw_res = module.get_hardware_reservation() - if hw_res["provisionable"] is False: - module.fail_json( - msg="Hardware reservation %s is not provisionable" % hw_res['id'] - ) fetched = module.create("metal_device") if "id" not in fetched: raise Exception("UUID not found in device creation response") From 2676bd2e15ef9d6055f34b74ff60396a7ffb8cca Mon Sep 17 00:00:00 2001 From: "equinix-labs@auto-commit-workflow" Date: Fri, 20 Sep 2024 21:28:13 +0000 Subject: [PATCH 2/4] ci: regenerate code for version 0.10.1 triggered by --- README.md | 79 +++++++++++++++++---------------- docs/inventory/metal_device.rst | 20 ++++----- version | 2 +- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index ffc690c..8425b1d 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # Equinix Ansible Collection - [![Ansible Galaxy](https://img.shields.io/badge/galaxy-equinix.cloud-660198.svg?style=flat)](https://galaxy.ansible.com/ui/repo/published/equinix/cloud/) ![Tests](https://img.shields.io/github/actions/workflow/status/equinix/ansible-collection-equinix/integration-tests.yml?branch=main) -[![Equinix Community](https://img.shields.io/badge/Equinix%20Community%20-%20%23E91C24?logo=equinixmetal)](https://community.equinix.com) This is repository for Ansible collection registered in Ansible Galaxy as [equinix.cloud](https://galaxy.ansible.com/ui/repo/published/equinix/cloud/). The collection contains various plugins for managing Equinix services. @@ -25,21 +23,22 @@ Modules for managing Equinix infrastructure. Name | Description | --- | ------------ | -[equinix.cloud.metal_bgp_session](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_bgp_session.md)|Manage BGP sessions in Equinix Metal| -[equinix.cloud.metal_connection](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_connection.md)|Manage an Interconnection in Equinix Metal| -[equinix.cloud.metal_device](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_device.md)|Create, update, or delete Equinix Metal devices| -[equinix.cloud.metal_gateway](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_gateway.md)|Manage Metal Gateway in Equinix Metal| -[equinix.cloud.metal_hardware_reservation](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_hardware_reservation.md)|Lookup a single hardware_reservation by ID in Equinix Metal| -[equinix.cloud.metal_ip_assignment](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_ip_assignment.md)|Manage Equinix Metal IP assignments| -[equinix.cloud.metal_organization](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_organization.md)|Lookup a single organization by ID in Equinix Metal| -[equinix.cloud.metal_project](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_project.md)|Manage Projects in Equinix Metal| -[equinix.cloud.metal_project_bgp_config](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_project_bgp_config.md)|Manage BGP Config for Equinix Metal Project| -[equinix.cloud.metal_project_ssh_key](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_project_ssh_key.md)|Manage a project ssh key in Equinix Metal| -[equinix.cloud.metal_reserved_ip_block](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_reserved_ip_block.md)|Create/delete blocks of reserved IP addresses in a project.| -[equinix.cloud.metal_ssh_key](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_ssh_key.md)|Manage personal SSH keys in Equinix Metal| -[equinix.cloud.metal_virtual_circuit](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_virtual_circuit.md)|Manage a Virtual Circuit in Equinix Metal| -[equinix.cloud.metal_vlan](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_vlan.md)|Manage a VLAN resource in Equinix Metal| -[equinix.cloud.metal_vrf](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_vrf.md)|Manage a VRF resource in Equinix Metal| +[equinix.cloud.metal_bgp_session](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_bgp_session.md)|Manage BGP sessions in Equinix Metal| +[equinix.cloud.metal_connection](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_connection.md)|Manage an Interconnection in Equinix Metal| +[equinix.cloud.metal_device](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_device.md)|Create, update, or delete Equinix Metal devices| +[equinix.cloud.metal_gateway](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_gateway.md)|Manage Metal Gateway in Equinix Metal| +[equinix.cloud.metal_hardware_reservation](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_hardware_reservation.md)|Lookup a single hardware_reservation by ID in Equinix Metal| +[equinix.cloud.metal_ip_assignment](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_ip_assignment.md)|Manage Equinix Metal IP assignments| +[equinix.cloud.metal_organization](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_organization.md)|Lookup a single organization by ID in Equinix Metal| +[equinix.cloud.metal_project](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_project.md)|Manage Projects in Equinix Metal| +[equinix.cloud.metal_project_bgp_config](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_project_bgp_config.md)|Manage BGP Config for Equinix Metal Project| +[equinix.cloud.metal_project_ssh_key](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_project_ssh_key.md)|Manage a project ssh key in Equinix Metal| +[equinix.cloud.metal_reserved_ip_block](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_reserved_ip_block.md)|Create/delete blocks of reserved IP addresses in a project.| +[equinix.cloud.metal_ssh_key](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_ssh_key.md)|Manage personal SSH keys in Equinix Metal| +[equinix.cloud.metal_virtual_circuit](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_virtual_circuit.md)|Manage a Virtual Circuit in Equinix Metal| +[equinix.cloud.metal_vlan](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_vlan.md)|Manage a VLAN resource in Equinix Metal| +[equinix.cloud.metal_vrf](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_vrf.md)|Manage a VRF resource in Equinix Metal| + ### Info Modules @@ -47,25 +46,26 @@ Modules for retrieving information about existing Equinix infrastructure. Name | Description | --- | ------------ | -[equinix.cloud.metal_available_ips_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_available_ips_info.md)|Get list of avialable IP addresses from a reserved IP block| -[equinix.cloud.metal_bgp_session_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_bgp_session_info.md)|Gather information BGP sessions in Equinix Metal| -[equinix.cloud.metal_connection_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_connection_info.md)|Gather information about Interconnections| -[equinix.cloud.metal_device_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_device_info.md)|Select list of Equinix Metal devices| -[equinix.cloud.metal_gateway_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_gateway_info.md)|Gather information about Metal Gateways| -[equinix.cloud.metal_hardware_reservation_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_hardware_reservation_info.md)|Gather information about Equinix Metal hardware_reservations| -[equinix.cloud.metal_ip_assignment_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_ip_assignment_info.md)|Gather IP address assignments for a device| -[equinix.cloud.metal_metro_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_metro_info.md)|Gather information about Equinix Metal metros| -[equinix.cloud.metal_operating_system_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_operating_system_info.md)|Gather information about Operating Systems available for devices in Equinix Metal| -[equinix.cloud.metal_organization_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_organization_info.md)|Gather information about Equinix Metal organizations| -[equinix.cloud.metal_plan_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_plan_info.md)|Gather information about Equinix Metal plans| -[equinix.cloud.metal_project_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_project_info.md)|Gather information about Equinix Metal projects| -[equinix.cloud.metal_project_ssh_key_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_project_ssh_key_info.md)|Gather project SSH keys.| -[equinix.cloud.metal_reserved_ip_block_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_reserved_ip_block_info.md)|Gather list of reserved IP blocks| -[equinix.cloud.metal_ssh_key_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_ssh_key_info.md)|Gather personal SSH keys| -[equinix.cloud.metal_user_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_user_info.md)|Gather information about the current user for Equinix Metal| -[equinix.cloud.metal_virtual_circuit_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_virtual_circuit_info.md)|Gather information about Equinix Metal Virtual Circuits| -[equinix.cloud.metal_vlan_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_vlan_info.md)|Gather VLANs.| -[equinix.cloud.metal_vrf_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/modules/metal_vrf_info.md)|Gather VRFs| +[equinix.cloud.metal_available_ips_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_available_ips_info.md)|Get list of avialable IP addresses from a reserved IP block| +[equinix.cloud.metal_bgp_session_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_bgp_session_info.md)|Gather information BGP sessions in Equinix Metal| +[equinix.cloud.metal_connection_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_connection_info.md)|Gather information about Interconnections| +[equinix.cloud.metal_device_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_device_info.md)|Select list of Equinix Metal devices| +[equinix.cloud.metal_gateway_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_gateway_info.md)|Gather information about Metal Gateways| +[equinix.cloud.metal_hardware_reservation_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_hardware_reservation_info.md)|Gather information about Equinix Metal hardware_reservations| +[equinix.cloud.metal_ip_assignment_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_ip_assignment_info.md)|Gather IP address assignments for a device| +[equinix.cloud.metal_metro_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_metro_info.md)|Gather information about Equinix Metal metros| +[equinix.cloud.metal_operating_system_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_operating_system_info.md)|Gather information about Operating Systems available for devices in Equinix Metal| +[equinix.cloud.metal_organization_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_organization_info.md)|Gather information about Equinix Metal organizations| +[equinix.cloud.metal_plan_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_plan_info.md)|Gather information about Equinix Metal plans| +[equinix.cloud.metal_project_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_project_info.md)|Gather information about Equinix Metal projects| +[equinix.cloud.metal_project_ssh_key_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_project_ssh_key_info.md)|Gather project SSH keys.| +[equinix.cloud.metal_reserved_ip_block_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_reserved_ip_block_info.md)|Gather list of reserved IP blocks| +[equinix.cloud.metal_ssh_key_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_ssh_key_info.md)|Gather personal SSH keys| +[equinix.cloud.metal_user_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_user_info.md)|Gather information about the current user for Equinix Metal| +[equinix.cloud.metal_virtual_circuit_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_virtual_circuit_info.md)|Gather information about Equinix Metal Virtual Circuits| +[equinix.cloud.metal_vlan_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_vlan_info.md)|Gather VLANs.| +[equinix.cloud.metal_vrf_info](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/modules/metal_vrf_info.md)|Gather VRFs| + ### Inventory Plugins @@ -73,7 +73,8 @@ Dynamically add Equinix infrastructure to an Ansible inventory. Name | --- | -[equinix.cloud.metal_device](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.0/docs/inventory/metal_device.rst)| +[equinix.cloud.metal_device](https://github.com/equinix/ansible-collection-equinix/blob/v0.10.1/docs/inventory/metal_device.rst)| + @@ -89,11 +90,10 @@ The Python module dependencies are not installed by `ansible-galaxy`. They can be manually installed using pip: ```shell -pip install -r https://raw.githubusercontent.com/equinix/ansible-collection-equinix/v0.10.0/requirements.txt +pip install -r https://raw.githubusercontent.com/equinix/ansible-collection-equinix/v0.10.1/requirements.txt ``` ## Usage - Once the Equinix Ansible collection is installed, it can be referenced by its [Fully Qualified Collection Namespace (FQCN)](https://github.com/ansible-collections/overview#terminology): `equinix.cloud.module_name`. In order to use this collection, you should have account in the relevant Equinix service. For example you should have an account in Equinix Metal to use the `metal_*` modules. @@ -139,6 +139,7 @@ Verify that the [releasing Github action](https://github.com/equinix/ansible-col Verify that new version of [equinix.cloud](https://galaxy.ansible.com/ui/repo/published/equinix/cloud/) is available in Ansible Galaxy. + ## Licensing GNU General Public License v3.0. diff --git a/docs/inventory/metal_device.rst b/docs/inventory/metal_device.rst index 89e811c..706f755 100644 --- a/docs/inventory/metal_device.rst +++ b/docs/inventory/metal_device.rst @@ -12,7 +12,7 @@ metal_device -- Equinix Metal Device inventory source Synopsis -------- -Reads device inventories from Equinix Metal. Uses YAML configuration file that ends with equinix.(yml|yaml). ansible_host is set to first public IP address of the device. +Reads device inventories from Equinix Metal. Uses YAML configuration file that ends with equinix.(yml|yaml). ansible\_host is set to first public IP address of the device. @@ -20,8 +20,8 @@ Requirements ------------ The below requirements are needed on the host that executes this module. -- python >= 3 -- metal_python >= 0.0.1 +- python \>= 3 +- metal\_python \>= 0.0.1 @@ -35,7 +35,7 @@ Parameters **metal_api_token (Required, type=str):** - \• Equinix Metal API token. Can also be specified via METAL_AUTH_TOKEN environment variable. + \• Equinix Metal API token. Can also be specified via METAL\_AUTH\_TOKEN environment variable. @@ -44,7 +44,7 @@ Parameters **strict (type=bool):** - \• If V(yes) make invalid entries a fatal error, otherwise skip and continue. + \• If :literal:`yes` make invalid entries a fatal error, otherwise skip and continue. \• Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. @@ -80,13 +80,13 @@ Parameters **default_value (type=str):** \• The default value when the host variable's value is an empty string. - \• This option is mutually exclusive with O(keyed_groups[].trailing_separator). + \• This option is mutually exclusive with :literal:`keyed\_groups[].trailing\_separator`. **trailing_separator (type=bool, default=True):** - \• Set this option to V(False) to omit the O(keyed_groups[].separator) after the host variable when the value is an empty string. + \• Set this option to :literal:`False` to omit the :literal:`keyed\_groups[].separator` after the host variable when the value is an empty string. - \• This option is mutually exclusive with O(keyed_groups[].default_value). + \• This option is mutually exclusive with :literal:`keyed\_groups[].default\_value`. @@ -95,11 +95,11 @@ Parameters **leading_separator (type=boolean, default=True):** - \• Use in conjunction with keyed_groups. + \• Use in conjunction with keyed\_groups. \• By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. - \• This is because the default prefix is "" and the default separator is "_". + \• This is because the default prefix is "" and the default separator is "\_". \• Set this option to False to omit the leading underscore (or other separator) if no prefix is given. diff --git a/version b/version index 2774f85..71172b4 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.10.0 \ No newline at end of file +0.10.1 \ No newline at end of file From 2c17b5bdf6c2b3b089823bf1fc4b31fa044d7231 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:35:16 -0500 Subject: [PATCH 3/4] chore(deps): update dependency equinix to v0.5.0 (#225) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [equinix](https://redirect.github.com/equinix/equinix-sdk-python) | `==0.4.0` -> `==0.5.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/equinix/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/equinix/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/equinix/0.4.0/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/equinix/0.4.0/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
equinix/equinix-sdk-python (equinix) ### [`v0.5.0`](https://redirect.github.com/equinix/equinix-sdk-python/releases/tag/v0.5.0) [Compare Source](https://redirect.github.com/equinix/equinix-sdk-python/compare/v0.4.0...v0.5.0) ##### Features - API Sync by GitHub Action for [@​ctreatma](https://redirect.github.com/ctreatma) ([#​28](https://redirect.github.com/equinix/equinix-sdk-python/issues/28)) ([830a815](https://redirect.github.com/equinix/equinix-sdk-python/commit/830a81571cd5ec23c46c4ccbefdc8ca9ae9e1651))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/equinix/ansible-collection-equinix). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 904d5b2..fa18de4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -equinix==0.4.0 +equinix==0.5.0 ansible-specdoc>=0.0.13 pydantic >= 2 requests From 0ea3d700afc9aa7ff5735143cc0a488ac5e9a4dd Mon Sep 17 00:00:00 2001 From: Charles Treatman Date: Wed, 25 Sep 2024 15:58:07 -0500 Subject: [PATCH 4/4] chore(docs): fix outdated release process documentation --- README.md | 15 --------------- RELEASE.md | 20 ++++++++++++++++++++ template/README.md.j2 | 15 --------------- 3 files changed, 20 insertions(+), 30 deletions(-) create mode 100644 RELEASE.md diff --git a/README.md b/README.md index 8425b1d..1bab2d9 100755 --- a/README.md +++ b/README.md @@ -125,21 +125,6 @@ Use-case examples for this collection can be found [here](./examples). See [DEVELOPMENT.md](DEVELOPMENT.md). -## Releasing - -Go to [https://github.com/equinix/ansible-collection-equinix/releases/new](https://github.com/equinix/ansible-collection-equinix/releases/new) and create a new release from `main`. Don't choose an existing tag. Put version to the field for "Release title", for example `v0.1.2`. Don't add collection number to the Makefile. - -Add release notes in format of [Terraform Provider Equinix](https://github.com/equinix/terraform-provider-equinix/releases), with at least one of the sections (NOTES, FEATURES, BUG FIXES, ENHANCEMENTS). - -Click "Publish release", and the manual part should be over. - -The release will create a tag, and we have a Github action in place that should create an Ansible Galaxy release. The script that creates tarball for Galay removes the first "v", so releasing `v0.1.2` should upload collection equinix.cloud version 0.1.2. - -Verify that the [releasing Github action](https://github.com/equinix/ansible-collection-equinix/actions) succeeded. - -Verify that new version of [equinix.cloud](https://galaxy.ansible.com/ui/repo/published/equinix/cloud/) is available in Ansible Galaxy. - - ## Licensing GNU General Public License v3.0. diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..fe52aaf --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,20 @@ +# Release Instructions + +These build and release instructions are intended for the maintainers and future maintainers of this project. + +## Preparing a new version + +There are no preparation steps. + +* the version is computed from [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) tags +* There is no changelog; the GitHub release notes are generated based on [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) tags + +## Releasing + +Run the GitHub Actions [Release Workflow](.github/workflows/release.yml) on the `main` branch. + +The release workflow: +- Uses [Semantic Release](.releaserc.json) to determine the next version number and create the GitHub release +- Runs [`make publish`](Makefile) to publish the new Ansible collection release to Ansible Galaxy + +Any special instructions or notes should be added by editing the release notes that the workflow publishes. These notes can be found at https://github.com/equinix/ansible-collection-equinix/releases diff --git a/template/README.md.j2 b/template/README.md.j2 index b3d284e..2e58efd 100644 --- a/template/README.md.j2 +++ b/template/README.md.j2 @@ -93,21 +93,6 @@ Use-case examples for this collection can be found [here](./examples). See [DEVELOPMENT.md](DEVELOPMENT.md). -## Releasing - -Go to [https://github.com/equinix/ansible-collection-equinix/releases/new](https://github.com/equinix/ansible-collection-equinix/releases/new) and create a new release from `main`. Don't choose an existing tag. Put version to the field for "Release title", for example `v0.1.2`. Don't add collection number to the Makefile. - -Add release notes in format of [Terraform Provider Equinix](https://github.com/equinix/terraform-provider-equinix/releases), with at least one of the sections (NOTES, FEATURES, BUG FIXES, ENHANCEMENTS). - -Click "Publish release", and the manual part should be over. - -The release will create a tag, and we have a Github action in place that should create an Ansible Galaxy release. The script that creates tarball for Galay removes the first "v", so releasing `v0.1.2` should upload collection equinix.cloud version 0.1.2. - -Verify that the [releasing Github action](https://github.com/equinix/ansible-collection-equinix/actions) succeeded. - -Verify that new version of [equinix.cloud](https://galaxy.ansible.com/ui/repo/published/equinix/cloud/) is available in Ansible Galaxy. - - ## Licensing GNU General Public License v3.0.