.set_jfrog_bin: &set_jfrog_bin - $JFROG_BIN="$env:USERPROFILE\.jfrog\bin\" - $env:PATH="$JFROG_BIN;$env:PATH" .setup_jfrog: script: - $PLUGIN_VERSION="2.0.0" # Download the latest JFrog CLI version, unless JFROG_CLI_VERSION is provided. - | if ($env:JFROG_CLI_VERSION) { Write-Host "Downloading version $env:JFROG_CLI_VERSION of JFrog CLI..." } else { $env:JFROG_CLI_VERSION = "[RELEASE]" Write-Host "Downloading the latest version of JFrog CLI..." } # Configure JFrog bin directory to download JFrog CLI to. - *set_jfrog_bin - If (!(test-path $JFROG_BIN)) { mkdir $JFROG_BIN } # Download will be done from a remote repository if JF_RELEASES_REPO was set. - | if (-not $env:JF_RELEASES_REPO) { Write-Host "Downloading JFrog CLI directly from releases.jfrog.io..." $BASE_URL="https://releases.jfrog.io/artifactory" $AUTH_HEADER=@{} } else { Write-Host "Downloading JFrog CLI from remote repository '$env:JF_RELEASES_REPO'..." $BASE_URL=$env:JF_URL.trim('/') + "/artifactory/" + $env:JF_RELEASES_REPO.trim('/') if ($env:JF_ACCESS_TOKEN) { $AUTH_HEADER = @{Authorization = "Bearer $env:JF_ACCESS_TOKEN"} } else { $ENCODED_CREDS = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($env:JF_USER + ":" + $env:JF_PASSWORD)) $AUTH_HEADER = @{Authorization = "Basic $ENCODED_CREDS"} } } - iwr $BASE_URL/jfrog-cli/v2-jf/$env:JFROG_CLI_VERSION/jfrog-cli-windows-amd64/jf.exe -OutFile $JFROG_BIN\jf.exe -Headers $AUTH_HEADER # Verify CLI was downloaded. - | if (-not (Get-Command "jf" -ErrorAction SilentlyContinue)) { Write-Host "JFrog CLI Installation failed." exit 1 } # Create server ID. - $CONFIG_CMD="jf c add setup-jfrog-gitlab-ci-server-$env:CI_JOB_ID --overwrite --url $env:JF_URL" - | if ($env:JF_ACCESS_TOKEN) { $CONFIG_CMD="$CONFIG_CMD --access-token=$env:JF_ACCESS_TOKEN" } elseif ($env:JF_USER -and $env:JF_PASSWORD) { $CONFIG_CMD="$CONFIG_CMD --user=$env:JF_USER --password=$env:JF_PASSWORD" } - Invoke-Expression $CONFIG_CMD # Export general environment variables: - $env:JFROG_CLI_USER_AGENT="setup-jfrog-for-gitlab-windows/$PLUGIN_VERSION" - $env:CI=${env:CI -or $true} - $env:JFROG_CLI_BUILD_NAME="$env:CI_PROJECT_PATH_SLUG-$env:CI_COMMIT_REF_NAME" - $env:JFROG_CLI_BUILD_NUMBER=$env:CI_PIPELINE_ID - $env:JFROG_CLI_BUILD_URL=$env:CI_PIPELINE_URL - if (-not $env:JFROG_CLI_ENV_EXCLUDE) { $env:JFROG_CLI_ENV_EXCLUDE='password;secret;key;token;auth;JF_URL;JF_USER;JF_PASSWORD;JF_ACCESS_TOKEN' } # Override registry variables if JF_DOCKER_REGISTRY was set: - | if ($env:JF_DOCKER_REGISTRY) { $env:CI_REGISTRY=$env:JF_DOCKER_REGISTRY $env:CI_REGISTRY_IMAGE="$env:JF_DOCKER_REGISTRY/$env:CI_PROJECT_NAMESPACE/$env:CI_PROJECT_NAME" $env:CI_REGISTRY_USER=$env:JF_USER if ($env:JF_ACCESS_TOKEN) { $env:CI_REGISTRY_PASSWORD=$env:JF_ACCESS_TOKEN } elseif ($env:JF_PASSWORD) { $env:CI_REGISTRY_PASSWORD=$env:JF_PASSWORD } } .cleanup_jfrog: script: - *set_jfrog_bin - jf c rm setup-jfrog-gitlab-ci-server-${CI_JOB_ID} --quiet