feat: allow override renovate image (#739)

Co-authored-by: Oreste Di Modugno <oreste.dimodugno@adevinta.com>
Co-authored-by: Rhys Arkins <rhys@arkins.net>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
This commit is contained in:
Oreste Di Modugno 2023-05-25 10:09:15 +02:00 committed by GitHub
parent bba1483352
commit 53fd09be22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 53 additions and 1 deletions

View file

@ -100,6 +100,45 @@ jobs:
token: ${{ secrets.RENOVATE_TOKEN }}
```
## `renovate-image`
The Renovate docker image name to use.
If omited or `renovate-image === ''` the action will use the `renovate/renovate` docker image name otherwise.
If a docker image name is defined, the action will use that name to pull the image.
This sample will use `myproxyhub.domain.com/renovate/renovate:slim` image.
```yml
....
jobs:
renovate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.3.0
- name: Self-hosted Renovate
uses: renovatebot/github-action@v36.0.0
with:
renovate-image: myproxyhub.domain.com/renovate/renovate
token: ${{ secrets.RENOVATE_TOKEN }}
```
This sample will use `renovate/renovate:slim` image.
```yml
....
jobs:
renovate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.3.0
- name: Self-hosted Renovate
uses: renovatebot/github-action@v36.0.0
with:
token: ${{ secrets.RENOVATE_TOKEN }}
```
## `useSlim`
If set to `false` the action will use the full renovate image instead of the slim image.

View file

@ -30,6 +30,11 @@ inputs:
description: |
Renovate version to use. Defaults to latest.
required: false
renovate-image:
description: |
Renovate docker image name.
Defaults to `renovate/renovate`.
required: false
runs:
using: node16
main: dist/index.js

View file

@ -2,10 +2,14 @@ import type { Input } from './input';
class Docker {
private static readonly repository = 'renovate/renovate';
private readonly dockerImage: string;
private readonly fullTag: string;
constructor(input: Input) {
const tag = input.getVersion();
this.dockerImage = input.getDockerImage() ?? Docker.repository;
this.fullTag = input.useSlim()
? tag
? `${tag}-slim`
@ -14,7 +18,7 @@ class Docker {
}
image(): string {
return `${Docker.repository}:${this.fullTag}`;
return `${this.dockerImage}:${this.fullTag}`;
}
}

View file

@ -64,6 +64,10 @@ class Input {
return core.getInput('useSlim') !== 'false';
}
getDockerImage(): string | null {
return core.getInput('renovate-image') || null;
}
getVersion(): string | null {
const version = core.getInput('renovate-version');
return !!version && version !== '' ? version : null;