Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms #151

Merged
merged 8 commits into from
Oct 8, 2024

Conversation

mcdonnnj
Copy link
Member

@mcdonnnj mcdonnnj commented Aug 30, 2024

🗣 Description

This pull request drops support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms when building a Docker image to push to Docker Hub.

Note

This pull request is built on top of #147.

💭 Motivation and context

The current full image build is butting up against the six hour runtime limit for GitHub Actions runners. This is due to these platforms needing to build some Python wheels which requires compiling Rust code in conjunction with the fact that all images are being built on a single runner relying on QEMU for all platforms that aren't AMD64. We would like to restore support for these platforms when it becomes viable and that is being tracked in #150.

🧪 Testing

Automated tests pass.

✅ Pre-approval checklist

  • This PR has an informative and human-readable title.
  • Changes are limited to a single goal - eschew scope creep!
  • All future TODOs are captured in issues, which are referenced
    in code comments.
  • All relevant type-of-change labels have been added.
  • I have read the CONTRIBUTING document.
  • These code changes follow cisagov code standards.
  • All relevant repo and/or project documentation has been updated
    to reflect the changes in this PR.
  • All new and existing tests pass.

@mcdonnnj mcdonnnj added bug This issue or pull request addresses broken functionality breaking change This issue or pull request involves changes to existing functionality labels Aug 30, 2024
@mcdonnnj mcdonnnj self-assigned this Aug 30, 2024
Copy link
Member

@dav3r dav3r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

This includes updating all of the system packages installed to the
versions available for Alpine Linux 3.20.
This updates the `build-stage` to match the versions of Python and
Alpine Linux used in the `compile-stage`. This also includes updating
the versions of all system packages installed.
Bump the Python packages installed in the `compile-stage` as follows:
- pip from 23.1.2 to 24.2
- pipenv from 2023.10.20 to 2024.1.0
- setuptools from 67.7.2 to 75.1.0
- wheel from 0.40.0 to 0.44.0
Update the version of Python declared in the Pipfile and update the
dependencies installed in the Python virtual environment by running
`pipenv lock` in the `src/` directory.
Alpine Linux 3.20 configures Python 3 as externally managed, so we need
to pass this flag to `pip` to install a Python package directly. Since we
are using this to build a Python virtual environment in the
`compile-stage` that is moved to the `build-stage` for use in the final
image this should pose no issues.
We need some changes that were added in the LLNL/scraper repo but do
not yet have a PyPI release. Rather than continue to use a fork in our
GitHub organization it makes sense to pull in LLNL/scraper at a
specific commit until a new version is release to PyPI.
In the move from Alpine Linux 3.17 to 3.18 we also moved from Cargo
1.64.0 to 1.71.1. This takes us past 1.68, which introduced sparse
registries, and 1.70, which made `sparse` the default protocol to use
with crates.io (the default registry). This resolves #38, and based on
testing it also resolves #32.
@mcdonnnj mcdonnnj force-pushed the improvement/drop_support_for_some_platforms branch from 846fd7b to 49176b7 Compare October 7, 2024 20:58
@jsf9k
Copy link
Member

jsf9k commented Oct 8, 2024

image

Drop support for the `linux/arm/v6`, `linux/ppc64le`, and `linux/s390x`
platforms. This is done because the Docker image build time with these
platforms included pushes the total workflow runtime over the GitHub
Actions runtime limit of six hours. This is largely due to these
platforms being older, esoteric, and emulated and then having to
compile when building certain Python packages.
@mcdonnnj mcdonnnj force-pushed the improvement/drop_support_for_some_platforms branch from 49176b7 to 8fcc09e Compare October 8, 2024 19:16
@mcdonnnj mcdonnnj changed the title Drop support for the linux/ppc64le and linux/s390x platforms Drop support for the linux/arm/v6, linux/ppc64le, and linux/s390x platforms Oct 8, 2024
@mcdonnnj mcdonnnj requested review from jsf9k and dav3r October 8, 2024 19:50
@mcdonnnj mcdonnnj merged commit ce274e2 into develop Oct 8, 2024
25 checks passed
@mcdonnnj mcdonnnj deleted the improvement/drop_support_for_some_platforms branch October 8, 2024 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change This issue or pull request involves changes to existing functionality bug This issue or pull request addresses broken functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants