Merge main into install-codeql-bundle.

This commit is contained in:
Chris Gavin
2020-09-19 13:52:56 +01:00
124 changed files with 1928 additions and 999 deletions

View File

@@ -3,6 +3,8 @@ New tool, Bug fixing, or Improvement?
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context. Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
**For new tools, please provide total size and installation time.** **For new tools, please provide total size and installation time.**
<!-- Currently, we can't accept external contributions to macOS source. Please find more details in [CONTRIBUTING.md](CONTRIBUTING.md#macOS) guide -->
#### Related issue: #### Related issue:
## Check list ## Check list

View File

@@ -26,7 +26,7 @@ jobs:
- name: Approve pull request by GitHub-Actions bot - name: Approve pull request by GitHub-Actions bot
uses: actions/github-script@v2 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.GITHUB_TOKEN}} github-token: ${{secrets.PRAPPROVAL_SECRET}}
script: | script: |
github.pulls.createReview({ github.pulls.createReview({
owner: context.repo.owner, owner: context.repo.owner,

View File

@@ -31,27 +31,29 @@ Here are a few things you can do that will increase the likelihood of your pull
## How to add new tool ## How to add new tool
### General rules ### General rules
- For every new tool add validation scripts and update software report script to make sure that it is included to documentation - For every new tool add validation scripts and update software report script to make sure that it is included to documentation
- If the tool is available in other platforms (MacOS, Windows, Linux), make sure you include it in as many as possible. - If the tool is available in other platforms (macOS, Windows, Linux), make sure you include it in as many as possible.
- If installing a few versions of the tool, consider putting the list of versions in the corresponding `toolset.json` file. It will help other customers to configure their builds flexibly. See [toolset-windows-2016.json](images/win/toolsets/toolset-2019.json) as example. - If installing a few versions of the tool, consider putting the list of versions in the corresponding `toolset.json` file. It will help other customers to configure their builds flexibly. See [toolset-windows-2016.json](images/win/toolsets/toolset-2019.json) as example.
- Use consistent naming across all files - Use consistent naming across all files
- Validation scripts should be simple and shouldn't change image content - Validation scripts should be simple and shouldn't change image content
### Windows ### Windows
- Add a script that will install the tool and put the script in the `scripts/Installers` folder. - Add a script that will install the tool and put the script in the `scripts/Installers` folder.
There are a bunch of helper functions that could simplify your code: `Choco-Install`, `Install-Binary`, `Install-VsixExtension`, ` Start-DownloadWithRetry`, `Test-IsWin16`, ` Test-IsWin19` (find the full list of helpers in [ImageHelpers.psm1](images/win/scripts/ImageHelpers/ImageHelpers.psm1)). There are a bunch of helper functions that could simplify your code: `Choco-Install`, `Install-Binary`, `Install-VsixExtension`, `Start-DownloadWithRetry`, `Test-IsWin16`, `Test-IsWin19` (find the full list of helpers in [ImageHelpers.psm1](images/win/scripts/ImageHelpers/ImageHelpers.psm1)).
- Add a script that will validate the tool installation and put the script in the `scripts/Tests` folder. - Add a script that will validate the tool installation and put the script in the `scripts/Tests` folder.
We use [Pester v5](https://github.com/pester/pester) for validation scripts. If the tests for the tool are complex enough, create a separate `*.Tests.ps1`. Otherwise, use `Tools.Tests.ps1` for simple tests. We use [Pester v5](https://github.com/pester/pester) for validation scripts. If the tests for the tool are complex enough, create a separate `*.Tests.ps1`. Otherwise, use `Tools.Tests.ps1` for simple tests.
Add `Invoke-PesterTests -TestFile <testFileName> [-TestName <describeName>]` at the end of the installation script to make sure that your tests will be run. Add `Invoke-PesterTests -TestFile <testFileName> [-TestName <describeName>]` at the end of the installation script to make sure that your tests will be run.
- Add changes to the software report generator `images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1`. The software report generator is used to generate an image's README file, e.g. [Windows2019-Readme.md](images/win/Windows2019-Readme.md) and uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS). - Add changes to the software report generator `images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1`. The software report generator is used to generate an image's README file, e.g. [Windows2019-Readme.md](images/win/Windows2019-Readme.md) and uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
### Ubuntu ### Ubuntu
- Add a single script that will install, validate, and document the tool and put the script in the `script/Installers` folder. Use existing scripts such as [github-cli.sh](images/linux/scripts/installers/github-cli.sh) as a starting point. - Add script that will install and validate the tool and put the script in the `scripts/installers` folder.
Use existing scripts such as [github-cli.sh](images/linux/scripts/installers/github-cli.sh) as a starting point.
- Use [helpers](images/linux/scripts/helpers/install.sh) to simplify installation process. - Use [helpers](images/linux/scripts/helpers/install.sh) to simplify installation process.
- Validation part should `exit 1` if any issue with installation. - Validation part should `exit 1` if any issue with installation.
- Use `DocumentInstalledItem "<add to docs>"` helper for building documentation. - Add changes to the software report generator `images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1`. The software report generator is used to generate an image's README file, e.g. [Ubuntu1804-Readme.md](images/linux/Ubuntu1804-README.md) and it uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
### macOS ### macOS
We are in the process of preparing our macOS source to live in this repo so we can take contributions from the community. Until then, we appreciate your patience and ask you continue to make tool requests by filing issues. macOS source lives in this repository and available for everyone. However, macOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now.
We are in the process of preparing macOS CI to accept contributions. Until then, we appreciate your patience and ask you continue to make tool requests by filing issues.
## Resources ## Resources

View File

@@ -19,7 +19,8 @@ The "ubuntu-latest" YAML workflow label still uses the Ubuntu 18.04 virtual envi
***Looking for other Linux distributions?*** We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted virtual environments. Alternatively, you can leverage [self-hosted runners] and fully customize your environment to your needs. ***Looking for other Linux distributions?*** We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted virtual environments. Alternatively, you can leverage [self-hosted runners] and fully customize your environment to your needs.
***Where is the macOS source?*** We are in the process of preparing our macOS source to live in this repo so we can take contributions from the community. Until then, we appreciate your patience and ask you continue to make tool requests by filing issues. ***How to contribute to macOS source?*** macOS source lives in this repository and available for everyone. However, MacOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now.
We are in the process of preparing MacOS CI to accept contributions. Until then, we appreciate your patience and ask you continue to make tool requests by filing issues.
## Software Guidelines ## Software Guidelines
In general, these are the guidelines we consider when deciding what to pre-install: In general, these are the guidelines we consider when deciding what to pre-install:

View File

@@ -20,13 +20,13 @@ jobs:
targetType: 'filePath' targetType: 'filePath'
filePath: ./images.CI/download-repo.ps1 filePath: ./images.CI/download-repo.ps1
arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) ` arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) `
-RepoBranch $(CUSTOM_REPOSITORY_BRANCH) -RepoBranch $(CUSTOM_REPOSITORY_BRANCH)
- task: PowerShell@2 - task: PowerShell@2
displayName: 'Build VM' displayName: 'Build VM'
inputs: inputs:
targetType: filePath targetType: filePath
filePath: ./images.CI/build-image.ps1 filePath: ./images.CI/linux-and-win/build-image.ps1
arguments: -ResourcesNamePrefix $(Build.BuildId) ` arguments: -ResourcesNamePrefix $(Build.BuildId) `
-ClientId $(CLIENT_ID) ` -ClientId $(CLIENT_ID) `
-ClientSecret $(CLIENT_SECRET) ` -ClientSecret $(CLIENT_SECRET) `
@@ -45,7 +45,7 @@ jobs:
displayName: 'Create release for VM deployment' displayName: 'Create release for VM deployment'
inputs: inputs:
targetType: filePath targetType: filePath
filePath: ./images.CI/create-release.ps1 filePath: ./images.CI/linux-and-win/create-release.ps1
arguments: -BuildId $(Build.BuildId) ` arguments: -BuildId $(Build.BuildId) `
-Organization $(RELEASE_TARGET_ORGANIZATION) ` -Organization $(RELEASE_TARGET_ORGANIZATION) `
-DefinitionId $(RELEASE_TARGET_DEFINITION_ID) ` -DefinitionId $(RELEASE_TARGET_DEFINITION_ID) `
@@ -66,7 +66,7 @@ jobs:
condition: always() condition: always()
inputs: inputs:
targetType: filePath targetType: filePath
filePath: ./images.CI/cleanup.ps1 filePath: ./images.CI/linux-and-win/cleanup.ps1
arguments: -ResourcesNamePrefix $(Build.BuildId) ` arguments: -ResourcesNamePrefix $(Build.BuildId) `
-ClientId $(CLIENT_ID) ` -ClientId $(CLIENT_ID) `
-ClientSecret $(CLIENT_SECRET) ` -ClientSecret $(CLIENT_SECRET) `

View File

@@ -0,0 +1,105 @@
jobs:
- job: Image_generation
displayName: Image Generation (${{ parameters.image_label }})
timeoutInMinutes: 720
pool:
name: Mac-Cloud Image Generation
variables:
- group: Mac-Cloud Image Generation
- group: Mac-Cloud Image Generation Key Vault
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: PowerShell@2
displayName: 'Validate contributor permissions'
condition: startsWith(variables['Build.SourceBranch'], 'refs/pull/')
inputs:
targetType: 'filePath'
filePath: ./images.CI/macos/validate-contributor.ps1
pwsh: true
arguments: -RepositoryName "$(Build.Repository.Name)" `
-AccessToken "$(github-feed-token)" `
-SourceBranch "$(Build.SourceBranch)" `
-ContributorAllowList "$(CONTRIBUTOR_ALLOWLIST)"
- task: PowerShell@2
displayName: 'Download custom repository'
condition: and(ne(variables['CUSTOM_REPOSITORY_URL'], ''), ne(variables['CUSTOM_REPOSITORY_BRANCH'], ''))
inputs:
targetType: 'filePath'
filePath: ./images.CI/download-repo.ps1
arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) `
-RepoBranch $(CUSTOM_REPOSITORY_BRANCH)
- task: DeleteFiles@1
displayName: Clean up self-hosted machine
inputs:
SourceFolder: 'images/macos/provision/log/'
RemoveSourceFolder: true
- pwsh: |
$SensitiveData = @(
'IP address:',
'Using ssh communicator to connect:'
)
packer build -on-error=abort `
-var="vcenter_server=$(vcenter-server-v2)" `
-var="vcenter_username=$(vcenter-username-v2)" `
-var="vcenter_password=$(vcenter-password-v2)" `
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
-var="esxi_datastore=${{ parameters.target_datastore }}" `
-var="output_folder=$(output-folder)" `
-var="vm_username=$(vm-username)" `
-var="vm_password=$(vm-password)" `
-var="build_id=$(Build.BuildNumber)" `
-var="baseimage_name=${{ parameters.base_image_name }}" `
-var="github_feed_token=$(github-feed-token)" `
-var="xcode_install_user=$(xcode-installation-user)" `
-var="xcode_install_password=$(xcode-installation-password)" `
-color=false `
${{ parameters.template_path }} `
| Where-Object {
#Filter sensitive data from Packer logs
$currentString = $_
$sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ }
$sensitiveString -eq $null
}
displayName: 'Build VM'
env:
PACKER_LOG: 0
workingDirectory: 'images/macos'
- bash: |
echo "Copy image output files"
cp -R "images/image-output/software-report/." "$(Build.ArtifactStagingDirectory)/"
echo "Copy test results"
cp -R "images/image-output/tests/." "$(Common.TestResultsDirectory)/"
ls $(Common.TestResultsDirectory)
echo "Put VM name to 'VM_Done_Name' file"
echo "$(Build.BuildNumber)" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
displayName: Prepare artifact
- bash: |
cat "$(Build.ArtifactStagingDirectory)/systeminfo.md"
displayName: Print software report
- task: PublishBuildArtifacts@1
inputs:
ArtifactName: 'Built_VM_Artifacts'
displayName: Publish Artifacts
- task: PublishTestResults@2
inputs:
testResultsFiles: '*.xml'
testResultsFormat: NUnit
searchFolder: '$(Common.TestResultsDirectory)'
failTaskOnFailedTests: true
displayName: Publish test results
condition: always()

View File

@@ -0,0 +1,23 @@
name: macOS-10.13_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- main
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS High Sierra'
base_image_name: 'clean-macOS-10.13.6-380Gb-SIPoff_runner'
template_path: 'templates/macOS-10.13.json'
target_datastore: 'ds-image'

View File

@@ -0,0 +1,23 @@
name: macOS-10.14_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- main
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Mojave'
base_image_name: 'clean-macOS-10.14-380Gb_runner'
template_path: 'templates/macOS-10.14.json'
target_datastore: 'ds-image'

View File

@@ -0,0 +1,23 @@
name: macOS-10.15_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- main
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Catalina'
base_image_name: 'clean-macOS-10.15-380Gb-runner'
template_path: 'templates/macOS-10.15.json'
target_datastore: 'ds-image'

View File

@@ -0,0 +1,23 @@
name: macOS-11.0_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- main
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Big Sur'
base_image_name: 'clean-macOS-11.0-380Gb-runner'
template_path: 'templates/macOS-11.0.json'
target_datastore: 'ds-image'

View File

@@ -0,0 +1,63 @@
param(
[Parameter(Mandatory)] [string] $RepositoryName,
[Parameter(Mandatory)] [string] $AccessToken,
[Parameter(Mandatory)] [string] $SourceBranch,
[Parameter(Mandatory)] [string] $ContributorAllowList
)
function Build-AuthHeader {
param(
[Parameter(Mandatory)] [string] $AccessToken
)
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("'':${AccessToken}"))
return "Basic ${base64AuthInfo}"
}
function Get-PullRequest {
param(
[Parameter(Mandatory)] [string] $RepositoryName,
[Parameter(Mandatory)] [string] $AccessToken,
[Parameter(Mandatory)] [UInt32] $PullRequestNumber
)
$requestUrl = "https://api.github.com/repos/$RepositoryName/pulls/$PullRequestNumber"
$authHeader = Build-AuthHeader -AccessToken $AccessToken
$params = @{
Method = "GET"
ContentType = "application/json"
Uri = $requestUrl
Headers = @{ Authorization = $authHeader }
}
return Invoke-RestMethod @params
}
function Validate-ContributorPermissions {
param(
[Parameter(Mandatory)] [string] $ContributorAllowList,
[Parameter(Mandatory)] [string] $ContributorName
)
$allowedContributors = $ContributorAllowList.Split(",").Trim()
$validСontributor = $allowedContributors | Where-Object { $_ -eq $ContributorName } `
| Select-Object -First 1
if (-not $validСontributor) {
Write-Host "Failed to start this build. '$ContributorName' is an unknown contributor"
Write-Host "Please add '$ContributorName' to the allowed list to run builds"
exit 1
}
}
$pullRequestNumber = $SourceBranch.Split("/")[2]
$pullRequestInfo = Get-PullRequest -RepositoryName $RepositoryName `
-AccessToken $AccessToken `
-PullRequestNumber $pullRequestNumber
$contributorName = $pullRequestInfo.user.login
Validate-ContributorPermissions -ContributorAllowList $ContributorAllowList `
-ContributorName $contributorName

View File

@@ -1,6 +1,10 @@
<!--- DO NOT EDIT - This markdown file is autogenerated. --> <!--- DO NOT EDIT - This markdown file is autogenerated. -->
| Announcements |
|-|
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 16.04.7 LTS # Ubuntu 16.04.7 LTS
The following software is installed on machines with the 20200908.1 update. The following software is installed on machines with the 20200914.1 update.
*** ***
- 7-Zip 9.20 - 7-Zip 9.20
- Ansible (ansible 2.9.13) - Ansible (ansible 2.9.13)
@@ -9,64 +13,64 @@ The following software is installed on machines with the 20200908.1 update.
- Azure CLI (azure-cli 2.11.1) - Azure CLI (azure-cli 2.11.1)
- Azure CLI (azure-devops 0.18.0) - Azure CLI (azure-devops 0.18.0)
- Basic packages: - Basic packages:
- dbus
- dnsutils - dnsutils
- dpkg
- fakeroot
- gnupg2
- iproute2 - iproute2
- iputils-ping - iputils-ping
- lib32z1
- libc++abi-dev
- libc++-dev
- libcurl3
- libgbm-dev
- libgconf-2-4
- libgtk-3-0
- libicu55
- libsecret-1-dev
- libsqlite3-dev
- libunwind8 - libunwind8
- libxkbfile-dev
- libxss1
- locales - locales
- openssh-client - openssh-client
- pkg-config
- rpm
- texinfo
- tk
- tzdata - tzdata
- upx - upx
- zstd
- libxkbfile-dev
- pkg-config
- libsecret-1-dev
- libxss1
- libgconf-2-4
- dbus
- xvfb
- libgbm-dev
- libgtk-3-0
- tk
- fakeroot
- dpkg
- rpm
- xz-utils
- xorriso - xorriso
- xvfb
- xz-utils
- zstd
- zsync - zsync
- gnupg2 - bison
- lib32z1 - brotli
- texinfo - bzip2
- libsqlite3-dev
- libc++-dev
- libc++abi-dev
- libicu55
- curl - curl
- file - file
- flex
- ftp - ftp
- jq - jq
- m4
- netcat - netcat
- ssh
- parallel - parallel
- patchelf
- rsync - rsync
- shellcheck - shellcheck
- sqlite3
- ssh
- sudo - sudo
- telnet - telnet
- time - time
- unzip - unzip
- zip
- wget - wget
- m4
- bison
- flex
- patchelf
- bzip2
- sqlite3
- brotli
- yamllint - yamllint
- libcurl3 - zip
- Alibaba Cloud CLI (3.0.56) - Alibaba Cloud CLI (3.0.56)
- AWS CLI (aws-cli/1.18.134 Python/2.7.12 Linux/4.15.0-1093-azure botocore/1.17.57) - AWS CLI (aws-cli/1.18.137 Python/2.7.12 Linux/4.15.0-1095-azure botocore/1.17.60)
- AWS CLI Session manager plugin (1.1.61.0) - AWS CLI Session manager plugin (1.1.61.0)
- build-essential - build-essential
- nvm (0.35.3) - nvm (0.35.3)
@@ -76,9 +80,25 @@ The following software is installed on machines with the 20200908.1 update.
- Swift version 5.2.5 (swift-5.2.5-RELEASE) - Swift version 5.2.5 (swift-5.2.5-RELEASE)
Target: x86_64-unknown-linux-gnu Target: x86_64-unknown-linux-gnu
- CMake (cmake version 3.17.0) - CMake (cmake version 3.17.0)
- Docker Compose (docker-compose version 1.27.0, build 980ec85b) - Docker Compose (docker-compose version 1.27.2, build 18f557f9)
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b) - Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
- Docker-Buildx (0.4.2+azure) - Docker-Buildx (0.4.2+azure)
- Cached container images
- node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- .NET Core SDK: - .NET Core SDK:
- 3.1.402 - 3.1.402
- 3.1.401 - 3.1.401
@@ -166,7 +186,7 @@ Target: x86_64-unknown-linux-gnu
- GitHub CLI 0.12.0 - GitHub CLI 0.12.0
- Google Chrome (Google Chrome 85.0.4183.102 ) - Google Chrome (Google Chrome 85.0.4183.102 )
- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable - ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
- Google Cloud SDK (308.0.0) - Google Cloud SDK (309.0.0)
- Haskell Cabal (cabal-install version 3.4.0.0 - Haskell Cabal (cabal-install version 3.4.0.0
compiled using version 3.4.0.0 of the Cabal library ) compiled using version 3.4.0.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
@@ -184,7 +204,7 @@ compiled using version 3.4.0.0 of the Cabal library )
- Gradle 6.6.1 - Gradle 6.6.1
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.8.1 go1.14.2 linux/amd64) - Kind (kind v0.8.1 go1.14.2 linux/amd64)
- kubectl (Client Version: v1.19.0) - kubectl (Client Version: v1.19.1)
- helm (v3.3.1+g249e521) - helm (v3.3.1+g249e521)
- minikube version: v1.13.0 - minikube version: v1.13.0
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z }) - kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
@@ -217,14 +237,14 @@ Local version: Unknown)
- PHP 7.0 (PHP 7.0.33-30+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:59) ( NTS )) - PHP 7.0 (PHP 7.0.33-30+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:59) ( NTS ))
- PHP 7.1 (PHP 7.1.33-17+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:52) ( NTS )) - PHP 7.1 (PHP 7.1.33-17+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:52) ( NTS ))
- PHP 7.2 (PHP 7.2.33-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:43:59) ( NTS )) - PHP 7.2 (PHP 7.2.33-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:43:59) ( NTS ))
- PHP 7.3 (PHP 7.3.21-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:43:42) ( NTS )) - PHP 7.3 (PHP 7.3.22-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Sep 9 2020 06:46:12) ( NTS ))
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:29:10) ( NTS )) - PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:35:57) ( NTS ))
- Composer (Composer version 1.10.12 2020-09-08 22:58:51) - Composer (Composer version 1.10.13 2020-09-09 11:46:34)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.) - PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate - Pollinate
- psql (PostgreSQL) 12.4 - psql (PostgreSQL) 12.4
- Powershell (PowerShell 7.0.3) - Powershell (PowerShell 7.0.3)
- Pulumi v2.9.2 - Pulumi v2.10.0
- ruby (2.3.1p112) - ruby (2.3.1p112)
- gem (3.1.4) - gem (3.1.4)
- OpenSSL 1.1.0h 27 Mar 2018 (Library: OpenSSL 1.1.1g 21 Apr 2020) - OpenSSL 1.1.0h 27 Mar 2018 (Library: OpenSSL 1.1.1g 21 Apr 2020)
@@ -249,10 +269,10 @@ Local version: Unknown)
- Packer (1.6.2) - Packer (1.6.2)
- Vcpkg 2020.06.15-unknownhash - Vcpkg 2020.06.15-unknownhash
- Vercel CLI (20.1.0) - Vercel CLI (20.1.0)
- MongoDB on Linux v4.4.0 - MongoDB on Linux v4.4.1
- Haveged 1.9.1-3 - Haveged 1.9.1-3
- Swig 3.0.8 - Swig 3.0.8
- Netlify CLI (netlify-cli/2.61.2 linux-x64 node-v12.18.3) - Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
- Google Repository 58 - Google Repository 58
- Google Play services 49 - Google Play services 49
- Google APIs 24 - Google APIs 24
@@ -327,22 +347,6 @@ Local version: Unknown)
- Az Module (4.3.0) - Az Module (4.3.0)
- Az Module (4.4.0) - Az Module (4.4.0)
- Az Module (4.6.0) - Az Module (4.6.0)
- Cached container images
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- Ruby: - Ruby:
- Ruby 2.4.10 - Ruby 2.4.10
- Ruby 2.5.8 - Ruby 2.5.8
@@ -365,16 +369,16 @@ Local version: Unknown)
- node 8.17.0 - node 8.17.0
- node 10.22.0 - node 10.22.0
- node 12.18.3 - node 12.18.3
- node 14.9.0 - node 14.10.1
- go: - go:
- go 1.11.13 - go 1.11.13
- go 1.12.17 - go 1.12.17
- go 1.13.15 - go 1.13.15
- go 1.14.8 - go 1.14.9
- go 1.15.1 - go 1.15.2
- boost: - boost:
- boost 1.69.0 - boost 1.69.0
- boost 1.72.0 - boost 1.72.0
- AWS SAM CLI, version 1.2.0 - AWS SAM CLI, version 1.2.0
- Homebrew on Linux (Homebrew 2.5.0 - Homebrew on Linux (Homebrew 2.5.1
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08)) Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))

View File

@@ -1,6 +1,10 @@
<!--- DO NOT EDIT - This markdown file is autogenerated. --> <!--- DO NOT EDIT - This markdown file is autogenerated. -->
| Announcements |
|-|
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 18.04.5 LTS # Ubuntu 18.04.5 LTS
The following software is installed on machines with the 20200908.1 update. The following software is installed on machines with the 20200914.1 update.
*** ***
- 7-Zip 16.02 - 7-Zip 16.02
- Ansible (ansible 2.9.13) - Ansible (ansible 2.9.13)
@@ -9,63 +13,63 @@ The following software is installed on machines with the 20200908.1 update.
- Azure CLI (azure-cli 2.11.1) - Azure CLI (azure-cli 2.11.1)
- Azure CLI (azure-devops 0.18.0) - Azure CLI (azure-devops 0.18.0)
- Basic packages: - Basic packages:
- dbus
- dnsutils - dnsutils
- dpkg
- fakeroot
- gnupg2
- iproute2 - iproute2
- iputils-ping - iputils-ping
- lib32z1
- libc++abi-dev
- libc++-dev
- libcurl3
- libgbm-dev
- libgconf-2-4
- libgtk-3-0
- libsecret-1-dev
- libsqlite3-dev
- libunwind8 - libunwind8
- libxkbfile-dev
- libxss1
- locales - locales
- openssh-client - openssh-client
- pkg-config
- rpm
- texinfo
- tk
- tzdata - tzdata
- upx - upx
- zstd
- libxkbfile-dev
- pkg-config
- libsecret-1-dev
- libxss1
- libgconf-2-4
- dbus
- xvfb
- libgbm-dev
- libgtk-3-0
- tk
- fakeroot
- dpkg
- rpm
- xz-utils
- xorriso - xorriso
- xvfb
- xz-utils
- zstd
- zsync - zsync
- gnupg2 - bison
- lib32z1 - brotli
- texinfo - bzip2
- libsqlite3-dev
- libc++-dev
- libc++abi-dev
- curl - curl
- file - file
- flex
- ftp - ftp
- jq - jq
- m4
- netcat - netcat
- ssh
- parallel - parallel
- patchelf
- rsync - rsync
- shellcheck - shellcheck
- sqlite3
- ssh
- sudo - sudo
- telnet - telnet
- time - time
- unzip - unzip
- zip
- wget - wget
- m4
- bison
- flex
- patchelf
- bzip2
- sqlite3
- brotli
- yamllint - yamllint
- libcurl3 - zip
- Alibaba Cloud CLI (3.0.56) - Alibaba Cloud CLI (3.0.56)
- AWS CLI (aws-cli/1.18.134 Python/2.7.17 Linux/5.4.0-1025-azure botocore/1.17.57) - AWS CLI (aws-cli/1.18.137 Python/2.7.17 Linux/5.4.0-1025-azure botocore/1.17.60)
- AWS CLI Session manager plugin (1.1.61.0) - AWS CLI Session manager plugin (1.1.61.0)
- build-essential - build-essential
- Clang 6.0 (6.0.0) - Clang 6.0 (6.0.0)
@@ -77,9 +81,25 @@ Target: x86_64-unknown-linux-gnu
- Podman (2.0.6) - Podman (2.0.6)
- Buildah (1.15.2) - Buildah (1.15.2)
- Skopeo (1.1.1) - Skopeo (1.1.1)
- Docker Compose (docker-compose version 1.27.0, build 980ec85b) - Docker Compose (docker-compose version 1.27.2, build 18f557f9)
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b) - Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
- Docker-Buildx (0.4.2+azure) - Docker-Buildx (0.4.2+azure)
- Cached container images
- node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- .NET Core SDK: - .NET Core SDK:
- 3.1.402 - 3.1.402
- 3.1.401 - 3.1.401
@@ -167,7 +187,7 @@ Target: x86_64-unknown-linux-gnu
- GitHub CLI 0.12.0 - GitHub CLI 0.12.0
- Google Chrome (Google Chrome 85.0.4183.102 ) - Google Chrome (Google Chrome 85.0.4183.102 )
- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable - ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
- Google Cloud SDK (308.0.0) - Google Cloud SDK (309.0.0)
- Haskell Cabal (cabal-install version 3.4.0.0 - Haskell Cabal (cabal-install version 3.4.0.0
compiled using version 3.4.0.0 of the Cabal library ) compiled using version 3.4.0.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
@@ -185,7 +205,7 @@ compiled using version 3.4.0.0 of the Cabal library )
- Gradle 6.6.1 - Gradle 6.6.1
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.8.1 go1.14.2 linux/amd64) - Kind (kind v0.8.1 go1.14.2 linux/amd64)
- kubectl (Client Version: v1.19.0) - kubectl (Client Version: v1.19.1)
- helm (v3.3.1+g249e521) - helm (v3.3.1+g249e521)
- minikube version: v1.13.0 - minikube version: v1.13.0
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z }) - kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
@@ -217,14 +237,14 @@ Local version: Unknown)
- PhantomJS (2.1.1) - PhantomJS (2.1.1)
- PHP 7.1 (PHP 7.1.33-17+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:47:20) ( NTS )) - PHP 7.1 (PHP 7.1.33-17+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:47:20) ( NTS ))
- PHP 7.2 (PHP 7.2.33-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:44:29) ( NTS )) - PHP 7.2 (PHP 7.2.33-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:44:29) ( NTS ))
- PHP 7.3 (PHP 7.3.21-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:44:10) ( NTS )) - PHP 7.3 (PHP 7.3.22-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep 9 2020 06:46:30) ( NTS ))
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:29:36) ( NTS )) - PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:36:14) ( NTS ))
- Composer (Composer version 1.10.12 2020-09-08 22:58:51) - Composer (Composer version 1.10.13 2020-09-09 11:46:34)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.) - PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate - Pollinate
- psql (PostgreSQL) 12.4 - psql (PostgreSQL) 12.4
- Powershell (PowerShell 7.0.3) - Powershell (PowerShell 7.0.3)
- Pulumi v2.9.2 - Pulumi v2.10.0
- ruby (2.5.1p57) - ruby (2.5.1p57)
- gem (3.1.4) - gem (3.1.4)
- OpenSSL 1.1.1g 21 Apr 2020 - OpenSSL 1.1.1g 21 Apr 2020
@@ -249,10 +269,10 @@ Local version: Unknown)
- Packer (1.6.2) - Packer (1.6.2)
- Vcpkg 2020.06.15-unknownhash - Vcpkg 2020.06.15-unknownhash
- Vercel CLI (20.1.0) - Vercel CLI (20.1.0)
- MongoDB on Linux v4.4.0 - MongoDB on Linux v4.4.1
- Haveged 1.9.1-6 - Haveged 1.9.1-6
- Swig 3.0.12 - Swig 3.0.12
- Netlify CLI (netlify-cli/2.61.2 linux-x64 node-v12.18.3) - Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
- Google Repository 58 - Google Repository 58
- Google Play services 49 - Google Play services 49
- Google APIs 24 - Google APIs 24
@@ -321,22 +341,6 @@ Local version: Unknown)
- Az Module (4.3.0) - Az Module (4.3.0)
- Az Module (4.4.0) - Az Module (4.4.0)
- Az Module (4.6.0) - Az Module (4.6.0)
- Cached container images
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- Ruby: - Ruby:
- Ruby 2.4.10 - Ruby 2.4.10
- Ruby 2.5.8 - Ruby 2.5.8
@@ -359,16 +363,16 @@ Local version: Unknown)
- node 8.17.0 - node 8.17.0
- node 10.22.0 - node 10.22.0
- node 12.18.3 - node 12.18.3
- node 14.9.0 - node 14.10.1
- go: - go:
- go 1.11.13 - go 1.11.13
- go 1.12.17 - go 1.12.17
- go 1.13.15 - go 1.13.15
- go 1.14.8 - go 1.14.9
- go 1.15.1 - go 1.15.2
- boost: - boost:
- boost 1.69.0 - boost 1.69.0
- boost 1.72.0 - boost 1.72.0
- AWS SAM CLI, version 1.2.0 - AWS SAM CLI, version 1.2.0
- Homebrew on Linux (Homebrew 2.5.0 - Homebrew on Linux (Homebrew 2.5.1
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08)) Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))

View File

@@ -1,6 +1,10 @@
<!--- DO NOT EDIT - This markdown file is autogenerated. --> <!--- DO NOT EDIT - This markdown file is autogenerated. -->
| Announcements |
|-|
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 20.04.1 LTS # Ubuntu 20.04.1 LTS
The following software is installed on machines with the 20200908.1 update. The following software is installed on machines with the 20200914.1 update.
*** ***
- 7-Zip 16.02 - 7-Zip 16.02
- Ansible (ansible 2.9.6) - Ansible (ansible 2.9.6)
@@ -9,63 +13,64 @@ The following software is installed on machines with the 20200908.1 update.
- Azure CLI (azure-cli 2.11.1) - Azure CLI (azure-cli 2.11.1)
- Azure CLI (azure-devops 0.18.0) - Azure CLI (azure-devops 0.18.0)
- Basic packages: - Basic packages:
- dbus
- dnsutils - dnsutils
- dpkg
- fakeroot
- gnupg2
- iproute2 - iproute2
- iputils-ping - iputils-ping
- lib32z1
- libc++abi-dev
- libc++-dev
- libcurl4
- libgbm-dev
- libgconf-2-4
- libgtk-3-0
- libsecret-1-dev
- libsqlite3-dev
- libunwind8 - libunwind8
- libxkbfile-dev
- libxss1
- locales - locales
- openssh-client - openssh-client
- pkg-config
- python-is-python2
- rpm
- texinfo
- tk
- tzdata - tzdata
- upx - upx
- zstd
- libxkbfile-dev
- pkg-config
- libsecret-1-dev
- libxss1
- libgconf-2-4
- dbus
- xvfb
- libgbm-dev
- libgtk-3-0
- tk
- fakeroot
- dpkg
- rpm
- xz-utils
- xorriso - xorriso
- xvfb
- xz-utils
- zstd
- zsync - zsync
- gnupg2 - bison
- lib32z1 - brotli
- texinfo - bzip2
- libsqlite3-dev
- libc++-dev
- libc++abi-dev
- curl - curl
- file - file
- flex
- ftp - ftp
- jq - jq
- m4
- netcat - netcat
- ssh
- parallel - parallel
- patchelf
- rsync - rsync
- shellcheck - shellcheck
- sqlite3
- ssh
- sudo - sudo
- telnet - telnet
- time - time
- unzip - unzip
- zip
- wget - wget
- m4
- bison
- flex
- patchelf
- bzip2
- sqlite3
- brotli
- yamllint - yamllint
- libcurl4 - zip
- Alibaba Cloud CLI (3.0.56) - Alibaba Cloud CLI (3.0.56)
- AWS CLI (aws-cli/2.0.46 Python/3.7.3 Linux/5.4.0-1023-azure exe/x86_64.ubuntu.20) - AWS CLI (aws-cli/2.0.48 Python/3.7.3 Linux/5.4.0-1025-azure exe/x86_64.ubuntu.20)
- AWS CLI Session manager plugin (1.1.61.0) - AWS CLI Session manager plugin (1.1.61.0)
- build-essential - build-essential
- Clang 6.0 (6.0.1) - Clang 6.0 (6.0.1)
@@ -77,9 +82,25 @@ Target: x86_64-unknown-linux-gnu
- Podman (2.0.6) - Podman (2.0.6)
- Buildah (1.15.2) - Buildah (1.15.2)
- Skopeo (1.1.1) - Skopeo (1.1.1)
- Docker Compose (docker-compose version 1.27.0, build 980ec85b) - Docker Compose (docker-compose version 1.27.2, build 18f557f9)
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b) - Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
- Docker-Buildx (0.4.2+azure) - Docker-Buildx (0.4.2+azure)
- Cached container images
- node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- .NET Core SDK: - .NET Core SDK:
- 3.1.402 - 3.1.402
- 3.1.401 - 3.1.401
@@ -163,7 +184,7 @@ Target: x86_64-unknown-linux-gnu
- GitHub CLI 0.12.0 - GitHub CLI 0.12.0
- Google Chrome (Google Chrome 85.0.4183.102 ) - Google Chrome (Google Chrome 85.0.4183.102 )
- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable - ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
- Google Cloud SDK (308.0.0) - Google Cloud SDK (309.0.0)
- Haskell Cabal (cabal-install version 3.4.0.0 - Haskell Cabal (cabal-install version 3.4.0.0
compiled using version 3.4.0.0 of the Cabal library ) compiled using version 3.4.0.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
@@ -178,7 +199,7 @@ compiled using version 3.4.0.0 of the Cabal library )
- Gradle 6.6.1 - Gradle 6.6.1
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.8.1 go1.14.2 linux/amd64) - Kind (kind v0.8.1 go1.14.2 linux/amd64)
- kubectl (Client Version: v1.19.0) - kubectl (Client Version: v1.19.1)
- helm (v3.3.1+g249e521) - helm (v3.3.1+g249e521)
- minikube version: v1.13.0 - minikube version: v1.13.0
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z }) - kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
@@ -208,18 +229,18 @@ Local version: Unknown)
- Bazelisk (1.6.1) - Bazelisk (1.6.1)
- ORAS CLI 0.8.1 - ORAS CLI 0.8.1
- PhantomJS (2.1.1) - PhantomJS (2.1.1)
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:30:01) ( NTS )) - PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:36:30) ( NTS ))
> To use ppa:ondrej/php APT repository On Ubuntu 20.04 it is necessary to add it to the APT sources > To use ppa:ondrej/php APT repository On Ubuntu 20.04 it is necessary to add it to the APT sources
``` ```
apt-add-repository ppa:ondrej/php -y apt-add-repository ppa:ondrej/php -y
apt-get update apt-get update
``` ```
- Composer (Composer version 1.10.12 2020-09-08 22:58:51) - Composer (Composer version 1.10.13 2020-09-09 11:46:34)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.) - PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate - Pollinate
- psql (PostgreSQL) 12.4 - psql (PostgreSQL) 12.4
- Powershell (PowerShell 7.0.3) - Powershell (PowerShell 7.0.3)
- Pulumi v2.9.2 - Pulumi v2.10.0
- ruby (2.7.0p0) - ruby (2.7.0p0)
- gem (3.1.2) - gem (3.1.2)
- OpenSSL 1.1.1f 31 Mar 2020 - OpenSSL 1.1.1f 31 Mar 2020
@@ -245,10 +266,10 @@ apt-get update
- Packer (1.6.2) - Packer (1.6.2)
- Vcpkg 2020.06.15-unknownhash - Vcpkg 2020.06.15-unknownhash
- Vercel CLI (20.1.0) - Vercel CLI (20.1.0)
- MongoDB on Linux v4.4.0 - MongoDB on Linux v4.4.1
- Haveged 1.9.1-6ubuntu1 - Haveged 1.9.1-6ubuntu1
- Swig 4.0.1 - Swig 4.0.1
- Netlify CLI (netlify-cli/2.61.2 linux-x64 node-v12.18.3) - Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
- Google Repository 58 - Google Repository 58
- Google Play services 49 - Google Play services 49
- CMake 3.10.2.4988404 - CMake 3.10.2.4988404
@@ -274,22 +295,6 @@ apt-get update
- Android SDK Build-Tools 27.0.0 - Android SDK Build-Tools 27.0.0
- Android NDK 21.3.6528147 - Android NDK 21.3.6528147
- Az Module (4.6.1) - Az Module (4.6.1)
- Cached container images
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- Ruby: - Ruby:
- Ruby 2.5.8 - Ruby 2.5.8
- Ruby 2.6.6 - Ruby 2.6.6
@@ -311,10 +316,10 @@ apt-get update
- node 8.17.0 - node 8.17.0
- node 10.22.0 - node 10.22.0
- node 12.18.3 - node 12.18.3
- node 14.9.0 - node 14.10.1
- go: - go:
- go 1.14.8 - go 1.14.9
- go 1.15.1 - go 1.15.2
- AWS SAM CLI, version 1.2.0 - AWS SAM CLI, version 1.2.0
- Homebrew on Linux (Homebrew 2.5.0 - Homebrew on Linux (Homebrew 2.5.1
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08)) Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))

View File

@@ -0,0 +1,147 @@
function Split-TableRowByColumns {
param(
[string] $Row
)
return $Row.Split("|") | ForEach-Object { $_.trim() }
}
function Get-AndroidSDKRoot {
return "/usr/local/lib/android/sdk"
}
function Get-AndroidSDKManagerPath {
$androidSDKDir = Get-AndroidSDKRoot
return Join-Path $androidSDKDir "tools" "bin" "sdkmanager"
}
function Get-AndroidInstalledPackages {
$androidSDKManagerPath = Get-AndroidSDKManagerPath
$androidSDKManagerList = Invoke-Expression "$androidSDKManagerPath --list --include_obsolete"
$androidInstalledPackages = @()
foreach($packageInfo in $androidSDKManagerList) {
if($packageInfo -Match "Available Packages:") {
break
}
$androidInstalledPackages += $packageInfo
}
return $androidInstalledPackages
}
function Build-AndroidTable {
$packageInfo = Get-AndroidInstalledPackages
return @(
@{
"Package" = "Android SDK Platform-Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
},
@{
"Package" = "Android SDK Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
},
@{
"Package" = "Android SDK Platforms"
"Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
},
@{
"Package" = "Android SDK Build-tools"
"Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
},
@{
"Package" = "Google APIs"
"Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
},
@{
"Package" = "NDK"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "ndk-bundle"
},
@{
"Package" = "Android Support Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
},
@{
"Package" = "Google Play services"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
},
@{
"Package" = "Google Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
},
@{
"Package" = "SDK Patch Applier v4"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
},
@{
"Package" = "CMake"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
}
) | Where-Object { $_.Version } | ForEach-Object {
[PSCustomObject] @{
"Package Name" = $_.Package
"Version" = $_.Version
}
}
}
function Get-AndroidPackageVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo,
[Parameter(Mandatory)]
[object] $MatchedString
)
$versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
}
return ($versions -Join "<br>")
}
function Get-AndroidPlatformVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
$revision = $packageInfoParts[1]
$version = $packageInfoParts[0].split(";")[1]
return "$version (rev $revision)"
}
[array]::Reverse($versions)
return ($versions -Join "<br>")
}
function Get-AndroidBuildToolVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
}
$groupVersions = @()
$versions | ForEach-Object {
$majorVersion = $_.Split(".")[0]
$groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
}
return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "<br>")
}
function Get-AndroidGoogleAPIsVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[0].split(";")[1]
}
return ($versions -Join "<br>")
}

View File

@@ -0,0 +1,19 @@
function Get-ChromeVersion {
$googleChromeVersion = google-chrome --version | Take-OutputPart -Part 2
return "Google Chrome $googleChromeVersion"
}
function Get-ChromeDriverVersion {
$chromeDriverVersion = chromedriver --version | Take-OutputPart -Part 1
return "ChromeDriver $chromeDriverVersion"
}
function Get-FirefoxVersion {
$firefoxVersion = firefox --version
return $firefoxVersion
}
function Get-GeckodriverVersion {
$geckodriverVersion = geckodriver --version | Select-Object -First 1 | Take-OutputPart -Part 1
return "Geckodriver $geckodriverVersion"
}

View File

@@ -0,0 +1,64 @@
function Get-ToolcacheRubyVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "Ruby"
return Get-ChildItem $toolcachePath -Name | Sort-Object { [Version]$_ }
}
function Get-ToolcachePythonVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "Python"
return Get-ChildItem $toolcachePath -Name | Sort-Object { [Version]$_ }
}
function Get-ToolcachePyPyVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "PyPy"
Get-ChildItem -Path $toolcachePath -Name | Sort-Object { [Version] $_ } | ForEach-Object {
$pypyRootPath = Join-Path $toolcachePath $_ "x64"
[string]$pypyVersionOutput = & "$pypyRootPath/bin/python" -c "import sys;print(sys.version)"
$pypyVersionOutput -match "^([\d\.]+) \(.+\) \[PyPy ([\d\.]+) .+]$" | Out-Null
return "{0} [PyPy {1}]" -f $Matches[1], $Matches[2]
}
}
function Get-ToolcacheNodeVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "node"
return Get-ChildItem $toolcachePath -Name | Sort-Object { [Version]$_ }
}
function Get-ToolcacheGoVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "go"
return Get-ChildItem $toolcachePath -Name | Sort-Object { [Version]$_ }
}
function Get-ToolcacheBoostVersions {
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "boost"
if (-not (Test-Path $toolcachePath)) {
return @()
}
return Get-ChildItem $toolcachePath -Name | Sort-Object { [Version]$_ }
}
function Build-CachedToolsSection {
$output = ""
$output += New-MDHeader "Ruby" -Level 4
$output += New-MDList -Lines (Get-ToolcacheRubyVersions) -Style Unordered
$output += New-MDHeader "Python" -Level 4
$output += New-MDList -Lines (Get-ToolcachePythonVersions) -Style Unordered
$output += New-MDHeader "PyPy" -Level 4
$output += New-MDList -Lines (Get-ToolcachePyPyVersions) -Style Unordered
$output += New-MDHeader "Node.js" -Level 4
$output += New-MDList -Lines (Get-ToolcacheNodeVersions) -Style Unordered
$output += New-MDHeader "Go" -Level 4
$output += New-MDList -Lines (Get-ToolcacheGoVersions) -Style Unordered
$boostVersions = Get-ToolcacheBoostVersions
if ($boostVersions.Count -gt 0) {
$output += New-MDHeader "Boost" -Level 4
$output += New-MDList -Lines $boostVersions -Style Unordered
}
return $output
}

View File

@@ -0,0 +1,247 @@
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Helpers.psm1") -DisableNameChecking
function Get-OSName {
lsb_release -ds
}
function Get-CPPVersions {
$cppVersions = apt list --installed 2>&1 | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
return "GNU C++ " + ($cppVersions -Join ", ")
}
function Get-FortranVersions {
$fortranVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
return "GNU Fortran " + ($fortranVersions -Join ", ")
}
function Get-ClangVersions {
$clangVersions = @()
$clangVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^clang-\d+"} | ForEach-Object {
$clangCommand = ($_ -Split "/")[0]
Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "clang version" } | ForEach-Object {
$_ -match "clang version (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
}
return "Clang " + ($clangVersions -Join ", ")
}
function Get-ErlangVersion {
$result = Get-CommandResult "erl -version"
$result.Output -match "version (?<version>\d+\.\d+\.\d+)" | Out-Null
$version = $Matches.version
return "Erlang $version"
}
function Get-MonoVersion {
$monoVersion = mono --version | Out-String | Take-OutputPart -Part 4
return "Mono $monoVersion"
}
function Get-NodeVersion {
$nodeVersion = $(node --version).Substring(1)
return "Node $nodeVersion"
}
function Get-PythonVersion {
$result = Get-CommandResult "python --version"
$version = $result.Output | Take-OutputPart -Part 1
return "Python $version"
}
function Get-Python3Version {
$result = Get-CommandResult "python3 --version"
$version = $result.Output | Take-OutputPart -Part 1
return "Python3 $version"
}
function Get-PowershellVersion {
return $(pwsh --version)
}
function Get-RubyVersion {
$rubyVersion = ruby --version | Out-String | Take-OutputPart -Part 1
return "Ruby $rubyVersion"
}
function Get-SwiftVersion {
$swiftVersion = swift --version | Out-String | Take-OutputPart -Part 2
return "Swift $swiftVersion"
}
function Get-JuliaVersion {
$juliaVersion = julia --version | Take-OutputPart -Part 2
return "Julia $juliaVersion"
}
function Get-HomebrewVersion {
$result = Get-CommandResult "brew -v"
$result.Output -match "Homebrew (?<version>\d+\.\d+\.\d+)" | Out-Null
$version = $Matches.version
return "Homebrew $version"
}
function Get-GemVersion {
$result = Get-CommandResult "gem --version"
$result.Output -match "(?<version>\d+\.\d+\.\d+)" | Out-Null
$gemVersion = $Matches.version
return "Gem $gemVersion"
}
function Get-MinicondaVersion {
$condaVersion = conda --version
return "Mini$condaVersion"
}
function Get-HelmVersion {
$(helm version) -match 'Version:"v(?<version>\d+\.\d+\.\d+)"' | Out-Null
$helmVersion = $Matches.version
return "Helm $helmVersion"
}
function Get-NpmVersion {
$npmVersion = npm --version
return "Npm $npmVersion"
}
function Get-YarnVersion {
$yarnVersion = yarn --version
return "Yarn $yarnVersion"
}
function Get-PipVersion {
$result = Get-CommandResult "pip --version"
$result.Output -match "pip (?<version>\d+\.\d+\.\d+)" | Out-Null
$pipVersion = $Matches.version
return "Pip $pipVersion"
}
function Get-Pip3Version {
$result = Get-CommandResult "pip3 --version"
$result.Output -match "pip (?<version>\d+\.\d+\.\d+)" | Out-Null
$pipVersion = $Matches.version
return "Pip3 $pipVersion"
}
function Get-VcpkgVersion {
$result = Get-CommandResult "vcpkg version"
$result.Output -match "version (?<version>\d+\.\d+\.\d+)" | Out-Null
$vcpkgVersion = $Matches.version
return "Vcpkg $vcpkgVersion"
}
function Get-AntVersion {
$result = ant -version | Out-String
$result -match "version (?<version>\d+\.\d+\.\d+)" | Out-Null
$antVersion = $Matches.version
return "Ant $antVersion"
}
function Get-GradleVersion {
$result = gradle -v | Out-String
$result -match "Gradle (?<version>\d+\.\d+\.\d+)" | Out-Null
$gradleVersion = $Matches.version
return "Gradle $gradleVersion"
}
function Get-MavenVersion {
$result = mvn -version | Out-String
$result -match "Apache Maven (?<version>\d+\.\d+\.\d+)" | Out-Null
$mavenVersion = $Matches.version
return "Maven $mavenVersion"
}
function Get-SbtVersion {
$result = sbt -version 2>&1 | Out-String
$result -match "sbt script version: (?<version>\d+\.\d+\.\d+)" | Out-Null
$sbtVersion = $Matches.version
return "Sbt $sbtVersion"
}
function Get-PHPVersions {
return $(apt list --installed 2>&1) | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object {
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
}
function Get-ComposerVersion {
$(composer --version) -match "Composer version (?<version>\d+\.\d+\.\d+)\s" | Out-Null
return $Matches.version
}
function Get-PHPUnitVersion {
$(phpunit --version | Out-String) -match "PHPUnit (?<version>\d+\.\d+\.\d+)\s" | Out-Null
return $Matches.version
}
function Build-PHPTable {
$php = @{
"Tool" = "PHP"
"Version" = "$(Get-PHPVersions -Join '<br>')"
}
$composer = @{
"Tool" = "Composer"
"Version" = Get-ComposerVersion
}
$phpunit = @{
"Tool" = "PHPUnit"
"Version" = Get-PHPUnitVersion
}
return @($php, $composer, $phpunit) | ForEach-Object {
[PSCustomObject] @{
"Tool" = $_.Tool
"Version" = $_.Version
}
}
}
function Get-GHCVersion {
$(ghc --version) -match "version (?<version>\d+\.\d+\.\d+)" | Out-Null
$ghcVersion = $Matches.version
return "GHC $ghcVersion"
}
function Get-CabalVersion {
$(cabal --version | Out-String) -match "cabal-install version (?<version>\d+\.\d+\.\d+\.\d+)" | Out-Null
$cabalVersion = $Matches.version
return "Cabal $cabalVersion"
}
function Get-StackVersion {
$(stack --version | Out-String) -match "Version (?<version>\d+\.\d+\.\d+)" | Out-Null
$stackVersion = $Matches.version
return "Stack $stackVersion"
}
function Get-AzModuleVersions {
$azModuleVersions = Get-ChildItem /usr/share | Where-Object { $_ -match "az_\d+" } | Foreach-Object {
$_.Name.Split("_")[1]
}
$azModuleVersions = $azModuleVersions -join " "
return $azModuleVersions
}
function Get-DotNetCoreSdkVersions {
$unsortedDotNetCoreSdkVersion = dotnet --list-sdks list | ForEach-Object { $_ | Take-OutputPart -Part 0 }
$dotNetCoreSdkVersion = $unsortedDotNetCoreSdkVersion -join " "
return $dotNetCoreSdkVersion
}
function Get-CachedDockerImages {
$toolsetJson = Get-ToolsetContent
$images = $toolsetJson.docker.images
return $images
}
function Get-AptPackages {
$toolsetJson = Get-ToolsetContent
$apt = $toolsetJson.apt
$pkgs = ($apt.common_packages + $apt.cmd_packages | Sort-Object) -join ", "
return $pkgs
}

View File

@@ -0,0 +1,35 @@
function Get-PostgreSqlVersion {
$postgreSQLVersion = psql --version | Take-OutputPart -Part 2
return "Postgre SQL $postgreSQLVersion"
}
function Get-MongoDbVersion {
$mongoDBVersion = mongod --version | Select-Object -First 1 | Take-OutputPart -Part 2 -Delimiter "v"
return "MongoDB $mongoDBVersion"
}
function Get-SqliteVersion {
$sqliteVersion = sqlite3 --version | Take-OutputPart -Part 0
return "sqlite3 $sqliteVersion"
}
function Get-MySQLVersion {
$mySQLVersion = mysqld --version | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "-"
return "MySQL $mySQLVersion"
}
function Build-MySQLSection {
$output = ""
$output += New-MDHeader "MySQL" -Level 4
$output += New-MDList -Style Unordered -Lines @(
(Get-MySQLVersion ),
"MySQL Server (user:root password:root)",
"MS SQL Server Client Tools"
)
$output += New-MDCode -Lines @(
"MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'"
)
return $output
}

View File

@@ -0,0 +1,212 @@
param (
[Parameter(Mandatory)][string]
$OutputDirectory
)
Import-Module MarkdownPS
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.CachedTools.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Common.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Databases.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Helpers.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Java.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Rust.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
$markdown = ""
if ($env:ANNOUNCEMENTS) {
$markdown += $env:ANNOUNCEMENTS
$markdown += New-MDNewLine
$markdown += "***"
$markdown += New-MDNewLine
}
$OSName = Get-OSName
$markdown += New-MDHeader "$OSName" -Level 1
$markdown += New-MDList -Style Unordered -Lines @(
"Image Version: $env:IMAGE_VERSION"
)
$markdown += New-MDHeader "Installed Software" -Level 2
$markdown += New-MDHeader "Language and Runtime" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-CPPVersions),
(Get-FortranVersions),
(Get-ClangVersions),
(Get-ErlangVersion),
(Get-MonoVersion),
(Get-NodeVersion),
(Get-PythonVersion),
(Get-Python3Version),
(Get-PowershellVersion),
(Get-RubyVersion),
(Get-SwiftVersion),
(Get-JuliaVersion)
)
$markdown += New-MDHeader "Package Management" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-HomebrewVersion),
(Get-GemVersion),
(Get-MinicondaVersion),
(Get-HelmVersion),
(Get-NpmVersion),
(Get-YarnVersion),
(Get-PipVersion),
(Get-Pip3Version),
(Get-VcpkgVersion)
)
$markdown += New-MDHeader "Project Management" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AntVersion),
(Get-GradleVersion),
(Get-MavenVersion),
(Get-SbtVersion)
)
$markdown += New-MDHeader "Tools" -Level 3
$toolsList = @(
(Get-7zipVersion),
(Get-AnsibleVersion),
(Get-AzCopy7Version),
(Get-AzCopy10Version),
(Get-BazelVersion),
(Get-BazeliskVersion),
(Get-CMakeVersion),
(Get-CurlVersion),
(Get-DockerMobyVersion),
(Get-DockerComposeVersion),
(Get-DockerBuildxVersion),
(Get-GitVersion),
(Get-GitLFSVersion),
(Get-GitFTPVersion),
(Get-GoogleCloudSDKVersion),
(Get-HavegedVersion),
(Get-HerokuVersion),
(Get-HHVMVersion),
(Get-SVNVersion),
(Get-JqVersion),
(Get-KindVersion),
(Get-KubectlVersion),
(Get-KustomizeVersion),
(Get-LeiningenVersion),
(Get-M4Version),
(Get-HGVersion),
(Get-MinikubeVersion),
(Get-NewmanVersion),
(Get-NvmVersion),
(Get-PackerVersion),
(Get-PhantomJSVersion),
(Get-SwigVersion),
(Get-TerraformVersion),
(Get-UnZipVersion),
(Get-WgetVersion),
(Get-ZipVersion),
(Get-ZstdVersion)
)
if (-not (Test-IsUbuntu16)) {
$toolsList += @(
(Get-PodManVersion),
(Get-BuildahVersion),
(Get-SkopeoVersion)
)
}
$markdown += New-MDList -Style Unordered -Lines ($toolsList | Sort-Object)
$markdown += New-MDHeader "CLI Tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AlibabaCloudCliVersion),
(Get-AWSCliVersion),
(Get-AWSCliSessionManagerPluginVersion),
(Get-AWSSAMVersion),
(Get-AzureCliVersion),
(Get-AzureDevopsVersion),
(Get-GitHubCliVersion),
(Get-HubCliVersion),
(Get-NetlifyCliVersion),
(Get-OCCliVersion),
(Get-ORASCliVersion),
(Get-VerselCliversion)
)
$markdown += New-MDHeader "Java" -Level 3
$markdown += Get-JavaVersions | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "PHP" -Level 3
$markdown += Build-PHPTable | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Haskell" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-GHCVersion),
(Get-CabalVersion),
(Get-StackVersion)
)
$markdown += New-MDHeader "Rust Tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-RustVersion),
(Get-RustupVersion),
(Get-RustdocVersion),
(Get-CargoVersion)
)
$markdown += New-MDHeader "Packages" -Level 4
$markdown += New-MDList -Style Unordered -Lines @(
(Get-BindgenVersion),
(Get-CargoAuditVersion),
(Get-CargoOutdatedVersion),
(Get-CargoClippyVersion),
(Get-CbindgenVersion),
(Get-RustfmtVersion)
)
$markdown += New-MDHeader "Browsers and Drivers" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-ChromeVersion),
(Get-ChromeDriverVersion),
(Get-FirefoxVersion),
(Get-GeckodriverVersion)
)
$markdown += New-MDHeader ".NET Core SDK" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-DotNetCoreSdkVersions)
)
$markdown += New-MDHeader "Az Module" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AzModuleVersions)
)
$markdown += New-MDHeader "Databases" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-PostgreSqlVersion),
(Get-MongoDbVersion),
(Get-SqliteVersion)
)
$markdown += Build-MySQLSection
$markdown += New-MDHeader "Cached Tools" -Level 3
$markdown += Build-CachedToolsSection
$markdown += New-MDHeader "Android" -Level 3
$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Cached Docker images" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(Get-CachedDockerImages)
$markdown += New-MDHeader "Installed apt packages" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(Get-AptPackages)
$markdown | Out-File -FilePath "${OutputDirectory}/Ubuntu-Readme.md"

View File

@@ -0,0 +1,51 @@
function Get-CommandResult {
param (
[Parameter(Mandatory=$true)]
[string] $Command,
[switch] $Multiline
)
# Bash trick to suppress and show error output because some commands write to stderr (for example, "python --version")
$stdout = & bash -c "$Command 2>&1"
$exitCode = $LASTEXITCODE
return @{
Output = If ($Multiline -eq $true) { $stdout } else { [string]$stdout }
ExitCode = $exitCode
}
}
function Take-OutputPart {
param (
[Parameter(ValueFromPipeline)]
[string] $toolOutput,
[string] $Delimiter = " ",
[int[]] $Part
)
$parts = $toolOutput.Split($Delimiter, [System.StringSplitOptions]::RemoveEmptyEntries)
$selectedParts = $parts[$Part]
return [string]::Join($Delimiter, $selectedParts)
}
function Test-IsUbuntu16 {
return (lsb_release -rs) -eq "16.04"
}
function Test-IsUbuntu18 {
return (lsb_release -rs) -eq "18.04"
}
function Test-IsUbuntu20 {
return (lsb_release -rs) -eq "20.04"
}
function Get-ToolsetContent {
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
Get-Content $toolset -Raw | ConvertFrom-Json
}
function New-MDNewLine {
param (
[int] $Count = 1
)
$newLineSymbol = [System.Environment]::NewLine
return $newLineSymbol * $Count
}

View File

@@ -0,0 +1,30 @@
function Get-JavaFullVersion {
param($JavaRootPath)
$javaBinPath = Join-Path $javaRootPath "/bin/java"
$javaVersionOutput = (Get-CommandResult "$javaBinPath -version").Output
$matchResult = $javaVersionOutput | Select-String '^openjdk version \"([\d\._]+)\"'
return $matchResult.Matches.Groups[1].Value
}
function Get-JavaVersions {
$defaultJavaPath = $env:JAVA_HOME
$javaVersions = Get-Item env:JAVA_HOME_*_X64
$sortRules = @{
Expression = { [Int32]$_.Name.Split("_")[2] }
Descending = $false
}
return $javaVersions | Sort-Object $sortRules | ForEach-Object {
$javaPath = $_.Value
$version = Get-JavaFullVersion $javaPath
$vendor = $version.StartsWith("1.7") ? "Zulu" : "AdoptOpenJDK"
$defaultPostfix = ($javaPath -eq $defaultJavaPath) ? " (default)" : ""
[PSCustomObject] @{
"Version" = $version + $defaultPostfix
"Vendor" = $vendor
"Environment Variable" = $_.Name
}
}
}

View File

@@ -0,0 +1,55 @@
function Initialize-RustEnvironment {
ln -sf "/usr/share/rust/.rustup" $HOME/.rustup
ln -sf "/usr/share/rust/.cargo" $HOME/.cargo
}
function Get-RustVersion {
Initialize-RustEnvironment
$rustVersion = $(rustc --version) | Take-OutputPart -Part 1
return "Rust $rustVersion"
}
function Get-BindgenVersion {
$bindgenVersion = $(bindgen --version) | Take-OutputPart -Part 1
return "Bindgen $bindgenVersion"
}
function Get-CargoVersion {
$cargoVersion = $(cargo --version) | Take-OutputPart -Part 1
return "Cargo $cargoVersion"
}
function Get-CargoAuditVersion {
$cargoAuditVersion = $(cargo audit --version) | Take-OutputPart -Part 1
return "Cargo audit $cargoAuditVersion"
}
function Get-CargoOutdatedVersion {
$cargoOutdatedVersion = $(cargo outdated --version) | Take-OutputPart -Part 1 -Delimiter "v"
return "Cargo outdated $cargoOutdatedVersion"
}
function Get-CargoClippyVersion {
$cargoClippyVersion = $(cargo-clippy --version) | Take-OutputPart -Part 1
return "Cargo clippy $cargoClippyVersion"
}
function Get-CbindgenVersion {
$cbindgenVersion = $(cbindgen --version) | Take-OutputPart -Part 1
return "Cbindgen $cbindgenVersion"
}
function Get-RustupVersion {
$rustupVersion = $(rustup --version) | Take-OutputPart -Part 1
return "Rustup $rustupVersion"
}
function Get-RustdocVersion {
$rustdocVersion = $(rustdoc --version) | Take-OutputPart -Part 1
return "Rustdoc $rustdocVersion"
}
function Get-RustfmtVersion {
$rustfmtVersion = $(rustfmt --version) | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
return "Rustfmt $rustfmtVersion"
}

View File

@@ -0,0 +1,249 @@
function Get-7zipVersion {
$7zVersion = 7z i | Select-String "7-Zip" | Take-OutputPart -Part 2
return "7-Zip $7zVersion"
}
function Get-AnsibleVersion {
$ansibleVersion = sudo ansible --version | Select-Object -First 1 | Take-OutputPart -Part 1
return "Ansible $ansibleVersion"
}
function Get-AzCopy7Version {
$azcopy7Version = azcopy --version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
return "AzCopy7 $azcopy7Version (available by ``azcopy`` alias)"
}
function Get-AzCopy10Version {
$azcopy10Version = azcopy10 --version | Take-OutputPart -Part 2
return "AzCopy10 $azcopy10Version (available by ``azcopy10`` alias)"
}
function Get-BazelVersion {
$bazelVersion = sudo bazel --version | Select-String "bazel" | Take-OutputPart -Part 1
return "Bazel $bazelVersion"
}
function Get-BazeliskVersion {
$bazeliskVersion = sudo bazelisk version 2>&1 | Select-String "Bazelisk version:" | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
return "Bazelisk $bazeliskVersion"
}
function Get-PodManVersion {
$podmanVersion = podman --version | Take-OutputPart -Part 2
return "Podman $podmanVersion"
}
function Get-BuildahVersion {
$buildahVersion = buildah --version | Take-OutputPart -Part 2
return "Buildah $buildahVersion"
}
function Get-SkopeoVersion {
$skopeoVersion = skopeo --version | Take-OutputPart -Part 2
return "Skopeo $skopeoVersion"
}
function Get-CMakeVersion {
$cmakeVersion = cmake --version | Select-Object -First 1 | Take-OutputPart -Part 2
return "CMake $cmakeVersion"
}
function Get-CurlVersion {
$curlVersion = curl --version | Select-Object -First 1 | Take-OutputPart -Part 0,1
return $curlVersion
}
function Get-DockerComposeVersion {
$composeVersion = docker-compose -v | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter ","
return "Docker Compose $composeVersion"
}
function Get-DockerMobyVersion {
$dockerVersion = docker -v | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "+"
return "Docker-Moby $dockerVersion"
}
function Get-DockerBuildxVersion {
$buildxVersion = docker buildx version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "+"
return "Docker-Buildx $buildxVersion"
}
function Get-GitVersion {
$gitVersion = git --version 2>&1 | Take-OutputPart -Part 2
return "Git $gitVersion"
}
function Get-GitLFSVersion {
$gitlfsversion = git-lfs --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Git LFS $gitlfsversion"
}
function Get-GitFTPVersion {
$gitftpVersion = git-ftp --version | Take-OutputPart -Part 2
return "Git-ftp $gitftpVersion"
}
function Get-GoogleCloudSDKVersion {
return "$(sudo gcloud --version | Select-Object -First 1)"
}
function Get-HavegedVersion {
$havegedVersion = dpkg-query --showformat='${Version}' --show haveged | Take-OutputPart -Part 0 -Delimiter "-"
return "Haveged $havegedVersion"
}
function Get-HerokuVersion {
$herokuVersion = sudo heroku version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Heroku $herokuVersion"
}
function Get-HHVMVersion {
$hhvmVersion = hhvm --version | Select-Object -First 1 | Take-OutputPart -Part 2
return "HHVM (HipHop VM) $hhvmVersion"
}
function Get-SVNVersion {
$svnVersion = svn --version | Select-Object -First 1 | Take-OutputPart -Part 2
return "SVN $svnVersion"
}
function Get-KustomizeVersion {
$kustomizeVersion = kustomize version --short | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "v"
return "Kustomize $kustomizeVersion"
}
function Get-KindVersion {
$kindVersion = kind version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "v"
return "Kind $kindVersion"
}
function Get-KubectlVersion {
$kubectlVersion = kubectl version --client --short | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
return "Kubectl $kubectlVersion"
}
function Get-MinikubeVersion {
$minikubeVersion = minikube version --short | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
return "Minikube $minikubeVersion"
}
function Get-HGVersion {
$hgVersion = hg --version | Select-Object -First 1 | Take-OutputPart -Part -1 | Take-OutputPart -Part 0 -Delimiter ")"
return "Mercurial $hgVersion"
}
function Get-M4Version {
$m4Version = m4 --version | Select-Object -First 1 | Take-OutputPart -Part -1
return "m4 $m4Version"
}
function Get-LeiningenVersion {
return "$(lein -v | Take-OutputPart -Part 0,1)"
}
function Get-NewmanVersion {
return "Newman $(newman --version)"
}
function Get-NvmVersion {
$nvmVersion = bash -c "source /etc/skel/.nvm/nvm.sh && nvm --version"
return "nvm $nvmVersion"
}
function Get-PackerVersion {
return "Packer $(packer --version)"
}
function Get-PhantomJSVersion {
return "PhantomJS $(phantomjs --version)"
}
function Get-SwigVersion {
$swigVersion = swig -version | Select-String "SWIG Version" | Take-OutputPart -Part 2
return "Swig $swigVersion"
}
function Get-TerraformVersion {
return (terraform version | Select-String "^Terraform").Line.Replace('v','')
}
function Get-UnZipVersion {
$unzipVersion = unzip -v | Select-Object -First 1 | Take-OutputPart -Part 1
return "unzip $unzipVersion"
}
function Get-WgetVersion {
$wgetVersion = wget --version | Select-Object -First 1 | Take-OutputPart -Part 2
return "wget $wgetVersion"
}
function Get-ZipVersion {
$zipVersion = zip -v | Select-String "This is Zip" | Take-OutputPart -Part 3
return "zip $zipVersion"
}
function Get-ZstdVersion {
$zstdVersion = (zstd --version).Split() -match "v\d+" | ForEach-Object {$_.Replace("v","").Replace(",","")}
return "zstd $zstdVersion"
}
function Get-JqVersion {
$jqVersion = jq --version | Take-OutputPart -Part 1 -Delimiter "-"
return "jq $jqVersion"
}
function Get-AzureCliVersion {
$azcliVersion = sudo az -v | Select-String "azure-cli" | Take-OutputPart -Part -1
return "Azure CLI (azure-cli) $azcliVersion"
}
function Get-AzureDevopsVersion {
$azdevopsVersion = sudo az -v | Select-String "azure-devops" | Take-OutputPart -Part -1
return "Azure CLI (azure-devops) $azdevopsVersion"
}
function Get-AlibabaCloudCliVersion {
return "Alibaba Cloud CLI $(aliyun version)"
}
function Get-AWSCliVersion {
$awsVersion = aws --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "AWS CLI $awsVersion"
}
function Get-AWSCliSessionManagerPluginVersion {
return "AWS CLI Session manager plugin $(session-manager-plugin --version 2>&1)"
}
function Get-AWSSAMVersion {
return "AWS SAM CLI $(sam --version | Take-OutputPart -Part -1)"
}
function Get-HubCliVersion {
$hubVersion = hub --version | Select-String "hub version" | Take-OutputPart -Part 2
return "Hub CLI $hubVersion"
}
function Get-GitHubCliVersion {
$ghVersion = gh --version | Select-String "gh version" | Take-OutputPart -Part 2
return "GitHub CLI $ghVersion"
}
function Get-NetlifyCliVersion {
$netlifyVersion = sudo netlify --version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Netlify CLI $netlifyVersion"
}
function Get-OCCliVersion {
$ocVersion = oc version | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "-"
return "oc CLI $ocVersion"
}
function Get-ORASCliVersion {
$orasVersion = oras version | Select-String "^Version:" | Take-OutputPart -Part 1
return "ORAS CLI $orasVersion"
}
function Get-VerselCliversion {
return "$(vercel --version 2>&1 | Select-Object -First 1)"
}

View File

@@ -1,42 +0,0 @@
#!/bin/bash
################################################################################
## File: document.sh
## Desc: Helper functions for writing information to the metadata document
################################################################################
function WriteItem {
if [ -z "$METADATA_FILE" ]; then
echo "METADATA_FILE environment variable must be set to output to Metadata Document!"
return 1;
else
echo -e "$1" | sudo tee -a "$METADATA_FILE"
fi
}
function AddTitle {
WriteItem "# $1"
}
function AddSubTitle {
WriteItem "## $1"
}
function DocumentInstalledItem {
WriteItem "- $1"
}
function DocumentInstalledItemIndent {
WriteItem " - $1"
}
function AddBlockquote {
WriteItem "> $1"
}
function StartCode {
WriteItem '```'
}
function EndCode {
WriteItem '```'
}

View File

@@ -4,8 +4,6 @@
## Desc: Installs 7-zip ## Desc: Installs 7-zip
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install 7-Zip # Install 7-Zip
apt-get update -y apt-get update -y
@@ -17,7 +15,3 @@ if ! command -v 7z; then
echo "7-Zip was not installed" echo "7-Zip was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "7-Zip $(7z i | head --lines=2 | cut -d ' ' -f 3 | tr -d '\n')"

View File

@@ -0,0 +1,31 @@
$ErrorActionPreference = "Stop"
function Get-ToolsetContent
{
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
Get-Content $toolset -Raw | ConvertFrom-Json
}
# Specifies the installation policy
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery
# Install PowerShell modules
$modules = (Get-ToolsetContent).powershellModules
foreach($module in $modules)
{
$moduleName = $module.name
Write-Host "Installing ${moduleName} module"
if ($module.versions)
{
foreach ($version in $module.versions)
{
Write-Host " - $version"
Install-Module -Name $moduleName -RequiredVersion $version -Scope AllUsers -SkipPublisherCheck -Force
}
continue
}
Install-Module -Name $moduleName -Scope AllUsers -SkipPublisherCheck -Force
}

View File

@@ -50,7 +50,6 @@ $toolset = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
$tools = ConvertFrom-Json -InputObject $toolset | Select-Object -ExpandProperty toolcache $tools = ConvertFrom-Json -InputObject $toolset | Select-Object -ExpandProperty toolcache
foreach($tool in $tools) { foreach($tool in $tools) {
Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItem '$($tool.name):'`""
$toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name $toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name
# Get executables for current tool # Get executables for current tool
@@ -85,8 +84,5 @@ foreach($tool in $tools) {
$pypyVersion = & "$foundVersionPath/bin/python" -c "import sys;print(sys.version.split('\n')[1])" $pypyVersion = & "$foundVersionPath/bin/python" -c "import sys;print(sys.version.split('\n')[1])"
$foundVersionName = "{0} {1}" -f $foundVersionName, $pypyVersion $foundVersionName = "{0} {1}" -f $foundVersionName, $pypyVersion
} }
# Add tool version to documentation
Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItemIndent '$($tool.name) $foundVersionName'`""
} }
} }

