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

Rebuild Rust container on December 2023 with Rust 1.74 #33

Merged
merged 1 commit into from
Dec 6, 2023

Conversation

MarijnS95
Copy link
Contributor

@MarijnS95 MarijnS95 commented Dec 6, 2023

Fixes ash-rs/ash#847

The current image is quite dated and no longer adequate to compile ash. Our rust:latest base image tag is replaced with 1.74 to ensure a recent-enough Rust base container is used, instead of considering an ancient local image/tag cache, as experience has shown.

@MarijnS95
Copy link
Contributor Author

CC @oddhack, apparently I don't have rights to assign you as reviewer :)

@MarijnS95
Copy link
Contributor Author

Someone with push rights will have to run ./build-one.sh rust 202312 push :)

@MarijnS95
Copy link
Contributor Author

MarijnS95 commented Dec 6, 2023

Looks like the openxr-android build is failing:

https://github.com/KhronosGroup/DockerContainers/actions/runs/7114684910/job/19369225005#step:3:10990

  #11 3.798 Accept? (y/N): All SDK package licenses accepted
  #11 3.799 
  #11 3.821 Installing the Android compile SDK platform android-29
  #11 9.678 Installing the latest Android platform tools
  #11 11.61 Installing the Android NDK 21.4.7075529
  #11 46.98 Installing CMake 3.22.1
  #11 50.12 Installing the Android 'patcher'
  #11 51.22 Warning: Failed to find package 'patcher;v4'
  #11 ERROR: process "/bin/sh -c /install-android-sdk.sh" did not complete successfully: exit code: 1
  ------
   > [6/8] RUN /install-android-sdk.sh:
  3.798 10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.
  3.798 ---------------------------------------
  3.798 Accept? (y/N): All SDK package licenses accepted
  3.799 
  3.821 Installing the Android compile SDK platform android-29
  9.678 Installing the latest Android platform tools
  11.61 Installing the Android NDK 21.4.7075529
  46.98 Installing CMake 3.22.1
  50.12 Installing the Android 'patcher'
  51.22 Warning: Failed to find package 'patcher;v4'
  ------
  openxr-android.Dockerfile:54
  --------------------
    52 |     
    53 |     COPY install-android-sdk.sh /install-android-sdk.sh
    54 | >>> RUN /install-android-sdk.sh
    55 |     
    56 |     ### Android NDK
  --------------------
  ERROR: failed to solve: process "/bin/sh -c /install-android-sdk.sh" did not complete successfully: exit code: 1

@oddhack
Copy link
Collaborator

oddhack commented Dec 6, 2023

Someone with push rights will have to run ./build-one.sh rust 202312 push :)

I did that just now - see sha256:af4e8013ba4f53127d0868f0e4580a61c3e861aec4a9020b16f5a3fa76e1ba76 - but that image appears? to still be running rustc 1.68.0. Could you check on that? Is there anything in my local OS setup which would affect this?

@MarijnS95
Copy link
Contributor Author

I'm not sure when docker redownloads images/tags if the rust:latest tag (from a previous build) is already available on your system. You could issue a docker pull rust:latest before building, but perhaps we should explicitly set the version tag to the latest 1.74 release?

@oddhack
Copy link
Collaborator

oddhack commented Dec 6, 2023

I'm not sure when docker redownloads images/tags if the rust:latest tag (from a previous build) is already available on your system. You could issue a docker pull rust:latest before building, but perhaps we should explicitly set the version tag to the latest 1.74 release?

Sigh, you are right. I had forgotten that the docker container cache can screw up building our images here just as much as using them in Vulkan CI. Please update this and I'll try again.

This is such deeply suboptimal behavior that I have no idea why Docker thinks it's a good idea. It's one thing to use the cache if you're offline, but it's trivial to check the SHA of the cache image vs. the repository, and I could not find a way to force that behavior, which is why we use SHAs now instead of static names.

The current image is quite dated and no longer adequate to compile `ash`.
Our `rust:latest` base image tag is replaced with `1.74` to ensure a
recent-enough Rust base container is used, instead of considering an
_ancient_ local image/tag cache, as experience has shown.
@MarijnS95 MarijnS95 changed the title Rebuild Rust container on December 2023 (with latest Rust) Rebuild Rust container on December 2023 with Rust 1.74 Dec 6, 2023
@MarijnS95
Copy link
Contributor Author

@oddhack done!

@oddhack
Copy link
Collaborator

oddhack commented Dec 6, 2023

Confirmed to work in local testing, thanks!

@oddhack oddhack merged commit dac9bb8 into KhronosGroup:main Dec 6, 2023
@MarijnS95 MarijnS95 deleted the rust-update branch December 6, 2023 14:21
@rpavlik
Copy link
Contributor

rpavlik commented Dec 6, 2023

yeah I tend to docker pull BaseImageName before building and pushing, personally, not sure how to make it automatic.

edit: and yet I forgot to do it for the Android one. So you can pass --pull to the docker build command to make it pull automatically, do we want to just do that unconditionally in the scripts? or add another arg or something? I hate arg parsing in bash...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

vulkan gitlab CI failing with wrong rustc version
3 participants