Tutorial - Installing Flyway on your CI/CD Agents by downloading and unzipping
Published 20 April 2022
The below PowerShell script example has been designed for use at the start of a Pipeline, where the agent requires Flyway to be installed (Change the flyway version number as required:
Windows - Install Flyway CLI Script
#Flyway Version to Use - Check here for latest version information - https://documentation.red-gate.com/fd/command-line-184127404.html
$flywayVersion = '10.8.1'
#Flyway URL to download CLI
$Url = "https://download.red-gate.com/maven/release/org/flywaydb/enterprise/flyway-commandline/$flywayVersion/flyway-commandline-$flywayVersion-windows-x64.zip"
#Insert path for downloaded files
$DownloadZipFile = "C:\FlywayCLI\" + $(Split-Path -Path $Url -Leaf)
#Assign location for Flyway to extracted to
$ExtractPath = "C:\FlywayCLI\"
#SilentlyContinue informs PowerShell to download the CLI without a progress bar. This often drastically improves the download time.
$ProgressPreference = 'SilentlyContinue'
if (Test-Path $ExtractPath) {
Write-Host "Folder Exists"
}
else
{
#PowerShell Create directory if not exists
New-Item $ExtractPath -ItemType Directory
Write-Host "Folder Created successfully"
}
# Download the CLI to the desired location
Invoke-WebRequest -Uri $Url -OutFile $DownloadZipFile
# Extract the CLI to the desired location
$ExtractShell = New-Object -ComObject Shell.Application
$ExtractFiles = $ExtractShell.Namespace($DownloadZipFile).Items()
$ExtractShell.NameSpace($ExtractPath).CopyHere($ExtractFiles)
Start-Process $ExtractPath
# Update PATH Variable with Flyway CLI - Azure DevOps #
# echo "##vso[task.setvariable variable=path]$(PATH);C:\FlywayCLI\flyway-$flywayVersion"
# Update PATH variable with Flyway CLI - Generic - Comment above and uncomment below to take affect #
[Environment]::SetEnvironmentVariable("PATH", $Env:PATH + ";${ExtractPath}flyway-$flywayVersion", [EnvironmentVariableTarget]::Machine)The below BASH script example has been designed for use at the start of a Pipeline, where the Linux agent requires Flyway to be installed (Change the flyway version number as required):
Linux - Installing Flyway CLI Script
wget -qO- https://download.red-gate.com/maven/release/com/redgate/flyway/flyway-commandline/10.8.1/flyway-commandline-10.8.1-linux-x64.tar.gz | tar -xvz && sudo ln -s `pwd`/flyway-10.8.1/flyway /usr/local/bin