View File

@@ -4,8 +4,6 @@
## Desc: Installs Alibaba Cloud CLI ## Desc: Installs Alibaba Cloud CLI
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Alibaba Cloud CLI # Install Alibaba Cloud CLI
URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))') URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))')
@@ -19,8 +17,3 @@ if ! command -v aliyun ; then
echo "aliyun was not installed" echo "aliyun was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
aliyun_version="$(aliyun version)"
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Alibaba Cloud CLI ($aliyun_version)"

View File

@@ -7,7 +7,6 @@
set -e set -e
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables) # Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
@@ -62,34 +61,3 @@ buildtools_versions_list=$(echo "$buildtools"|awk -F';' '{print $2}')
# Add required permissions # Add required permissions
chmod -R a+rwx ${ANDROID_SDK_ROOT} chmod -R a+rwx ${ANDROID_SDK_ROOT}
echo "Lastly, document what was added to the metadata file"
DocumentInstalledItem "Google Repository $(cat ${ANDROID_SDK_ROOT}/extras/google/m2repository/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
DocumentInstalledItem "Google Play services $(cat ${ANDROID_SDK_ROOT}/extras/google/google_play_services/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
for version in $google_api_versions_list; do
DocumentInstalledItem "Google APIs $version"
done
DocumentInstalledItem "CMake $(ls ${ANDROID_SDK_ROOT}/cmake 2>&1)"
for version in $constraint_layout_versions_list; do
DocumentInstalledItem "Android ConstraintLayout $version"
done
for version in $constraint_layout_solver_versions_list; do
DocumentInstalledItem "Android ConstraintLayout Solver $version"
done
DocumentInstalledItem "Android SDK Platform-Tools $(cat ${ANDROID_SDK_ROOT}/platform-tools/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
for version in $platform_versions_list; do
DocumentInstalledItem "Android SDK Platform $version"
done
DocumentInstalledItem "Android SDK Patch Applier v4"
for version in $buildtools_versions_list; do
DocumentInstalledItem "Android SDK Build-Tools $version"
done
DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# ppa:ansible/ansible doesn't contain packages for Ubuntu20.04 # ppa:ansible/ansible doesn't contain packages for Ubuntu20.04
@@ -23,7 +22,3 @@ if ! command -v ansible; then
echo "Ansible was not installed or found on PATH" echo "Ansible was not installed or found on PATH"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Ansible ($(ansible --version |& head -n 1))"

