-
Notifications
You must be signed in to change notification settings - Fork 185
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
Merge and change the structure of stack files and update build strategy, and some improvements #227
Conversation
As for the build time of By the way, when the arm64 version of RStudio Server is released, it probably won't even be able to muli-arch build up to |
9538de7
to
ab2a993
Compare
which contains group from docker-bake.json
ab2a993
to
3fcad70
Compare
into version name stack files
make-stacks.R
66380cc
to
341f5d1
Compare
and update the script to copy labels to docker-bake.json
In 32b1548, I have added I used the explanations on Docker Hub, but I would appreciate it if you could give me instructions if there is a more appropriate text. |
and use it in scripts instead of the hard-coded username close rocker-org#231
caf8f7a
to
0d21f9d
Compare
2dad3a2
to
4490163
Compare
This PR has become very huge as the stack files and almost all the files generated from them have changed. This should be the last huge PR in a series of build system automation (#181), and I think that automation is almost over when it is merged. |
I didn't understand what the
Update: I've reconsidered about I also left |
if there is only one target
It's a late question, but is there any point in continuing to build old version of Unlike other images, the default CRAN is not date-fixed, so I think it is better to separate |
To recap, I would prefer to make the following modifications.
Originally, I should have thought this far before starting the work... Do you think these changes make sense? |
Nice, these proposed changes make sense to me. yeah, sometimes the better way to do things is only obvious after trying some alternatives! |
Oh, and in reply to the above -- right, I don't think it makes sense to build old versions of the geospatial dev images (ubuntugis and dev-osgeo). Maintaining those may be tricky if those sources change (though I think our config is relatively stable for them), and dev-osgeo in particular is an intensive build. We might drop ubuntugis if dev-osgeo is proving stable, since these two are a bit redundant. Still, many users and CI platforms elsewhere use the PPA-based ubuntugis strategy it's faster (though not being able to use RSPM binaries somewhat defeats that anyway), and so it can be nice to be able to replicate that. On the flip side the value-add of building the latest osgeo sources is much larger, since they are both slow and somewhat tricky to configure properly to talk to the R packages... |
I changed the structure of the stack file as suggested above and also set up automatic updates and build workflow. After create a new release (when the new R version is released) New workflow Please note that the image information defined in |
changed `make-bakejson.R` to create base image name and version labels
@eitsupi This looks good to me. I think we're ready to merge? |
@cboettig Thank you for your review. Note that merging this PR will trigger the release workflow, but ignore it as the workflow will be canceled as the tag |
Completely merge the stack files that exist for each version into
X.Y.Z.json
(version-fixed images) orextra.json
(special images that build only the latest version; geospatial dev images).To shorten the build time, change the structure of the matrix used in GitHub Actions so that images that do not have dependencies within the same version can be set as separate groups and built in parallel for each group.
To do such a build on GitHub Actions, modify the structure of the matrix files to include the
group
ondocker-bake.json
.The new matrix files are automatically generated from
docker-bake.json
files.Some image names (
IMAGE
in stack files, which is used as Dockerfiles' name etc.) changed in order to avoid duplicate key names indocker-bake.json
, the compose files will not be generated normally from the integrated stack file, so update thewrite-compose.R
not to generate compose files from the integrated stack files.This also affects some Dockerfiles' name.
And, this PR makes some small improvements to stack files or files generated from stack files.
rocker/r-ver:X.Y.Z
etc. (close Change the copy order according to best practices? #230)DEFAULT_USER
to ENV forrocker/rstudio
etc. (close SetDEFAULT_USER
as ENV onrocker/rstudio
's Dockerfiles? #231)install_rstudio.sh
for RStudio new calendar based versioning. (close New RStudio version name #232)ToDo
group
in each stack files anddocker-bake.json
files.group
.X.Y.Z.json
orextra.json
(geospatial dev images) and to be updated bysync-template-vars.R
andmake-stacks.R
.Note: Due to the trigger of GitHub Actions,
make-stacks.R
now also updatesdevel.json
which is a template ofX.Y.Z.json
(Create releases and build non-latest images automatically #223), so there is no point in separatingsync-template-vars.R
andmake-stacks.R
, I integratesync-template-vars.R
functionality intomake-stacks.R
.extra.yml
to build images defined byextra.json
.docker-bake.json
org.opencontainers.image.version
org.opencontainers.image.title
org.opencontainers.image.description
org.opencontainers.image.base.name
COPY
section and theRUN
section in the stack files and Dockerfiles into two parts, and use cache when building images.DEFAULT_USER
to ENV.Makefile
, and use them in GitHub Actions workflow.