nasa-pds / github-actions-base Goto Github PK
View Code? Open in Web Editor NEWBase Docker image for GitHub Actions for PDS
License: Apache License 2.0
Base Docker image for GitHub Actions for PDS
License: Apache License 2.0
Upgrade the github-actions-base from python:3.9.7-alpine3.14 β python:3.9.16-alpine3.16
To speed up (by an insane amount) the running of GitHub Actions, we use a common base image, the Dockerfile of which is in the GitHub Actions Base repository.
However, each time we make updates to this Dockerfile, someone has to do a separate step of building and registering the new image with the Docker Hub.
We should use GitHub Actions in this very repository to automatically build and upload a new image whenever there's a merge to master
(main
). This way there will never be any question of whether what's in the Docker Hub is out of sync with what's here in the GitHub repository.
I merged a change from @MJJoyce that resulted in the Roundup running and failing with this log. @tloubrieu-jpl found the problem in the pds-github-util and fixed it π This fix is on PyPI as version 0.22.2.
But Roundup uses the Github Actions Base which calls for 0.22.0 β¦ womp womp π’
Please update the Github Actions Base to use 0.22.2.
See #10 for lots of details. TLDR, we want github-actions-base
to build whenever a new release of pds-github-util
gets tagged so magical CI things will happen without manual updates from us.
pds-github-util
has an open PR (NASA-PDS/pds-github-util#22) to add an action to emit a Repository Dispatch event via https://github.com/marketplace/actions/repository-dispatch whenever a new version is tagged. We need to listen for that event so we can trigger a build as well.
The Sandbox GitHub Actions Base repo has a number of updates that fix bug and add features that are necessary for us to reach a stable build environment. We need to pull these changes out reintegrate them into our regular repo
gem install github_changelog_generator -v 1.15.2
No - I haven't checked
A commit made directly to the main
branch of this repository upgraded the FROM
image of github-actions-base
from Alpine 3.14 to Alpine 3.16.
This resulted in:
git
being upgraded from 2.32.0 β 2.36.5ruby
being upgraded from 2.7.4 β 3.1.4The change to git
broke the Roundup Action's "Requirements" step and the change to ruby
broke the "Changelog" step. (The fix needed to address the upgrade to git
will be addressed in the roundup-action
repository` in a separate issue.)
The issue with ruby
is that it had a major upgrade, from 2 β 3, and the changelog generator was pinned to a much older commit. The changelog generator should be upgraded to the latest official gem version in order to become compatible with ruby
3.
I expected these two steps to work.
Use nasapds/github-actions-base:latest
in the Roundup Action's Dockerfile
as its FROM
and watch things blow up mysteriously.
Github Actions
nasapds/github-actions-base:latest
No response
π¦ #xyz
No response
No - I haven't checked
Engineers at the PDS Engineering Node
β¦so that I can have more signal and less noise and ensure that this software survives past when features are removed.
When the "Image Build & Push" workflow in this repository runs, it makes the complaint:
Warning: The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Given
When I perform
Then I expect
No response
Take a look at https://github.com/NASA-PDS/pds-doi-service/runs/3626183249?check_suite_focus=true
See the problem? The pds-doi-service
is based on the pds-template-repo-python
, both of which use Python 3.9 features, such as type annotations using type
-based types like list
and dict
. But the Roundup fails because Using list
and dict
in type annotations isn't supported in Python 3.8, which is what the Roundup uses.
Commit a change to pds-doi-service
then wait 22+ minutes.
If the pds-template-repo-python
and all of our other Python-based repositories are using Python 3.9, then the Roundup should too.
See https://github.com/NASA-PDS/github-actions-base/runs/2875626989?check_suite_focus=true
When the release
trigger got sent, the automatic image construction failed.
Also maybe this should happen on a push
event to a version release branch, not a release
event.
No - I haven't checked
Any developer using github-actions-base
β¦so that I can debug problems with github-actions-base
when I'm using my fancy high-powered Mac Studio with an M1 Ultra CPU and not have to go to my old broken and super slow MacBook Pro with an ancient Intel CPU.
No response
Given
When I perform
Then I expect
No response
See https://github.com/NASA-PDS/github-actions-base/runs/3424298356?check_suite_focus=true#step:4:354
See #10 for related discussions. We want the latest pds-github-utils
release to get pulled into github-actions-base
.
The naive "just don't install a specific tag for pds-github-utils
approach seems reasonable enough here. Not sure if there's concerns about that. We could certainly come up with a more complicated solution but it would seemingly get us to the same-ish end point. Thoughts?
Drop pds-github-util
from our base Docker image in favor of down-stream "users" installing the dependency. This will keep our base image releases more stable instead of constantly rebuilding / releasing to integrate changes in support tooling.
The latest Python repositories in the Planetary Data System make use of several advanced features like tox
, black
, mypy
, etc.
While these tools run just fine on most developer systems, in the minimal container environment of the Roundup Action, they fail because of missing libraries.
The base image for containerized apps for the PDSβsuch as for the Roundup Actionβshould include the following packages:
libgit2-dev
For pds-api build to work (see action https://github.com/NASA-PDS/pds-api/actions/runs/4735783155/jobs/8406453520)
We need the module sphinx_substitution_extensions
to be added.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.