View File

@@ -5,8 +5,6 @@
## Requires Python >=3.6, must be run as non-root user after toolset installation ## Requires Python >=3.6, must be run as non-root user after toolset installation
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Download latest aws sam cli sources # Download latest aws sam cli sources
TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url') TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url')
@@ -31,7 +29,3 @@ if ! sam --version; then
echo "AWS SAM CLI was not installed" echo "AWS SAM CLI was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "AWS $(sam --version)"

View File

@@ -4,8 +4,6 @@
## Desc: Installs the AWS CLI ## Desc: Installs the AWS CLI
################################################################################ ################################################################################
# Source the helpers
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Install the AWS CLI v1 on Ubuntu16 and Ubuntu18, and AWS CLI v2 on Ubuntu20 # Install the AWS CLI v1 on Ubuntu16 and Ubuntu18, and AWS CLI v2 on Ubuntu20
@@ -41,8 +39,3 @@ if ! [[ $sessionPlugin == *"was installed successfully"* ]]
then then
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "AWS CLI ($(aws --version 2>&1))"
DocumentInstalledItem "AWS CLI Session manager plugin ($(session-manager-plugin --version 2>&1))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs AzCopy ## Desc: Installs AzCopy
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install AzCopy7 # Install AzCopy7
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64 wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
@@ -17,6 +15,7 @@ rm azcopy.tar.gz
wget -O /tmp/azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux wget -O /tmp/azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux
tar zxvf /tmp/azcopy.tar.gz --strip-components=1 -C /tmp tar zxvf /tmp/azcopy.tar.gz --strip-components=1 -C /tmp
mv /tmp/azcopy /usr/local/bin/azcopy10 mv /tmp/azcopy /usr/local/bin/azcopy10
chmod +x /usr/local/bin/azcopy10
# Run tests to determine that the software installed as expected # Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work" echo "Testing to make sure that script performed as expected, and basic scenarios work"
@@ -29,10 +28,3 @@ if ! command -v azcopy10; then
echo "azcopy10 was not installed" echo "azcopy10 was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
azcopy7Version=$(azcopy --version | awk '{print $2}' | cut -d '-' -f 1)
azcopy10Version=$(azcopy10 --version | awk '{print $3}')
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "AzCopy7 (available by azcopy alias) $azcopy7Version"
DocumentInstalledItem "AzCopy10 (available by azcopy10 alias) $azcopy10Version"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# List of versions # List of versions
@@ -36,9 +35,3 @@ for version in ${versions[@]}; do
exit 1 exit 1
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
for version in ${versions[@]}; do
DocumentInstalledItem "Az Module ($version)"
done

