Add auth_file_path input and --verbose flag (#21)

Signed-off-by: divyansh42 <diagrawa@redhat.com>
This commit is contained in:
Divyanshu Agrawal 2022-05-04 13:15:40 +05:30 committed by GitHub
parent 43f863be90
commit 34f135348d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 34 additions and 9 deletions

View file

@ -36,6 +36,7 @@ jobs:
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
registry: ${{ env.IMAGE_REGISTRY }}
auth_file_path: ./auth/auth.json
- name: Pull image with Podman
run: podman pull ${{ env.IMAGE_PATH }}

View file

@ -26,6 +26,7 @@ This action only runs on `Linux`, as it uses [podman](https://github.com/contain
| username | Username to log in against the container image registry. | **Must be provided**
| password | Password, encrypted password, or access token for `username`. | **Must be provided**
| logout | By default, the action logs out of the container image registry at the end of the job (for self-hosted runners). Set this to `false` to disable this behaviour. | `true`
| auth_file_path | Path of the authentication file, this will override the default auth file path in podman | Default set in podman |
## Examples
@ -84,5 +85,5 @@ jobs:
# Now you can push images, and pull private ones, from ghcr.io.
```
Refer to the [GitHub documentation](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context)
Refer to the [GitHub documentation](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context) <!-- markdown-link-check-disable-line -->
for information about the `github` context object.

View file

@ -14,6 +14,9 @@ inputs:
password:
description: 'Password, encrypted password, or access token for username'
required: true
auth_file_path:
description: 'Path of the authentication file, this will override the default auth file path in podman'
required: false
logout:
description: |
'By default, the action logs out of the container image registry at the end

2
dist/index.js vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View file

@ -14,7 +14,8 @@
"compile": "tsc -p .",
"bundle": "ncc build src/index.ts --source-map --minify",
"clean": "rm -rf out/ dist/",
"lint": "eslint . --max-warnings=0"
"lint": "eslint . --max-warnings=0",
"generate-ios": "npx action-io-generator -w -o ./src/generated/inputs-outputs.ts"
},
"keywords": [],
"author": "Red Hat",

View file

@ -1,5 +1,11 @@
// This file was auto-generated by action-io-generator. Do not edit by hand!
export enum Inputs {
/**
* Path of the authentication file, this will override the default auth file path in podman
* Required: false
* Default: None.
*/
AUTH_FILE_PATH = "auth_file_path",
/**
* 'By default, the action logs out of the container image registry at the end
* of the job (for self-hosted runners). Set this to false to disable this behaviour'

View file

@ -34,6 +34,7 @@ async function run(): Promise<void> {
const username = core.getInput(Inputs.USERNAME, { required: true });
const password = core.getInput(Inputs.PASSWORD, { required: true });
const logout = core.getInput(Inputs.LOGOUT) || "true";
const authFilePath = core.getInput(Inputs.AUTH_FILE_PATH);
stateHelper.setRegistry(registry);
stateHelper.setLogout(logout);
@ -46,17 +47,29 @@ async function run(): Promise<void> {
"-p",
password,
];
args.push("--verbose");
if (authFilePath) {
args.push(`--authfile=${authFilePath}`);
}
await execute(await getPodmanPath(), args);
core.info(`✅ Successfully logged in to ${registry} as ${username}`);
// Setting REGISTRY_AUTH_FILE environment variable as buildah needs
// this environment variable to point to registry auth file
let authFileDir = path.join("/", "tmp", `podman-run-${process.getuid()}`);
if (process.env.XDG_RUNTIME_DIR) {
authFileDir = process.env.XDG_RUNTIME_DIR;
let podmanAuthFilePath;
if (authFilePath) {
podmanAuthFilePath = authFilePath;
}
else {
let authFileDir = path.join("/", "tmp", `podman-run-${process.getuid()}`);
if (process.env.XDG_RUNTIME_DIR) {
authFileDir = process.env.XDG_RUNTIME_DIR;
}
podmanAuthFilePath = path.join(authFileDir,
"containers", "auth.json");
}
const podmanAuthFilePath = path.join(authFileDir,
"containers", "auth.json");
const REGISTRY_AUTH_ENVVAR = "REGISTRY_AUTH_FILE";
core.info(`Exporting ${REGISTRY_AUTH_ENVVAR}=${podmanAuthFilePath}`);
core.exportVariable(REGISTRY_AUTH_ENVVAR, podmanAuthFilePath);