deployphp/index.js
Anton Medvedev 13c2ed42a5 Add action
2020-11-10 23:03:10 +01:00

46 lines
1.1 KiB
JavaScript

const core = require('@actions/core')
const fs = require('fs')
const execa = require('execa')
void function main() {
ssh()
dep()
}()
function ssh() {
let ssh = `${process.env['HOME']}/.ssh`
fs.mkdirSync(ssh)
let authSock = '/tmp/ssh-auth.sock'
execa.sync('ssh-agent', ['-a', authSock])
core.exportVariable('SSH_AUTH_SOCK', authSock)
let privateKey = core.getInput('private-key').replace('/\r/g', '').trim() + '\n'
execa.sync('ssh-add', ['-'], {input: privateKey})
let knownHosts = core.getInput('known-hosts')
if (knownHosts === '') {
fs.appendFileSync(`/etc/ssh/ssh_config`, `StrictHostKeyChecking no`)
} else {
fs.appendFileSync(`${ssh}/known_hosts`, knownHosts)
fs.chmodSync(`${ssh}/known_hosts`, '644')
}
}
function dep() {
let dep
for (let c of ['vendor/bin/dep', 'bin/dep', 'deployer.phar']) {
if (fs.existsSync(c)) {
dep = c
break
}
}
if (!dep) {
execa.commandSync('curl -LO https://deployer.org/deployer.phar')
dep = 'deployer.phar'
}
execa.commandSync(`${dep} ${core.getInput('dep')}`)
}