View File

@@ -4,8 +4,6 @@
## Desc: Installed Azure CLI (az) ## Desc: Installed Azure CLI (az)
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
@@ -16,6 +14,3 @@ if ! command -v az; then
echo "azure-cli was not installed" echo "azure-cli was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
DocumentInstalledItem "Azure CLI ($(az -v | head -n 1))"

View File

@@ -4,8 +4,6 @@
## Desc: Installed Azure DevOps CLI (az devops) ## Desc: Installed Azure DevOps CLI (az devops)
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# AZURE_EXTENSION_DIR shell variable defines where modules are installed # AZURE_EXTENSION_DIR shell variable defines where modules are installed
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview # https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
@@ -23,6 +21,3 @@ else
echo "azure DevOps Cli extension was not installed" echo "azure DevOps Cli extension was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
DocumentInstalledItem "Azure CLI ($(az -v | grep azure-devops))"

View File

@@ -5,8 +5,6 @@
################################################################################ ################################################################################
set -e set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json" toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
common_packages=$(jq -r ".apt.common_packages[]" $toolset) common_packages=$(jq -r ".apt.common_packages[]" $toolset)
@@ -24,10 +22,3 @@ for cmd in $cmd_packages; do
exit 1 exit 1
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Basic packages:"
for package in $common_packages $cmd_packages; do
DocumentInstalledItemIndent $package
done

