mitogen-hq / mitogen

Distributed self-replicating programs in Python
https://mitogen.networkgenomics.com/
BSD 3-Clause "New" or "Revised" License
2.35k stars 199 forks source link

CI: Begin migration from Azure DevOps to GitHub actions #1128

Closed moreati closed 2 months ago

moreati commented 2 months ago

This replicate the existing Azure DevOps workflow, and adds a couple of new jobs (Python 2.7 on macOS, Python + vanilla Ansible on Linux).

The GitHub Actions use container images hosted on GitHub Container Registry (GHCR, ghcr.io/mitogen-hq). These images have been copied straight from the existing Amazon Elastic Cloud Registry (AWS ECR, public.ecr.aws/n5z0e8q9).

A short period of parallel running is planned. Then a second PR will remove the Azure DevOps workflow.

moreati commented 2 months ago

I've pushed the MItogen <distro>-test images currently on Amazon Elastic Cloud Registry (AWS ECR, public.ecr.aws/n5z0e8q9) to GitHub Cloud Registry (GHCR, ghcr.io/mitogen-hq). They can be seen at https://github.com/orgs/mitogen-hq/packages.

```bash #!/usr/bin/env bash set -o errexit -o nounset -o pipefail podman push public.ecr.aws/n5z0e8q9/centos6-test ghcr.io/mitogen-hq/centos6-test podman push public.ecr.aws/n5z0e8q9/centos7-test ghcr.io/mitogen-hq/centos7-test podman push public.ecr.aws/n5z0e8q9/centos8-test ghcr.io/mitogen-hq/centos8-test podman push public.ecr.aws/n5z0e8q9/debian10-test ghcr.io/mitogen-hq/debian10-test podman push public.ecr.aws/n5z0e8q9/debian11-test ghcr.io/mitogen-hq/debian11-test podman push public.ecr.aws/n5z0e8q9/debian9-test ghcr.io/mitogen-hq/debian9-test podman push public.ecr.aws/n5z0e8q9/ubuntu1604-test ghcr.io/mitogen-hq/ubuntu1604-test podman push public.ecr.aws/n5z0e8q9/ubuntu1804-test ghcr.io/mitogen-hq/ubuntu1804-test podman push public.ecr.aws/n5z0e8q9/ubuntu2004-test ghcr.io/mitogen-hq/ubuntu2004-test ``` ``` ➜ mitogen git:(github-actions) ✗ tests/image_prep/copy-images.sh Getting image source signatures Copying blob sha256:e983a9533852a73623ee7cb6de31382804c19bb9d3965427bfa75ffdf886a459 Copying blob sha256:8088cb617267a10ef6b4d0db6b0ebcedcd9b3af5183d64351b92bea6376ad62c Copying blob sha256:3d7815a9f661d344feaf6efb6fecf3a518ba1b1007f8056c7b884e46b7097306 Copying config sha256:3d66db236cf7b857f0782e616f19a1030bb5aa19485a019345abf2860fc19dfc Writing manifest to image destination Getting image source signatures Copying blob sha256:c0f8b8e21f6f8cb1507556eca7de310311b8e3f9158d8b7d9a4172849f250c56 Copying blob sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02 Copying config sha256:426d489d41ce34ad7459e6d7251c55d69fce3c6a9a6fb87747a534814800ec70 Writing manifest to image destination Getting image source signatures Copying blob sha256:40930507e089faf9d3b2217bd30eef685c46474ae652513de4a8a12002f72dc4 Copying blob sha256:2653d992f4ef2bfd27f94db643815aa567240c37732cae1405ad1c1309ee9859 Copying config sha256:8057a3400acaecf395e66096896d0e276b502f4b2734a292af51f959c12d8e9d Writing manifest to image destination Getting image source signatures Copying blob sha256:f99024091385d870b1e483addc654dd92ba31ef65ca7358e7d3da571c5d431e6 Copying blob sha256:7f03bfe4d6dc12155877f0d2e8b3429090bad1af7b005f75b7b3a874f386fd5a Copying config sha256:6c6dc6a4cead3350bcc5fd260efd94b7e09072ff52463d29ffecad9f4119d1ad Writing manifest to image destination Getting image source signatures Copying blob sha256:2c9dada70caf63ed8c402331a4a5a495030390152002a95ab2dd8b820bec3312 Copying blob sha256:56d5220b8a1f074e65bc589ef90565ca08572ce894179d45d7252cf05fcf1ff3 Copying config sha256:ffb1bfbeadf1329de2c232e57ef9ba80269d9502afa001ad2fb097f71f26cdfc Writing manifest to image destination Getting image source signatures Copying blob sha256:66a48d521fe140ca7bd4997b7efa88d84ba57579d5702d7a4d893d0f31108646 Copying blob sha256:e891be0c59b22a3ba63e39c38b5d40a9f400973776b20561775c6bbfd29340f0 Copying config sha256:d482a7128d47075802fb6287e8ee2c5ec3c2809392d025a7ddc86191e7f7f09a Writing manifest to image destination Getting image source signatures Copying blob sha256:4b190baf2e5a91267304d757bcb4b2d49783ac242ab4117a4c899255e9cd45f3 Copying blob sha256:935c56d8b3f96d6587f3640e491767688b790c458a01fef327188abcbbafdc9a Copying blob sha256:697949baa6589708187ff25708ee6c7cf2c6657399552a019598b1da7f617acf Copying blob sha256:e6feec0db89a854a83e704823cdd269ad82625cb57ecc06b4ede6095948f66db Copying blob sha256:5276d2b930fc59425e6cf44315e0ca0de5948865d615de79e34d5ff9bf3a9b96 Copying config sha256:12b84515a7b969f5db981bbd792f802279f1287f4ea5dcb27d9881bc072841ee Writing manifest to image destination Getting image source signatures Copying blob sha256:7ad978b9d24ab4430a378426c7e34414a77ecd64434ee4b2e6bfaea1d2709189 Copying blob sha256:c95d2191d7773c6e29188f92922bc9547e1f0b6130e85dfc2f5e4eae13137c7c Copying blob sha256:9f10818f1f96a349981e134a0e8d566fa5ab144c9f9f4e766be8cdab76d4074d Copying blob sha256:27502392e386147bf71f51b4676dbe938b9b86592e41047c17fc94a116aa2841 Copying config sha256:8214d73b7cd0b061275fe6493d4976e8a6b6c0db62c377f484276b5575e3eeff Writing manifest to image destination Getting image source signatures Copying blob sha256:b9c146b49315bd6ca6920e4e1ef0572461f47cb7e3aa14cc2214b5203744cb17 Copying blob sha256:9f32931c9d28f10104a8eb1330954ba90e76d92b02c5256521ba864feec14009 Copying blob sha256:dbf2c0f42a39b60301f6d3936f7f8adb59bb97d31ec11cc4a049ce81155fef89 Copying blob sha256:02473afd360bd5391fa51b6e7849ce88732ae29f50f3630c3551f528eba66d1e Copying config sha256:7d54864918ec2180ea198ad79ea51a412aec4a164bc2e9de9add651190ae7afc Writing manifest to image destination ```
moreati commented 2 months ago

Made the container images public

moreati commented 2 months ago

GitHub Actions jobs still suffer intermediate failures (#1058), but at a much lower rate: 1 case in https://github.com/mitogen-hq/mitogen/actions/runs/11043748197, vs 5+ in https://dev.azure.com/mitogen-hq/mitogen/_build/results?buildId=1024&view=results.

moreati commented 2 months ago

Green across both the boards 😁