|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
- #
- #
- # Powershell script updating Selenium drivers on ci server
- #
- # Author: Martin Stockhammer <martin_s@apache.org>
- # Date : 2017-05-14
- #
- # Description:
- # This script checks, if the selenium drivers are available on the system and downloads
- # and extracts them, if they do not exist.
- #
- # Parameter:
- # -Verbose: Print additional output
- # -Force: Remove the existing drivers and download/extract them again
-
-
- param (
- [switch]$Verbose = $False,
- [switch]$Force = $False
- )
-
- $psVersion = $PSVersionTable.PSVersion
- $baseDir = "F:\jenkins\tools"
-
- if ($Verbose) {
- Write-Output "PS-Version: $psVersion"
- Write-Output "Verbose: $Verbose, Force: $Force"
- }
-
- $urls = @{
- "iedriver\2.53.1\win64\DriverServer.zip"="http://selenium-release.storage.googleapis.com/2.53/IEDriverServer_x64_2.53.1.zip"
- "iedriver\2.53.1\win32\DriverServer.zip"="http://selenium-release.storage.googleapis.com/2.53/IEDriverServer_Win32_2.53.1.zip"
- "iedriver\3.4.0\win64\DriverServer.zip"="http://selenium-release.storage.googleapis.com/3.4/IEDriverServer_x64_3.4.0.zip"
- "iedriver\3.4.0\win32\DriverServer.zip"="http://selenium-release.storage.googleapis.com/3.4/IEDriverServer_Win32_3.4.0.zip"
- "chromedriver\2.29\win32\DriverServer.zip"="http://chromedriver.storage.googleapis.com/2.29/chromedriver_win32.zip"
- "geckodriver\0.16.1\win32\DriverServer.zip"="http://github.com/mozilla/geckodriver/releases/download/v0.16.1/geckodriver-v0.16.1-win32.zip"
- "geckodriver\0.16.1\win64\DriverServer.zip"="http://github.com/mozilla/geckodriver/releases/download/v0.16.1/geckodriver-v0.16.1-win64.zip"
- }
-
- foreach ($h in $urls.GetEnumerator()) {
- $url = $h.Value
- $downloadFile = "$($baseDir)\$($h.Name)"
- $downloadDir = Split-Path $downloadFile -Parent
-
- if ($Force -And (Test-Path -Path $downloadDir ) ) {
- Get-ChildItem -Path $downloadDir -Recurse | Remove-Item -force -recurse
- }
-
- if(!(Test-Path -Path $downloadDir )){
- New-Item -ItemType directory -Path $downloadDir
- }
-
- if ($Force -Or !(Test-Path -Path $downloadFile )){
- Write-Output "Downloading Driver $url"
- Invoke-WebRequest -Uri $url -OutFile $downloadFile
-
- $shell = New-Object -ComObject shell.application
- $zip = $shell.NameSpace($downloadFile)
- foreach ($item in $zip.items()) {
- $shell.Namespace($downloadDir).CopyHere($item)
- }
- if ($Verbose) {
- Get-ChildItem -Path $downloadDir
- }
- }
- }
|