View File

@@ -4,8 +4,6 @@
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel) ## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install bazel # Install bazel
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
@@ -27,10 +25,3 @@ if ! command -v bazelisk; then
echo "Bazelisk was not installed" echo "Bazelisk was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
bazelisk_version="$(bazelisk version 2>null | grep "Bazelisk version:" | cut -d "v" -f 3)"
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Bazel ($(bazel --version))"
DocumentInstalledItem "Bazelisk ($bazelisk_version)"

View File

@@ -4,8 +4,7 @@
## Desc: Installs build-essential package ## Desc: Installs build-essential package
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
PACKAGE=build-essential PACKAGE=build-essential
@@ -18,7 +17,3 @@ if ! IsPackageInstalled $PACKAGE; then
else else
echo "$PACKAGE is already installed" echo "$PACKAGE is already installed"
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "$PACKAGE"

View File

@@ -1,17 +1,18 @@
#!/bin/bash #!/bin/bash
################################################################################ ################################################################################
## File: clang.sh ## File: clang.sh
## Desc: Installs Clang compiler (versions: 6, 8 and 9) ## Desc: Installs Clang compiler
################################################################################ ################################################################################
set -e
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/os.sh
function InstallClang { function InstallClang {
version=$1 local version=$1
echo "Installing clang-$version..." echo "Installing clang-$version..."
if [[ $version =~ 9 ]]; then if [[ $version =~ (9|10) ]]; then
./llvm.sh $version ./llvm.sh $version
apt-get install -y "clang-format-$version" apt-get install -y "clang-format-$version"
else else
@@ -26,30 +27,34 @@ function InstallClang {
exit 1 exit 1
fi fi
done done
}
# Document what was added to the image function SetDefaultClang {
echo "Documenting clang-$version..." local version=$1
DocumentInstalledItem "Clang $version ($(clang-$version --version | head -n 1 | cut -d ' ' -f 3 | cut -d '-' -f 1))"
echo "Make Clang ${version} default"
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${version} 100
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${version} 100
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${version} 100
} }
# Download script for automatic installation # Download script for automatic installation
wget https://apt.llvm.org/llvm.sh wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh chmod +x llvm.sh
versions=( if isUbuntu16 || isUbuntu18; then
"6.0" versions=( "6.0" "8" "9" )
"8" default_clang_version="9"
"9" fi
)
for version in ${versions[*]} if isUbuntu20 ; then
do versions=( "8" "9" "10" )
default_clang_version="10"
fi
for version in ${versions[*]}; do
InstallClang $version InstallClang $version
done done
SetDefaultClang $default_clang_version
rm llvm.sh rm llvm.sh
# Make Clang 9 default
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-9 100
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-9 100
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-9 100

View File

@@ -4,8 +4,6 @@
## Desc: Installs CMake ## Desc: Installs CMake
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Test to see if the software in question is already installed, if not install it # Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run" echo "Checking to see if the installer script has already been run"
@@ -24,7 +22,3 @@ if ! command -v cmake; then
echo "cmake was not installed" echo "cmake was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "CMake ($(cmake --version | head -n 1))"

View File

@@ -4,7 +4,6 @@
## Desc: Installs container tools: podman, buildah and skopeo onto the image ## Desc: Installs container tools: podman, buildah and skopeo onto the image
################################################################################ ################################################################################
source $HELPER_SCRIPTS/document.sh
source /etc/os-release source /etc/os-release
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
@@ -14,12 +13,3 @@ apt-get update -qq
apt-get -qq -y install podman buildah skopeo apt-get -qq -y install podman buildah skopeo
mkdir -p /etc/containers mkdir -p /etc/containers
echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/containers/registries.conf echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/containers/registries.conf
## Add version information to the metadata file
echo "Documenting container tools version"
PODMAN_VERSION="$(podman --version | cut -d " " -f 3)"
BUILDAH_VERSION="$(buildah --version | cut -d " " -f 3)"
SKOPEO_VERSION="$(skopeo --version | cut -d " " -f 3)"
DocumentInstalledItem "Podman ($PODMAN_VERSION)"
DocumentInstalledItem "Buildah ($BUILDAH_VERSION)"
DocumentInstalledItem "Skopeo ($SKOPEO_VERSION)"

