This commit is contained in:
Leandro Facchinetti 2020-03-20 01:37:31 -04:00
parent 1be978eee5
commit e1f2c29d6b
3 changed files with 19 additions and 51 deletions

View File

@ -8,3 +8,15 @@ jobs:
with:
node-version: "13.x"
- run: npm install-ci-test
- uses: webfactory/ssh-agent@v0.2.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
if: github.ref == 'ref/head/master'
- run: |
ssh -A root@204.48.21.111 'ssh git@github.com'
if: github.ref == 'ref/head/master'
# - run: |
# mkdir ~/.ssh
# echo "${{ secrets.SECRET_PRIVATE_DEPLOY_KEY }}" > ~/.ssh/id_rsa
# chmod 600 ~/.ssh/id_rsa
# ssh-add

View File

@ -49,6 +49,11 @@
"ref": "origin/master",
"repo": "git@github.com:leafac/www.kill-the-newsletter.com.git",
"path": "/root/www.kill-the-newsletter.com",
"pre-setup-documentation": [
"https://github.com/nodesource/distributions#debinstall",
"https://certbot.eff.org/docs/install.html"
],
"pre-setup": "ssh -o StrictHostKeyChecking=no git@github.com; apt-get update; apt-get install -y build-essential software-properties-common; curl -sL https://deb.nodesource.com/setup_13.x | bash -; add-apt-repository universe; add-apt-repository ppa:certbot/certbot; apt-get install -y nodejs certbot",
"ssh_options": [
"ForwardAgent=yes",
"StrictHostKeyChecking=no"

View File

@ -1,54 +1,5 @@
import child_process from "child_process";
switch (process.argv[2]) {
case "provision":
child_process.execSync(`ssh-add`);
// https://github.com/nodesource/distributions#debinstall
// https://certbot.eff.org/docs/install.html
exec(`apt-get update`);
exec(`apt-get install -y build-essential software-properties-common`);
exec(`curl -sL https://deb.nodesource.com/setup_13.x | bash -`);
exec(`add-apt-repository universe`);
exec(`add-apt-repository ppa:certbot/certbot`);
exec(`apt-get install -y nodejs certbot`);
exec(`git clone git@github.com:leafac/www.kill-the-newsletter.com.git`);
break;
case "deploy":
child_process.execSync(`ssh-add`);
execInFolder(`git pull origin master`);
execInFolder(`npm ci`);
// execInFolder(`git pull origin master`);
// execInFolder(`npm ci`);
// TODO: rsync
// TODO: $ pm2 startup OR $ pm2 save
// TODO: $ pm2 start env.js --watch --ignore-watch="node_modules"
break;
default:
console.error(
`Unknown invocation: ${JSON.stringify(process.argv, undefined, 2)}`
);
process.exit(1);
}
function exec(command: string): void {
console.log("$", command);
child_process.execFileSync(
"ssh",
["-tA", "root@kill-the-newsletter.com", command],
{ stdio: "inherit" }
);
}
function execInFolder(command: string): void {
exec(`cd www.kill-the-newsletter.com && env NODE_ENV=production ${command}`);
}
// - run: |
// mkdir ~/.ssh
// echo "${{ secrets.SECRET_PRIVATE_DEPLOY_KEY }}" > ~/.ssh/id_rsa
// chmod 600 ~/.ssh/id_rsa
// https://github.com/webfactory/ssh-agent
// root 'apt-get install -y curl file git'