Merge pull request #1130 from guardicore/swimm-pc
Add Swimm to pre-commit
This commit is contained in:
commit
0cb8fc8ac9
|
@ -43,3 +43,7 @@ repos:
|
||||||
files: "monkey/"
|
files: "monkey/"
|
||||||
exclude: "monkey/monkey_island/cc/ui"
|
exclude: "monkey/monkey_island/cc/ui"
|
||||||
stages: [push]
|
stages: [push]
|
||||||
|
- repo: https://github.com/swimmio/pre-commit
|
||||||
|
rev: v0.2
|
||||||
|
hooks:
|
||||||
|
- id: swimm-verify
|
||||||
|
|
|
@ -85,3 +85,9 @@ been run or all issues have not been resolved.
|
||||||
To install and configure pre-commit manually, run `pip install --user
|
To install and configure pre-commit manually, run `pip install --user
|
||||||
pre-commit`. Next, go to the top level directory of this repository and run
|
pre-commit`. Next, go to the top level directory of this repository and run
|
||||||
`pre-commit install -t pre-commit -t pre-push` Now, pre-commit will automatically run whenever you `git commit`.
|
`pre-commit install -t pre-commit -t pre-push` Now, pre-commit will automatically run whenever you `git commit`.
|
||||||
|
|
||||||
|
## Swimm
|
||||||
|
|
||||||
|
Infection Monkey has development tutorials that use [`swimm.io`](https://swimm.io/) to help teach new developers how to perform common code tasks in the Infection Monkey codebase and accelerate the ramp-up process. The tutorials include adding new configuration values, new system info collectors and more.
|
||||||
|
|
||||||
|
In order to pass the pre-commit checks, you'll have to [install Swimm successfully](https://www.guardicore.com/infectionmonkey/docs/development/swimm/). Both the Linux and Windows deployment scrips will install [Swimm](https://swimm.io/), but you'll have to sign up [here](https://swimm.io/sign-beta) to complete the process.
|
||||||
|
|
|
@ -43,3 +43,6 @@ export TRACEROUTE_32_BINARY_URL="https://github.com/guardicore/monkey/releases/d
|
||||||
|
|
||||||
export SAMBACRY_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$MONKEY_LATEST_RELEASE/sc_monkey_runner64.so"
|
export SAMBACRY_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$MONKEY_LATEST_RELEASE/sc_monkey_runner64.so"
|
||||||
export SAMBACRY_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$MONKEY_LATEST_RELEASE/sc_monkey_runner32.so"
|
export SAMBACRY_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$MONKEY_LATEST_RELEASE/sc_monkey_runner32.so"
|
||||||
|
|
||||||
|
# Swimm
|
||||||
|
export SWIMM_URL=https://github.com/swimmio/SwimmReleases/releases/download/v0.4.4-0/Swimm_0.4.4-0_Setup.deb
|
||||||
|
|
|
@ -46,3 +46,4 @@ $OPEN_SSL_URL = "https://indy.fulgan.com/SSL/openssl-1.0.2u-x64_86-win64.zip"
|
||||||
$CPP_URL = "https://go.microsoft.com/fwlink/?LinkId=746572"
|
$CPP_URL = "https://go.microsoft.com/fwlink/?LinkId=746572"
|
||||||
$NPM_URL = "https://nodejs.org/dist/v12.14.1/node-v12.14.1-x64.msi"
|
$NPM_URL = "https://nodejs.org/dist/v12.14.1/node-v12.14.1-x64.msi"
|
||||||
$UPX_URL = "https://github.com/upx/upx/releases/download/v3.96/upx-3.96-win64.zip"
|
$UPX_URL = "https://github.com/upx/upx/releases/download/v3.96/upx-3.96-win64.zip"
|
||||||
|
$SWIMM_URL="https://github.com/swimmio/SwimmReleases/releases/download/v0.4.4-0/Swimm-Setup-0.4.4-0.exe"
|
||||||
|
|
|
@ -239,6 +239,18 @@ else
|
||||||
curl -o ${MONKEY_BIN_DIR}/traceroute32 ${TRACEROUTE_32_BINARY_URL}
|
curl -o ${MONKEY_BIN_DIR}/traceroute32 ${TRACEROUTE_32_BINARY_URL}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Download Swimm
|
||||||
|
log_message "Downloading swimm"
|
||||||
|
if exists wget; then
|
||||||
|
wget ${SWIMM_URL} -O $HOME/swimm
|
||||||
|
else
|
||||||
|
curl ${SWIMM_URL} -o $HOME/swimm
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_message "Installing swimm"
|
||||||
|
sudo dpkg -i $HOME/swimm || (sudo apt-get update && sudo apt-get -f install)
|
||||||
|
rm $HOME/swimm
|
||||||
|
|
||||||
sudo chmod +x "${INFECTION_MONKEY_DIR}/build_linux.sh"
|
sudo chmod +x "${INFECTION_MONKEY_DIR}/build_linux.sh"
|
||||||
|
|
||||||
configure_precommit ${python_cmd} ${monkey_home}
|
configure_precommit ${python_cmd} ${monkey_home}
|
||||||
|
|
|
@ -23,6 +23,18 @@ function Configure-precommit([String] $git_repo_dir)
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
Pop-Location
|
Pop-Location
|
||||||
|
|
||||||
|
# Set env variable to skip Swimm verification during pre-commit, Windows not supported yet
|
||||||
|
$skipValue = [System.Environment]::GetEnvironmentVariable('SKIP', [System.EnvironmentVariableTarget]::User)
|
||||||
|
if ($skipValue) { # if `SKIP` is not empty
|
||||||
|
if (-Not ($skipValue -split ',' -contains 'swimm-verify')) { # if `SKIP` doesn't already have "swimm-verify"
|
||||||
|
[System.Environment]::SetEnvironmentVariable('SKIP', $env:SKIP + ',swimm-verify', [System.EnvironmentVariableTarget]::User)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[System.Environment]::SetEnvironmentVariable('SKIP', 'swimm-verify', [System.EnvironmentVariableTarget]::User)
|
||||||
|
}
|
||||||
|
|
||||||
Write-Output "Pre-commit successfully installed"
|
Write-Output "Pre-commit successfully installed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,6 +279,13 @@ function Deploy-Windows([String] $monkey_home = (Get-Item -Path ".\").FullName,
|
||||||
$webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path)
|
$webClient.DownloadFile($SAMBA_64_BINARY_URL, $samba64_path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Get Swimm
|
||||||
|
"Downloading Swimm..."
|
||||||
|
$swimm_filename = Join-Path -Path $HOME -ChildPath "swimm.exe"
|
||||||
|
$webClient.DownloadFile($SWIMM_URL, $swimm_filename)
|
||||||
|
Start-Process $swimm_filename
|
||||||
|
|
||||||
|
|
||||||
"Script finished"
|
"Script finished"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,3 +31,9 @@ Pre-commit is a multi-language package manager for pre-commit hooks. It will run
|
||||||
Our CI system runs the same checks when pull requests are submitted. This system may report that the build has failed if the pre-commit hooks have not been run or all issues have not been resolved.
|
Our CI system runs the same checks when pull requests are submitted. This system may report that the build has failed if the pre-commit hooks have not been run or all issues have not been resolved.
|
||||||
|
|
||||||
To install and configure pre-commit, run `pip install --user pre-commit`. Next, go to the top level directory of this repository and run `pre-commit install -t pre-commit -t pre-push`. Pre-commit will now run automatically whenever you `git commit`.
|
To install and configure pre-commit, run `pip install --user pre-commit`. Next, go to the top level directory of this repository and run `pre-commit install -t pre-commit -t pre-push`. Pre-commit will now run automatically whenever you `git commit`.
|
||||||
|
|
||||||
|
## Swimm
|
||||||
|
|
||||||
|
Infection Monkey has development tutorials that use [`swimm.io`](https://swimm.io/) to help teach new developers how to perform common code tasks in the Infection Monkey codebase and accelerate the ramp-up process. The tutorials include adding new configuration values, new system info collectors and more.
|
||||||
|
|
||||||
|
In order to pass the pre-commit checks, you'll have to [install Swimm successfully](https://www.guardicore.com/infectionmonkey/docs/development/swimm/). Both the Linux and Windows deployment scrips will install [Swimm](https://swimm.io/), but you'll have to sign up [here](https://swimm.io/sign-beta) to complete the process.
|
||||||
|
|
Loading…
Reference in New Issue