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

Support binarySource=install for all artifacts generation #13683

Closed
20 tasks done
rarkins opened this issue Jan 20, 2022 · 7 comments · Fixed by #19510
Closed
20 tasks done

Support binarySource=install for all artifacts generation #13683

rarkins opened this issue Jan 20, 2022 · 7 comments · Fixed by #19510
Assignees
Labels
priority-2-high Bugs impacting wide number of users or very important features status:in-progress Someone is working on implementation type:feature Feature (new functionality)

Comments

@rarkins
Copy link
Collaborator

rarkins commented Jan 20, 2022

What would you like Renovate to be able to do?

Support binarySource=install for all relevant managers which use tools/managers to update artifacts.

If you have any ideas on how this should be implemented, please tell us here.

This issue will be a meta issue and we should have sub-issues for each which needs it. Sub-issues:

Note: the above scope does not extend to language installs (e.g. node, java) which should be done afterwards, with a similar list. Eventually everything will have a renovate/sidecar base image like jsonnet-bundler does.

This issue is closely linked to containerbase/base#16

Is this a feature you are interested in implementing yourself?

Maybe

@rarkins rarkins added type:feature Feature (new functionality) status:requirements Full requirements are not yet known, so implementation should not be started priority-5-triage labels Jan 20, 2022
@HonkingGoose HonkingGoose added priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others and removed priority-5-triage labels Jan 20, 2022
@rarkins
Copy link
Collaborator Author

rarkins commented Jan 21, 2022

Here's how I test this locally:

First, I docker pull renovate/renovate to make sure I'm on the latest.

Next, I use config.js for configuration as it's most convenient for me. e.g. I can set binarySource: 'install' within this config.js. I also have token: process.env.GITHUB_RENOVATE_TESTS_TOKEN.

Before testing out new code, it's essential to run yarn build.

Then from my Renovate source directory:

docker run --rm -e GITHUB_RENOVATE_TESTS_TOKEN -e LOG_LEVEL=debug -w `pwd` -v `pwd`:`pwd` renovate/renovate node dist/renovate org-to-be-tested/repo-to-be-tested

@rarkins
Copy link
Collaborator Author

rarkins commented Jan 21, 2022

Here's the candidate list of tools:

❯ curl -s https://raw.githubusercontent.com/renovatebot/docker-renovate-full/main/Dockerfile | grep "install-tool"
RUN install-tool node v14.18.3
RUN install-tool yarn 1.22.17
RUN install-tool docker 20.10.12
RUN install-tool java 11.0.13+8
RUN install-tool gradle 6.9.2
RUN install-tool erlang 22.3.2
RUN install-tool elixir 1.13.2
RUN install-tool php 7.4.27
RUN install-tool composer 2.2.4
RUN install-tool golang 1.17.6
RUN install-tool python 3.10.2
RUN install-tool poetry 1.1.12
RUN install-tool rust 1.58.1
RUN install-tool ruby 3.1.0
RUN install-tool dotnet 6.0.101
RUN install-tool pnpm 6.26.1
RUN install-tool helm v3.7.2

Tools can be checked for runtime compatibility within https://github.com/containerbase/buildpack/tree/main/src/usr/local/buildpack/tools

Example of one which supports user install: https://github.com/containerbase/buildpack/blob/main/src/usr/local/buildpack/tools/helm.sh

Example of one which does not: https://github.com/containerbase/buildpack/blob/26cf7d7273177157cfa1d09af62e8a8e8a189e83/src/usr/local/buildpack/tools/dotnet.sh#L5

@viceice viceice added status:in-progress Someone is working on implementation and removed status:requirements Full requirements are not yet known, so implementation should not be started labels Aug 8, 2022
@viceice viceice mentioned this issue Aug 16, 2022
6 tasks
@rarkins
Copy link
Collaborator Author

rarkins commented Oct 30, 2022

❯ find lib/modules/manager | grep artifacts.ts | xargs grep "image: '" | grep -v sidecar
lib/modules/manager/gomod/artifacts.ts:        image: 'go',
lib/modules/manager/cargo/artifacts.ts:      image: 'rust',
lib/modules/manager/nuget/artifacts.ts:      image: 'dotnet',
lib/modules/manager/cocoapods/artifacts.ts:      image: 'ruby',
lib/modules/manager/bundler/artifacts.ts:        image: 'ruby',

@rarkins
Copy link
Collaborator Author

rarkins commented Oct 30, 2022

Go should be the least priority because running everything using latest go version is usually OK. ruby should be highest priority because it often needs an exact version installed. So ruby > dotnet > rust > go

@rarkins rarkins added priority-2-high Bugs impacting wide number of users or very important features and removed priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others labels Oct 30, 2022
@rarkins
Copy link
Collaborator Author

rarkins commented Nov 25, 2022

❯ find lib/modules/manager | grep artifacts.ts | xargs grep "image: '" | grep -v sidecar
lib/modules/manager/cargo/artifacts.ts:      image: 'rust',
lib/modules/manager/cocoapods/artifacts.ts:      image: 'ruby',
lib/modules/manager/bundler/artifacts.ts:        image: 'ruby',

@viceice
Copy link
Member

viceice commented Nov 25, 2022

rust PR open 🎉

@renovate-release
Copy link
Collaborator

🎉 This issue has been resolved in version 34.69.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
priority-2-high Bugs impacting wide number of users or very important features status:in-progress Someone is working on implementation type:feature Feature (new functionality)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants