import * as os from 'os'; import * as core from '@actions/core'; import * as exec from './exec'; import * as stateHelper from './state-helper'; async function run(): Promise { try { if (os.platform() !== 'linux') { core.setFailed('Only supported on linux platform'); return; } const registry: string = core.getInput('registry'); stateHelper.setRegistry(registry); stateHelper.setLogout(core.getInput('logout')); const username: string = core.getInput('username'); const password: string = core.getInput('password', {required: true}); let loginArgs: Array = ['login', '--password', password]; if (username) { loginArgs.push('--username', username); } loginArgs.push(registry); await exec.exec('docker', loginArgs, true).then(res => { if (res.stderr != '' && !res.success) { throw new Error(res.stderr); } core.info('🎉 Login Succeeded!'); }); } catch (error) { core.setFailed(error.message); } } async function logout(): Promise { if (!stateHelper.logout) { return; } await exec.exec('docker', ['logout', stateHelper.registry], false).then(res => { if (res.stderr != '' && !res.success) { core.warning(res.stderr); } }); } if (!stateHelper.IsPost) { run(); } else { logout(); }