mirror of
https://github.com/SamKirkland/FTP-Deploy-Action.git
synced 2025-08-15 06:25:05 +00:00
using act for local debugging
Added act library for local debugging Attempting to use exec argument escaping
This commit is contained in:
parent
b698c49eac
commit
ae5262e007
16
README.md
16
README.md
@ -420,10 +420,13 @@ jobs:
|
|||||||
## Debugging locally
|
## Debugging locally
|
||||||
##### Instructions for debugging Windows
|
##### Instructions for debugging Windows
|
||||||
- [Install docker](https://docs.docker.com/get-docker/)
|
- [Install docker](https://docs.docker.com/get-docker/)
|
||||||
- Open powershell
|
- Open powershell **as Administrator**
|
||||||
|
- Install [act-cli](https://github.com/nektos/act#installation) by running `choco install act-cli`
|
||||||
- Navigate to the repo folder
|
- Navigate to the repo folder
|
||||||
- Run `docker build --tag action .`
|
- Run `npm install` - this will install all dependencies to build this project
|
||||||
- Run `docker run action`
|
- Run `npm build` - this will build the action javascript and watch/rebuild when files change
|
||||||
|
- Run `npm run build-docker` - this will build the docker container (only needs to be done once)
|
||||||
|
- Run `npm run run-docker` - this will spin up a local copy of the action defined in `/debug/local-debug-deployment.yaml`. Update package.json to set any secret values
|
||||||
|
|
||||||
#### Instructions for debugging on Linux
|
#### Instructions for debugging on Linux
|
||||||
- [Install docker](https://docs.docker.com/get-docker/)
|
- [Install docker](https://docs.docker.com/get-docker/)
|
||||||
@ -432,8 +435,11 @@ On Linux you can install docker using your package manager, for example, on a De
|
|||||||
sudo apt install docker docker.io
|
sudo apt install docker docker.io
|
||||||
```
|
```
|
||||||
- Open the terminal
|
- Open the terminal
|
||||||
|
- Install [act-cli](https://github.com/nektos/act#installation)
|
||||||
- Navigate to the repo folder
|
- Navigate to the repo folder
|
||||||
- Run `docker build --tag action .`
|
- Run `npm install` - this will install all dependencies to build this project
|
||||||
- Run `docker run action`
|
- Run `npm build` - this will build the action javascript and watch/rebuild when files change
|
||||||
|
- Run `npm run build-docker` - this will build the docker container (only needs to be done once)
|
||||||
|
- Run `npm run run-docker` - this will spin up a local copy of the action defined in `/debug/local-debug-deployment.yaml`. Update package.json to set any secret values
|
||||||
|
|
||||||
#### Pull Requests Welcome!
|
#### Pull Requests Welcome!
|
||||||
|
18
debug/local-debug-deployment.yaml
Normal file
18
debug/local-debug-deployment.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
on: push
|
||||||
|
name: Local Debug Deployment
|
||||||
|
jobs:
|
||||||
|
Local-Debug-Deployment:
|
||||||
|
name: Local-Debug-Deployment
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2.1.0
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: FTP-Deploy-Action
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
ftp-server: ftp://ftp.samkirkland.com/
|
||||||
|
ftp-username: ${{ secrets.username }}
|
||||||
|
ftp-password: ${{ secrets.password }}
|
||||||
|
git-ftp-args: --dry-run
|
12
dist/index.js
vendored
12
dist/index.js
vendored
@ -1049,11 +1049,19 @@ function syncFiles(args) {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
yield core.group("Uploading files", () => __awaiter(this, void 0, void 0, function* () {
|
yield core.group("Uploading files", () => __awaiter(this, void 0, void 0, function* () {
|
||||||
return yield exec.exec(`git ftp push --force --auto-init --verbose --syncroot ${args.local_dir} --user ${args.ftp_username} --passwd ${args.ftp_password} ${args.gitFtpArgs} ${args.ftp_server}`);
|
return yield exec.exec("git ftp push", [
|
||||||
|
"--force",
|
||||||
|
"--auto-init",
|
||||||
|
"--verbose",
|
||||||
|
`--syncroot=${args.local_dir}`,
|
||||||
|
`--user=${args.ftp_username}`,
|
||||||
|
`--passwd=${args.ftp_password}`,
|
||||||
|
args.gitFtpArgs,
|
||||||
|
args.ftp_server
|
||||||
|
]);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.error("⚠️ Failed to upload files");
|
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -8,10 +8,9 @@
|
|||||||
"node": ">=12.0.0"
|
"node": ">=12.0.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:dev": "tsc",
|
"build": "ncc build src/main.ts -o dist --watch",
|
||||||
"build:production": "ncc build src/main.ts -o dist",
|
"build-docker": "docker build --tag action .",
|
||||||
"build:docker": "docker build --tag action .",
|
"run-docker": "act --workflows ./debug/ --secret username=UserNameHere --secret password=PasswordHere"
|
||||||
"run:docker": "docker run action --build-arg FTP_SERVER=example.com FTP_USERNAME=test@example.com FTP_PASSWORD=passwordExample"
|
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
15
src/main.ts
15
src/main.ts
@ -70,11 +70,22 @@ function withDefault(value: string, defaultValue: string) {
|
|||||||
async function syncFiles(args: IActionArguments) {
|
async function syncFiles(args: IActionArguments) {
|
||||||
try {
|
try {
|
||||||
await core.group("Uploading files", async () => {
|
await core.group("Uploading files", async () => {
|
||||||
return await exec.exec(`git ftp push --force --auto-init --verbose --syncroot ${args.local_dir} --user ${args.ftp_username} --passwd ${args.ftp_password} ${args.gitFtpArgs} ${args.ftp_server}`);
|
return await exec.exec(
|
||||||
|
"git ftp push",
|
||||||
|
[
|
||||||
|
"--force",
|
||||||
|
"--auto-init",
|
||||||
|
"--verbose",
|
||||||
|
`--syncroot=${args.local_dir}`,
|
||||||
|
`--user=${args.ftp_username}`,
|
||||||
|
`--passwd=${args.ftp_password}`,
|
||||||
|
args.gitFtpArgs!,
|
||||||
|
args.ftp_server!
|
||||||
|
]
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.error("⚠️ Failed to upload files");
|
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,7 +25,7 @@ export enum gitFTPExitCode {
|
|||||||
ErrorWhileDownloading = 5,
|
ErrorWhileDownloading = 5,
|
||||||
UnknownProtocol = 6,
|
UnknownProtocol = 6,
|
||||||
RemoteLocked = 7,
|
RemoteLocked = 7,
|
||||||
NotAGitProject = 8,
|
GitRelatedError = 8,
|
||||||
PreFTPPushHookFailed = 9,
|
PreFTPPushHookFailed = 9,
|
||||||
LocalFileOperationFailed = 10
|
LocalFileOperationFailed = 10
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user