View File

@@ -4,7 +4,6 @@
## Desc: Installs Docker Compose ## Desc: Installs Docker Compose
################################################################################ ################################################################################
source $HELPER_SCRIPTS/document.sh
URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1) URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1)
@@ -18,8 +17,3 @@ if ! command -v docker-compose; then
echo "docker-compose was not installed" echo "docker-compose was not installed"
exit 1 exit 1
fi fi
## Add version information to the metadata file
echo "Documenting Docker Compose version"
docker_compose_version=$(docker-compose -v)
DocumentInstalledItem "Docker Compose (${docker_compose_version})"

View File

@@ -6,7 +6,6 @@
set -e set -e
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
@@ -54,18 +53,3 @@ images=$(jq -r '.docker.images[]' $toolset)
for image in $images; do for image in $images; do
docker pull "$image" docker pull "$image"
done done
# Add version information to the metadata file
echo "Documenting Docker version"
docker_version=$(docker -v)
DocumentInstalledItem "Docker-Moby ($docker_version)"
echo "Documenting Docker-buildx version"
DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2)
DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)"
# Add container information to the metadata file
DocumentInstalledItem "Cached container images"
while read -r line; do
DocumentInstalledItemIndent "$line"
done <<< "$(docker images --digests --format '{{.Repository}}:{{.Tag}} (Digest: {{.Digest}})')"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
@@ -84,7 +83,6 @@ for tarball in *.tar.gz; do
done done
rm urls rm urls
DocumentInstalledItem ".NET Core SDK:"
# Smoke test each SDK # Smoke test each SDK
for sdk in $sortedSdks; do for sdk in $sortedSdks; do
mksamples "$sdk" "console" mksamples "$sdk" "console"
@@ -93,7 +91,6 @@ for sdk in $sortedSdks; do
mksamples "$sdk" "web" mksamples "$sdk" "web"
mksamples "$sdk" "mvc" mksamples "$sdk" "mvc"
mksamples "$sdk" "webapi" mksamples "$sdk" "webapi"
DocumentInstalledItemIndent "$sdk"
done done
# NuGetFallbackFolder at /usr/share/dotnet/sdk/NuGetFallbackFolder is warmed up by smoke test # NuGetFallbackFolder at /usr/share/dotnet/sdk/NuGetFallbackFolder is warmed up by smoke test

View File

@@ -4,8 +4,6 @@
## Desc: Installs erlang ## Desc: Installs erlang
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source_list=/etc/apt/sources.list.d/eslerlang.list source_list=/etc/apt/sources.list.d/eslerlang.list
@@ -29,10 +27,5 @@ for cmd in erl erlc rebar3; do
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
erlang_version="$(erl -version 2>&1 | tr -d '\n' | tr -d '\r')"
DocumentInstalledItem "Erlang ($erlang_version)"
# Clean up source list # Clean up source list
rm $source_list rm $source_list

View File

@@ -5,8 +5,6 @@
## installer to the image ## installer to the image
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Test to see if the software in question is already installed, if not install it # Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run" echo "Checking to see if the installer script has already been run"
@@ -24,7 +22,3 @@ if [ -z $EXAMPLE_VAR ]; then
else else
echo "EXAMPLE_VAR was set properly" echo "EXAMPLE_VAR was set properly"
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Example Var ($EXAMPLE_VAR)"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Firefox ## Desc: Installs Firefox
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Firefox # Install Firefox
apt-get install -y firefox apt-get install -y firefox
@@ -20,13 +18,6 @@ fi
# Default firefox local is en_GB # Default firefox local is en_GB
echo 'pref("intl.locale.requested","en_US");' >> "/usr/lib/firefox/browser/defaults/preferences/syspref.js" echo 'pref("intl.locale.requested","en_US");' >> "/usr/lib/firefox/browser/defaults/preferences/syspref.js"
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
# Resolves: Running Firefox as root in a regular user's session is not supported.
# ($HOME is /home/packer which is owned by packer.)
HOME=/root
DocumentInstalledItem "Firefox ($(firefox --version))"
# Download and unpack latest release of geckodriver # Download and unpack latest release of geckodriver
URL=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r '.assets[].browser_download_url | select(test("linux64.tar.gz$"))') URL=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r '.assets[].browser_download_url | select(test("linux64.tar.gz$"))')
echo "Downloading geckodriver $URL" echo "Downloading geckodriver $URL"
@@ -50,7 +41,3 @@ if ! command -v geckodriver; then
echo "geckodriver was not installed" echo "geckodriver was not installed"
exit 1 exit 1
fi fi
echo "Lastly, documenting what we added to the metadata file"
ver=`geckodriver --version | head -1 |awk '{print $2}'`
DocumentInstalledItem "Geckodriver (${ver}); Gecko Driver is available via GECKOWEBDRIVER environment variable"

View File

@@ -4,8 +4,6 @@
## Desc: Installs GNU C++ ## Desc: Installs GNU C++
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
function InstallGcc { function InstallGcc {
version=$1 version=$1
@@ -19,10 +17,6 @@ function InstallGcc {
echo "$version was not installed" echo "$version was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Documenting $version..."
DocumentInstalledItem "GNU C++ $($version --version | head -n 1 | cut -d ' ' -f 4)"
} }
# Install GNU C++ compiler # Install GNU C++ compiler

View File

@@ -4,8 +4,6 @@
## Desc: Installs GNU Fortran ## Desc: Installs GNU Fortran
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
function InstallFortran { function InstallFortran {
version=$1 version=$1
@@ -19,10 +17,6 @@ function InstallFortran {
echo "$version was not installed" echo "$version was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Documenting $version..."
DocumentInstalledItem "GNU Fortran $($version --version | head -n 1 | cut -d ' ' -f 5)"
} }
# Install GNU Fortran compiler # Install GNU Fortran compiler

View File

@@ -6,7 +6,6 @@
set -e set -e
# Source the helpers for use with the script # Source the helpers for use with the script
source "$HELPER_SCRIPTS"/document.sh
source "$HELPER_SCRIPTS"/install.sh source "$HELPER_SCRIPTS"/install.sh
## Install git ## Install git
@@ -39,14 +38,6 @@ if ! command -v git-ftp; then
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, document the installed versions"
# git version 2.20.1
DocumentInstalledItem "Git ($(git --version 2>&1 | cut -d ' ' -f 3))"
# git-lfs/2.6.1 (GitHub; linux amd64; go 1.11.1)
DocumentInstalledItem "Git Large File Storage (LFS) ($(git-lfs --version 2>&1 | cut -d ' ' -f 1 | cut -d '/' -f 2))"
DocumentInstalledItem "Git-ftp ($(git-ftp --version | cut -d ' ' -f 3))"
#Install hub #Install hub
tmp_hub="/tmp/hub" tmp_hub="/tmp/hub"
mkdir -p "$tmp_hub" mkdir -p "$tmp_hub"
@@ -57,7 +48,6 @@ mv "$tmp_hub"/bin/hub /usr/local/bin
if command -v hub; then if command -v hub; then
echo "hub CLI was installed successfully" echo "hub CLI was installed successfully"
DocumentInstalledItem "Hub CLI ($(hub --version | grep "hub version" | cut -d ' ' -f 3))"
else else
echo "[!] Hub CLI was not installed" echo "[!] Hub CLI was not installed"
exit 1 exit 1

View File

@@ -5,8 +5,6 @@
## Must be run as non-root user after homebrew ## Must be run as non-root user after homebrew
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install GitHub CLI # Install GitHub CLI
url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))') url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))')
@@ -20,7 +18,3 @@ if ! gh --version; then
echo "GitHub CLI was not installed" echo "GitHub CLI was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "GitHub CLI $(gh --version|awk 'FNR==1 {print $3}')"

View File

@@ -4,8 +4,6 @@
## Desc: Installs google-chrome and chromedriver ## Desc: Installs google-chrome and chromedriver
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
LSB_RELEASE=$(lsb_release -rs) LSB_RELEASE=$(lsb_release -rs)
@@ -22,10 +20,6 @@ if ! command -v google-chrome; then
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Google Chrome ($(google-chrome --version))"
CHROME_VERSION=$(google-chrome --product-version) CHROME_VERSION=$(google-chrome --product-version)
CHROME_VERSION=${CHROME_VERSION%.*} CHROME_VERSION=${CHROME_VERSION%.*}
@@ -54,6 +48,3 @@ if ! command -v chromedriver; then
echo "chromedriver was not installed" echo "chromedriver was not installed"
exit 1 exit 1
fi fi
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "$(chromedriver --version); Chrome Driver is available via CHROMEWEBDRIVER environment variable"

View File

@@ -4,8 +4,6 @@
## Desc: Installs the Google Cloud SDK ## Desc: Installs the Google Cloud SDK
################################################################################ ################################################################################
# Source the helpers
source $HELPER_SCRIPTS/document.sh
# Install the Google Cloud SDK # Install the Google Cloud SDK
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
@@ -19,7 +17,3 @@ if ! command -v gcloud; then
echo "gcloud was not installed" echo "gcloud was not installed"
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "Google Cloud SDK ($(gcloud --version | head -n 1 | cut -d ' ' -f 4))"

View File

@@ -6,7 +6,6 @@
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/document.sh
# Install Herbert V. Riedel's PPA for managing multiple version of ghc on ubuntu. # Install Herbert V. Riedel's PPA for managing multiple version of ghc on ubuntu.
# https://launchpad.net/~hvr/+archive/ubuntu/ghc # https://launchpad.net/~hvr/+archive/ubuntu/ghc
@@ -58,9 +57,3 @@ fi
# Create symlink for ghc and cabal in /usr/bin # Create symlink for ghc and cabal in /usr/bin
ln -s "/opt/ghc/$defaultGHCVersion/bin/ghc" "/usr/bin/ghc" ln -s "/opt/ghc/$defaultGHCVersion/bin/ghc" "/usr/bin/ghc"
ln -s "/opt/cabal/$cabalVersion/bin/cabal" "/usr/bin/cabal" ln -s "/opt/cabal/$cabalVersion/bin/cabal" "/usr/bin/cabal"
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Haskell Cabal ($(cabal --version))"
DocumentInstalledItem "GHC ($(ghc --version))"
DocumentInstalledItem "Haskell Stack ($(stack --version))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Heroku CLI ## Desc: Installs Heroku CLI
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Heroku CLI # Install Heroku CLI
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
@@ -15,7 +13,3 @@ echo "Testing to make sure that script performed as expected, and basic scenario
if ! command -v heroku; then if ! command -v heroku; then
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Heroku ($(heroku version))"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
hhvm_package=hhvm hhvm_package=hhvm
@@ -31,7 +30,3 @@ fi
if ! command -v hhvm; then if ! command -v hhvm; then
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "HHVM ($(hhvm --version | head -n 1))"

View File

@@ -6,7 +6,6 @@
################################################################################ ################################################################################
# Source the helpers # Source the helpers
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/etc-environment.sh
# Install the Homebrew on Linux # Install the Homebrew on Linux
@@ -31,7 +30,3 @@ if ! command -v brew; then
echo "brew was not installed" echo "brew was not installed"
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "Homebrew on Linux ($(brew -v 2>&1))"

View File

@@ -4,8 +4,6 @@
## Desc: Downloads and installs hosted tools cache ## Desc: Downloads and installs hosted tools cache
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Fail out if any setups fail # Fail out if any setups fail
set -e set -e
@@ -43,9 +41,3 @@ for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do
done; done;
popd popd
DocumentInstalledItem "Ruby:"
rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
for ruby in $rubys; do
DocumentInstalledItemIndent "Ruby $ruby"
done;

View File

@@ -4,8 +4,6 @@
## Desc: Installs ImageMagick ## Desc: Installs ImageMagick
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install ImageMagick # Install ImageMagick
apt-get install -y --no-install-recommends --fix-missing \ apt-get install -y --no-install-recommends --fix-missing \
@@ -13,7 +11,3 @@ apt-get install -y --no-install-recommends --fix-missing \
libmagickcore-dev \ libmagickcore-dev \
libmagickwand-dev \ libmagickwand-dev \
libmagic-dev libmagic-dev
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "ImageMagick"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Java and related tooling (Ant, Gradle, Maven) ## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
set -e set -e
@@ -103,19 +101,3 @@ javaVersion=$(java -version |& head -n 1 | cut -d\" -f 2)
javaTool "Java" $javaVersion javaTool "Java" $javaVersion
javacVersion=$(javac -version |& cut -d" " -f2) javacVersion=$(javac -version |& cut -d" " -f2)
javaTool "Javac" $javacVersion javaTool "Javac" $javacVersion
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
if isUbuntu16 || isUbuntu18 ; then
DocumentInstalledItem "Azul Zulu OpenJDK:"
DocumentInstalledItemIndent "7 ($(/usr/lib/jvm/zulu-7-azure-amd64/bin/java -showversion |& head -n 1))"
fi
DocumentInstalledItem "Adopt OpenJDK:"
DocumentInstalledItemIndent "8 ($(/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java -showversion |& head -n 1)) $defaultLabel8"
DocumentInstalledItemIndent "11 ($(/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/java -showversion |& head -n 1)) $defaultLabel11"
if isUbuntu16 || isUbuntu18 ; then
DocumentInstalledItemIndent "12 ($(/usr/lib/jvm/adoptopenjdk-12-hotspot-amd64/bin/java -showversion |& head -n 1))"
fi
DocumentInstalledItem "Ant ($(ant -version))"
DocumentInstalledItem "Gradle ${gradleVersion}"
DocumentInstalledItem "Maven ($(mvn -version | head -n 1))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Julia, and adds Julia to the path ## Desc: Installs Julia, and adds Julia to the path
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# This function fetches the latest Julia release from the GitHub API # This function fetches the latest Julia release from the GitHub API
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c # Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
@@ -54,10 +52,6 @@ function InstallJulia () {
echo "Julia was not installed correctly" echo "Julia was not installed correctly"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Julia ($(julia --version))"
} }
InstallJulia "$(GetLatestJuliaRelease)" true InstallJulia "$(GetLatestJuliaRelease)" true

