mirror of
https://github.com/shimataro/ssh-key-action.git
synced 2025-06-19 22:52:10 +10:00
parent
4e56f6f7e9
commit
3ba1bf8166
6 changed files with 110 additions and 8 deletions
4
.github/workflows/verify-on-macos.yml
vendored
4
.github/workflows/verify-on-macos.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
@ -21,7 +21,7 @@ jobs:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
|
4
.github/workflows/verify-on-ubuntu.yml
vendored
4
.github/workflows/verify-on-ubuntu.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
@ -21,7 +21,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
|
4
.github/workflows/verify-on-ubuntu1604.yml
vendored
4
.github/workflows/verify-on-ubuntu1604.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
@ -21,7 +21,7 @@ jobs:
|
||||||
runs-on: ubuntu-16.04
|
runs-on: ubuntu-16.04
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
|
4
.github/workflows/verify-on-windows.yml
vendored
4
.github/workflows/verify-on-windows.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
@ -21,7 +21,7 @@ jobs:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install SSH key
|
- name: Install SSH key
|
||||||
uses: shimataro/ssh-key-action@HEAD
|
uses: shimataro/ssh-key-action@feature/ci
|
||||||
with:
|
with:
|
||||||
private-key: ${{ secrets.SSH_KEY }}
|
private-key: ${{ secrets.SSH_KEY }}
|
||||||
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
known-hosts: ${{ secrets.KNOWN_HOSTS }} # optional
|
||||||
|
|
101
lib/main.js
Normal file
101
lib/main.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
"use strict";
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||||
|
result["default"] = mod;
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const fs = __importStar(require("fs"));
|
||||||
|
const path = __importStar(require("path"));
|
||||||
|
const core = __importStar(require("@actions/core"));
|
||||||
|
/**
|
||||||
|
* main function
|
||||||
|
*/
|
||||||
|
function main() {
|
||||||
|
try {
|
||||||
|
const files = [
|
||||||
|
{
|
||||||
|
name: core.getInput("name"),
|
||||||
|
contents: core.getInput("private-key", {
|
||||||
|
required: true,
|
||||||
|
}),
|
||||||
|
options: {
|
||||||
|
mode: 0o400,
|
||||||
|
flag: "ax",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "known_hosts",
|
||||||
|
contents: prependLf(core.getInput("known-hosts")),
|
||||||
|
options: {
|
||||||
|
mode: 0o644,
|
||||||
|
flag: "a",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "config",
|
||||||
|
contents: prependLf(core.getInput("config")),
|
||||||
|
options: {
|
||||||
|
mode: 0o644,
|
||||||
|
flag: "a",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
// create ".ssh" directory
|
||||||
|
const home = getHomeDirectory();
|
||||||
|
const dirName = path.resolve(home, ".ssh");
|
||||||
|
fs.mkdirSync(dirName, {
|
||||||
|
recursive: true,
|
||||||
|
mode: 0o700,
|
||||||
|
});
|
||||||
|
// create files
|
||||||
|
for (const file of files) {
|
||||||
|
const fileName = path.join(dirName, file.name);
|
||||||
|
fs.writeFileSync(fileName, file.contents, file.options);
|
||||||
|
}
|
||||||
|
console.log(`SSH key has been stored to ${dirName} successfully.`);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
core.setFailed(err.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* get home directory
|
||||||
|
* @returns home directory
|
||||||
|
*/
|
||||||
|
function getHomeDirectory() {
|
||||||
|
const homeEnv = getHomeEnv();
|
||||||
|
const home = process.env[homeEnv];
|
||||||
|
if (home === undefined) {
|
||||||
|
throw Error(`${homeEnv} is not defined`);
|
||||||
|
}
|
||||||
|
return home;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* get HOME environment name
|
||||||
|
* @returns HOME environment name
|
||||||
|
*/
|
||||||
|
function getHomeEnv() {
|
||||||
|
if (process.platform === "win32") {
|
||||||
|
// Windows
|
||||||
|
return "USERPROFILE";
|
||||||
|
}
|
||||||
|
// macOS / Linux
|
||||||
|
return "HOME";
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* prepend LF to value if not empty
|
||||||
|
* @param value the value to prepend LF
|
||||||
|
* @returns prepended value
|
||||||
|
*/
|
||||||
|
function prependLf(value) {
|
||||||
|
if (value.length === 0) {
|
||||||
|
// do nothing if empty
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return `\n${value}`;
|
||||||
|
}
|
||||||
|
main();
|
||||||
|
//# sourceMappingURL=main.js.map
|
1
lib/main.js.map
Normal file
1
lib/main.js.map
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,oDAAsC;AAStC;;GAEG;AACH,SAAS,IAAI;IAEZ,IACA;QACC,MAAM,KAAK,GAAe;YACzB;gBACC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;oBACtC,QAAQ,EAAE,IAAI;iBACd,CAAC;gBACF,OAAO,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,IAAI;iBACV;aACD;YACD;gBACC,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,GAAG;iBACT;aACD;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,GAAG;iBACT;aACD;SACD,CAAC;QAEF,0BAA0B;QAC1B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE;YACrB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;QAEH,eAAe;QACf,KAAI,MAAM,IAAI,IAAI,KAAK,EACvB;YACC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACxD;QAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,gBAAgB,CAAC,CAAC;KACnE;IACD,OAAM,GAAG,EACT;QACC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC5B;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IAExB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,IAAG,IAAI,KAAK,SAAS,EACrB;QACC,MAAM,KAAK,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU;IAElB,IAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,EAC/B;QACC,UAAU;QACV,OAAO,aAAa,CAAC;KACrB;IAED,gBAAgB;IAChB,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAa;IAE/B,IAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EACrB;QACC,sBAAsB;QACtB,OAAO,EAAE,CAAC;KACV;IAED,OAAO,KAAK,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,IAAI,EAAE,CAAC"}
|
Loading…
Add table
Add a link
Reference in a new issue