View File

@@ -4,8 +4,6 @@
## Desc: Installs kind ## Desc: Installs kind
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install KIND # Install KIND
URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))') URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))')
@@ -18,7 +16,3 @@ if ! command -v kind; then
echo "Kind was not installed or found on PATH" echo "Kind was not installed or found on PATH"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Kind ($(kind version))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs kubectl, helm, kustomize ## Desc: Installs kubectl, helm, kustomize
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
## Install kubectl ## Install kubectl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
@@ -52,12 +50,3 @@ if ! command -v kustomize; then
echo "kustomize was not installed" echo "kustomize was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "kubectl ($(kubectl version --client --short |& head -n 1))"
DocumentInstalledItem "helm ($(helm version --short |& head -n 1))"
# minikube version output already has word minikube in it. example minikube version: v1.9.2
DocumentInstalledItem "$(minikube version --short)"
# kustomize version output has "{} in it". example {kustomize/v3.8.1 2020-07-16T00:58:46Z }
DocumentInstalledItem "kustomize ($(kustomize version --short))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Leiningen ## Desc: Installs Leiningen
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
set -e set -e
@@ -29,7 +27,3 @@ if ! command -v lein; then
else else
lein new app testapp && rm -rf testapp lein new app testapp && rm -rf testapp
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Leiningen ($(lein -v))"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
if isUbuntu16 ; then if isUbuntu16 ; then
@@ -22,7 +21,3 @@ echo "Testing to make sure that script performed as expected, and basic scenario
if ! command -v hg; then if ! command -v hg; then
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Mercurial ($(hg --version | head -n 1))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs miniconda ## Desc: Installs miniconda
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Miniconda # Install Miniconda
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \ curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
@@ -17,7 +15,3 @@ CONDA=/usr/share/miniconda
echo "CONDA=$CONDA" | tee -a /etc/environment echo "CONDA=$CONDA" | tee -a /etc/environment
ln -s $CONDA/bin/conda /usr/bin/conda ln -s $CONDA/bin/conda /usr/bin/conda
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Miniconda ($($CONDA/bin/conda --version))"

View File

@@ -6,7 +6,6 @@
# Source the helpers # Source the helpers
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/document.sh
# Install Mongo DB # Install Mongo DB
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
@@ -21,7 +20,3 @@ if ! command -v mongod; then
echo "mongodb was not installed" echo "mongodb was not installed"
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "MongoDB on Linux $(mongod --version | awk 'NR==1{print $3}')"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Mono ## Desc: Installs Mono
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
LSB_CODENAME=$(lsb_release -cs) LSB_CODENAME=$(lsb_release -cs)
@@ -27,8 +25,3 @@ if ! command -v nuget; then
echo "nuget was not installed" echo "nuget was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Mono ($(mono --version | head -n 1))"
DocumentInstalledItem "NuGet ($(nuget | tail -n +1 | head -n 1))" # Pipe to tail before piping to head because NuGet prints an ugly error if you close its stream before it's done writing.

View File

@@ -4,8 +4,6 @@
## Desc: Installs MySQL Client ## Desc: Installs MySQL Client
################################################################################ ################################################################################
## Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
export ACCEPT_EULA=Y export ACCEPT_EULA=Y
@@ -51,13 +49,6 @@ mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
set +e set +e
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "MySQL ($(mysql --version))"
DocumentInstalledItem "MySQL Server (user:root password:root)"
DocumentInstalledItem "MS SQL Server Client Tools"
DocumentInstalledItem "MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'"
# Disable mysql.service # Disable mysql.service
systemctl is-active --quiet mysql.service && systemctl stop mysql.service systemctl is-active --quiet mysql.service && systemctl stop mysql.service
systemctl disable mysql.service systemctl disable mysql.service

View File

@@ -4,8 +4,6 @@
## Desc: Installs the Netlify CLI ## Desc: Installs the Netlify CLI
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install the Netlify CLI # Install the Netlify CLI
npm i -g netlify-cli npm i -g netlify-cli
@@ -16,7 +14,3 @@ if ! command -v netlify; then
echo "Netlify CLI was not installed" echo "Netlify CLI was not installed"
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "Netlify CLI ($(netlify --version))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt) ## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install LTS Node.js and related build tools # Install LTS Node.js and related build tools
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny - curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
@@ -31,16 +29,3 @@ for cmd in node grunt gulp webpack parcel yarn newman; do
exit 1 exit 1
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Node.js ($(node --version))"
DocumentInstalledItem "Grunt ($(grunt --version))"
DocumentInstalledItem "Gulp ($(gulp --version))"
DocumentInstalledItem "n ($(n --version))"
DocumentInstalledItem "Parcel ($(parcel --version))"
DocumentInstalledItem "TypeScript ($(tsc --version))"
DocumentInstalledItem "Webpack ($(webpack --version))"
DocumentInstalledItem "Webpack CLI ($(webpack-cli --version))"
DocumentInstalledItem "Yarn ($(yarn --version))"
DocumentInstalledItem "Newman ($(newman --version))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Nvm ## Desc: Installs Nvm
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
export NVM_DIR="/etc/skel/.nvm" export NVM_DIR="/etc/skel/.nvm"
mkdir $NVM_DIR mkdir $NVM_DIR
@@ -21,5 +19,3 @@ fi
# set system node.js as default one # set system node.js as default one
nvm alias default system nvm alias default system
DocumentInstalledItem "nvm ($(nvm --version))"

View File

@@ -4,8 +4,7 @@
## Desc: Installs the OC CLI ## Desc: Installs the OC CLI
################################################################################ ################################################################################
# Source the helpers
source $HELPER_SCRIPTS/document.sh
# Install the oc CLI # Install the oc CLI
curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz
tar xvzf oc.tar.gz tar xvzf oc.tar.gz
@@ -18,7 +17,3 @@ if ! command -v oc; then
echo "oc was not installed" echo "oc was not installed"
exit 1 exit 1
fi fi
# Document the installed version
echo "Document the installed version"
DocumentInstalledItem "oc CLI $(oc version)"

View File

@@ -4,8 +4,6 @@
## Desc: Installs ORAS CLI ## Desc: Installs ORAS CLI
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
# Determine latest ORAS CLI version # Determine latest ORAS CLI version
@@ -24,7 +22,3 @@ if ! oras version; then
echo "ORAS CLI was not installed" echo "ORAS CLI was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "ORAS CLI $(oras version | awk 'NR==1{print $2}')"

View File

@@ -3,8 +3,7 @@
## File: packer.sh ## File: packer.sh
## Desc: Installs packer ## Desc: Installs packer
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Packer # Install Packer
PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version) PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version)
@@ -18,7 +17,3 @@ if ! command -v packer; then
echo "Packer was not installed or found on PATH" echo "Packer was not installed or found on PATH"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Packer ($(packer --version))"

View File

@@ -6,9 +6,6 @@
set -e set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install PhantomJS # Install PhantomJS
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64 PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
@@ -23,7 +20,3 @@ if ! command -v phantomjs; then
echo "phantomjs was not installed" echo "phantomjs was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "PhantomJS ($(phantomjs --version))"

View File

@@ -6,7 +6,6 @@
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
set -e set -e
@@ -127,24 +126,9 @@ for cmd in php $php_versions composer phpunit; do
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
for version in $php_versions; do
DocumentInstalledItem "PHP $version ($(php$version --version | head -n 1))"
done
# ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php # ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php
# see https://github.com/actions/virtual-environments/issues/1084 # see https://github.com/actions/virtual-environments/issues/1084
if isUbuntu20 ; then if isUbuntu20 ; then
rm /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list rm /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list
apt-get update apt-get update
AddBlockquote "To use ppa:ondrej/php APT repository On Ubuntu 20.04 it is necessary to add it to the APT sources"
StartCode
WriteItem "apt-add-repository ppa:ondrej/php -y"
WriteItem "apt-get update"
EndCode
fi fi
DocumentInstalledItem "Composer ($(composer --version))"
DocumentInstalledItem "PHPUnit ($(phpunit --version))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Pollinate ## Desc: Installs Pollinate
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Pollinate # Install Pollinate
apt-get install -y --no-install-recommends pollinate apt-get install -y --no-install-recommends pollinate
@@ -16,7 +14,3 @@ if ! command -v pollinate; then
echo "pollinate was not installed" echo "pollinate was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Pollinate"

View File

@@ -4,8 +4,6 @@
## Desc: Installs Postgresql ## Desc: Installs Postgresql
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
#Preparing repo for PostgreSQL 12. #Preparing repo for PostgreSQL 12.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
@@ -25,8 +23,6 @@ apt-get install libpq-dev
# connection timeout - 2 # connection timeout - 2
pg_isready pg_isready
DocumentInstalledItem "$(psql -V 2>&1 | cut -d ' ' -f 1,2,3)"
# Disable postgresql.service # Disable postgresql.service
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
systemctl disable postgresql.service systemctl disable postgresql.service

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Install Powershell # Install Powershell
@@ -27,7 +26,3 @@ if ! pwsh -c 'Write-Host Hello world'; then
echo "pwsh failed to run" echo "pwsh failed to run"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Powershell ($(pwsh --version))"

View File

@@ -1,20 +0,0 @@
#!/bin/bash
################################################################################
## File: preparemetadata.sh
## Desc: This script adds a image title information to the metadata
## document
################################################################################
source $HELPER_SCRIPTS/document.sh
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
if [ -n "$ANNOUNCEMENTS" ]; then
WriteItem "$ANNOUNCEMENTS"
WriteItem "***"
fi
AddTitle "$(lsb_release -ds)"
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
WriteItem "***"

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
# Install Pulumi # Install Pulumi
@@ -20,7 +19,3 @@ if ! command -v pulumi ; then
echo "Pulumi was not installed" echo "Pulumi was not installed"
exit 1 exit 1
fi fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Pulumi $(pulumi version)"

View File

@@ -4,8 +4,6 @@
## Desc: Installs PyPy ## Desc: Installs PyPy
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/install.sh
# This function installs PyPy using the specified arguments: # This function installs PyPy using the specified arguments:

View File

@@ -5,7 +5,6 @@
################################################################################ ################################################################################
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Install Python, Python 3, pip, pip3 # Install Python, Python 3, pip, pip3
@@ -28,10 +27,3 @@ for cmd in python pip python3 pip3; do
exit 1 exit 1
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Python ($(python --version 2>&1))"
DocumentInstalledItem "pip ($(pip --version))"
DocumentInstalledItem "Python3 ($(python3 --version))"
DocumentInstalledItem "pip3 ($(pip3 --version))"

View File

@@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# install R # install R
@@ -13,5 +12,3 @@ sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $osLab
sudo apt update sudo apt update
sudo apt install r-base sudo apt install r-base
version=$(R --version | grep "R version" | cut -d " " -f 3) version=$(R --version | grep "R version" | cut -d " " -f 3)
DocumentInstalledItem "R $version"

View File

@@ -4,8 +4,6 @@
## Desc: Install random number generator ## Desc: Install random number generator
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install haveged # Install haveged
apt-get -y install haveged apt-get -y install haveged
@@ -18,7 +16,3 @@ for cmd in haveged; do
exit 1 exit 1
fi fi
done done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Haveged $(dpkg-query --showformat='${Version}' --show haveged)"

View File

@@ -4,16 +4,9 @@
## Desc: Installs Ruby requirements ## Desc: Installs Ruby requirements
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
sudo apt-get install ruby-full sudo apt-get install ruby-full
sudo gem update --system sudo gem update --system
# Install Ruby requirements # Install Ruby requirements
apt-get install -y libz-dev openssl libssl-dev apt-get install -y libz-dev openssl libssl-dev
DocumentInstalledItem "ruby ($(ruby --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "gem ($(gem -v 2>&1 | tail -n 1))"
DocumentInstalledItem "$(openssl version)"
DocumentInstalledItem "Libssl $(dpkg -l libssl-dev | grep '^ii' | awk '{print $3}')"

View File

@@ -6,7 +6,6 @@
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/document.sh
export RUSTUP_HOME=/usr/share/rust/.rustup export RUSTUP_HOME=/usr/share/rust/.rustup
export CARGO_HOME=/usr/share/rust/.cargo export CARGO_HOME=/usr/share/rust/.cargo
@@ -45,16 +44,3 @@ pushd /etc/skel
ln -sf $RUSTUP_HOME .rustup ln -sf $RUSTUP_HOME .rustup
ln -sf $CARGO_HOME .cargo ln -sf $CARGO_HOME .cargo
popd popd
# Document what was added to the image
echo "Lastly, document what was added to the metadata file"
DocumentInstalledItem "rustup ($(rustup --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "rust ($(rustc --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "cargo ($(cargo --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "rustfmt ($(rustfmt --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "clippy ($(cargo-clippy --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "rustdoc ($(rustdoc --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "bindgen ($(bindgen --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "cbindgen ($(cbindgen --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "cargo audit ($(cargo audit --version 2>&1 | cut -d ' ' -f 2))"
DocumentInstalledItem "cargo outdated ($(cargo outdated --version 2>&1 | cut -d ' ' -f 2))"

View File

@@ -4,8 +4,6 @@
## Desc: Installs sbt ## Desc: Installs sbt
################################################################################ ################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install sbt # Install sbt
# https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html # https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
@@ -13,7 +11,3 @@ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.li
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add
apt-get -q update apt-get -q update
apt-get -y install sbt apt-get -y install sbt
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "sbt ($(sbt --script-version))"

Some files were not shown because too many files have changed in this diff Show More