mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-16 14:56:48 +00:00
Merge main into install-codeql-bundle.
This commit is contained in:
17
.github/ISSUE_TEMPLATE/bug-report.md
vendored
17
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -2,21 +2,21 @@
|
|||||||
name: Bug report
|
name: Bug report
|
||||||
about: Submit a bug report
|
about: Submit a bug report
|
||||||
title: ''
|
title: ''
|
||||||
labels: t:Bug report
|
labels: needs triage
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Describe the bug**
|
**Description**
|
||||||
A clear and concise description of what the bug is, and why you consider it to be a bug.
|
A clear and concise description of what the bug is, and why you consider it to be a bug.
|
||||||
|
|
||||||
**Area for Triage**:
|
**Area for Triage**:
|
||||||
<!-- See https://github.com/actions/virtual-environments/tree/main/triage-rules.yml for areas -->
|
<!-- See https://github.com/actions/virtual-environments/tree/main/triage-rules.yml for areas -->
|
||||||
|
|
||||||
**Question, Bug, or Feature?**:
|
**Question, Bug, or Feature?**:
|
||||||
<!-- Choose "Question", "Bug", or "Feature" -->
|
<!-- Choose "Question", "Bug", or "Feature" -->
|
||||||
|
|
||||||
**Virtual environments affected**
|
**Virtual environments affected**
|
||||||
- [ ] macOS 10.15
|
- [ ] macOS 10.15
|
||||||
- [ ] Ubuntu 16.04 LTS
|
- [ ] Ubuntu 16.04 LTS
|
||||||
- [ ] Ubuntu 18.04 LTS
|
- [ ] Ubuntu 18.04 LTS
|
||||||
@@ -24,10 +24,13 @@ A clear and concise description of what the bug is, and why you consider it to b
|
|||||||
- [ ] Windows Server 2016 R2
|
- [ ] Windows Server 2016 R2
|
||||||
- [ ] Windows Server 2019
|
- [ ] Windows Server 2019
|
||||||
|
|
||||||
**Expected behavior**
|
**Expected behavior**
|
||||||
A description of what you expected to happen.
|
A description of what you expected to happen.
|
||||||
|
|
||||||
**Actual behavior**
|
**Actual behavior**
|
||||||
|
A description of what is actually happening.
|
||||||
|
|
||||||
|
**Repro steps**
|
||||||
A description with steps to reproduce the issue. If your have a public example or repo to share,
|
A description with steps to reproduce the issue. If your have a public example or repo to share,
|
||||||
please provide the link.
|
please provide the link.
|
||||||
|
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/tool-request.md
vendored
2
.github/ISSUE_TEMPLATE/tool-request.md
vendored
@@ -2,7 +2,7 @@
|
|||||||
name: Tool request
|
name: Tool request
|
||||||
about: Request a new tool or update to a tool
|
about: Request a new tool or update to a tool
|
||||||
title: Update/Add [tool name]
|
title: Update/Add [tool name]
|
||||||
labels: t:Enhancement
|
labels: feature request, needs triage
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
2
.github/workflows/create_github_release.yml
vendored
2
.github/workflows/create_github_release.yml
vendored
@@ -6,7 +6,7 @@ on:
|
|||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
Create_GitHub_release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
12
.github/workflows/create_pull_request.yml
vendored
12
.github/workflows/create_pull_request.yml
vendored
@@ -6,11 +6,19 @@ on:
|
|||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
Create_pull_request:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Clone release branch to create pull request
|
||||||
|
run: |
|
||||||
|
git checkout ${{ github.event.client_payload.ReleaseBranchName }}
|
||||||
|
git branch ${{ github.event.client_payload.ReleaseBranchName }}-docs
|
||||||
|
git push origin ${{ github.event.client_payload.ReleaseBranchName }}-docs
|
||||||
|
|
||||||
- name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }}
|
- name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }}
|
||||||
uses: actions/github-script@v2
|
uses: actions/github-script@v2
|
||||||
@@ -21,7 +29,7 @@ jobs:
|
|||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
title: "${{ github.event.client_payload.PullRequestTitle }}",
|
title: "${{ github.event.client_payload.PullRequestTitle }}",
|
||||||
head: "${{ github.event.client_payload.ReleaseBranchName }}",
|
head: "${{ github.event.client_payload.ReleaseBranchName }}-docs",
|
||||||
base: "${{ github.event.client_payload.PullRequestBase }}",
|
base: "${{ github.event.client_payload.PullRequestBase }}",
|
||||||
body: `${{ github.event.client_payload.PullRequestBody }}`
|
body: `${{ github.event.client_payload.PullRequestBody }}`
|
||||||
});
|
});
|
||||||
39
.github/workflows/merge_pull_request.yml
vendored
39
.github/workflows/merge_pull_request.yml
vendored
@@ -6,11 +6,34 @@ on:
|
|||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
Merge_pull_request:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Resolve possible conflicts ${{ github.event.client_payload.ReleaseBranchName }} with main
|
||||||
|
run: |
|
||||||
|
git config --global user.email "no-reply@github.com"
|
||||||
|
git config --global user.name "Actions service account"
|
||||||
|
git checkout ${{ github.event.client_payload.ReleaseBranchName }}-docs
|
||||||
|
git merge --no-edit --strategy-option=ours main
|
||||||
|
git push origin ${{ github.event.client_payload.ReleaseBranchName }}-docs
|
||||||
|
sleep 30
|
||||||
|
|
||||||
|
- name: Approve pull request by GitHub-Actions bot
|
||||||
|
uses: actions/github-script@v2
|
||||||
|
with:
|
||||||
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
script: |
|
||||||
|
github.pulls.createReview({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
pull_number: ${{ github.event.client_payload.PullRequestNumber }},
|
||||||
|
event: "APPROVE"
|
||||||
|
});
|
||||||
|
|
||||||
- name: Merge pull request for ${{ github.event.client_payload.ReleaseBranchName }}
|
- name: Merge pull request for ${{ github.event.client_payload.ReleaseBranchName }}
|
||||||
uses: actions/github-script@v2
|
uses: actions/github-script@v2
|
||||||
@@ -20,5 +43,17 @@ jobs:
|
|||||||
github.pulls.merge({
|
github.pulls.merge({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
pull_number: ${{ github.event.client_payload.PullRequestNumber }}
|
pull_number: ${{ github.event.client_payload.PullRequestNumber }},
|
||||||
|
merge_method: "squash"
|
||||||
|
})
|
||||||
|
|
||||||
|
- name: Delete docs branch ${{ github.event.client_payload.ReleaseBranchName }}-docs
|
||||||
|
uses: actions/github-script@v2
|
||||||
|
with:
|
||||||
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
script: |
|
||||||
|
github.git.deleteRef({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
ref: "heads/${{ github.event.client_payload.ReleaseBranchName }}-docs"
|
||||||
})
|
})
|
||||||
2
.github/workflows/update_github_release.yml
vendored
2
.github/workflows/update_github_release.yml
vendored
@@ -6,7 +6,7 @@ on:
|
|||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
Update_GitHub_release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Function CreateAzureVMFromPackerTemplate {
|
Function CreateAzureVMFromPackerTemplate {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Creates an Azure VM from a template. Also generates network resources in Azure to make the VM accessible.
|
A helper function to deploy a VM from a generated image.
|
||||||
|
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
Creates Azure resources and kicks off a packer image generation for the selected image type.
|
Creates an Azure VM from a template. Also generates network resources in Azure to make the VM accessible.
|
||||||
|
|
||||||
.PARAMETER SubscriptionId
|
.PARAMETER SubscriptionId
|
||||||
The Azure subscription Id where resources will be created.
|
The Azure subscription Id where resources will be created.
|
||||||
|
|||||||
@@ -39,6 +39,16 @@ Function Get-PackerTemplatePath {
|
|||||||
return $RepositoryRoot + $relativePath;
|
return $RepositoryRoot + $relativePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Function Get-LatestCommit {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param()
|
||||||
|
|
||||||
|
process {
|
||||||
|
Write-Host "Latest commit:"
|
||||||
|
git log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Function GenerateResourcesAndImage {
|
Function GenerateResourcesAndImage {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
@@ -170,6 +180,8 @@ Function GenerateResourcesAndImage {
|
|||||||
$tenantId = $sub.TenantId
|
$tenantId = $sub.TenantId
|
||||||
# "", "Note this variable-setting script for running Packer with these Azure resources in the future:", "==============================================================================================", "`$spClientId = `"$spClientId`"", "`$ServicePrincipalClientSecret = `"$ServicePrincipalClientSecret`"", "`$SubscriptionId = `"$SubscriptionId`"", "`$tenantId = `"$tenantId`"", "`$spObjectId = `"$spObjectId`"", "`$AzureLocation = `"$AzureLocation`"", "`$ResourceGroupName = `"$ResourceGroupName`"", "`$storageAccountName = `"$storageAccountName`"", "`$install_password = `"$install_password`"", ""
|
# "", "Note this variable-setting script for running Packer with these Azure resources in the future:", "==============================================================================================", "`$spClientId = `"$spClientId`"", "`$ServicePrincipalClientSecret = `"$ServicePrincipalClientSecret`"", "`$SubscriptionId = `"$SubscriptionId`"", "`$tenantId = `"$tenantId`"", "`$spObjectId = `"$spObjectId`"", "`$AzureLocation = `"$AzureLocation`"", "`$ResourceGroupName = `"$ResourceGroupName`"", "`$storageAccountName = `"$storageAccountName`"", "`$install_password = `"$install_password`"", ""
|
||||||
|
|
||||||
|
Get-LatestCommit -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
packer.exe build -on-error=ask `
|
packer.exe build -on-error=ask `
|
||||||
-var "client_id=$($spClientId)" `
|
-var "client_id=$($spClientId)" `
|
||||||
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
||||||
|
|||||||
@@ -17,13 +17,10 @@ jobs:
|
|||||||
displayName: 'Download custom repository'
|
displayName: 'Download custom repository'
|
||||||
condition: and(ne(variables['CUSTOM_REPOSITORY_URL'], ''), ne(variables['CUSTOM_REPOSITORY_BRANCH'], ''))
|
condition: and(ne(variables['CUSTOM_REPOSITORY_URL'], ''), ne(variables['CUSTOM_REPOSITORY_BRANCH'], ''))
|
||||||
inputs:
|
inputs:
|
||||||
targetType: 'inline'
|
targetType: 'filePath'
|
||||||
script: |
|
filePath: ./images.CI/download-repo.ps1
|
||||||
Write-Host "Clean up default repository"
|
arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) `
|
||||||
Remove-Item -path './*' -Recurse -Force
|
-RepoBranch $(CUSTOM_REPOSITORY_BRANCH)
|
||||||
Write-Host "Download $(CUSTOM_REPOSITORY_BRANCH) branch from $(CUSTOM_REPOSITORY_URL)"
|
|
||||||
$env:GIT_REDIRECT_STDERR = '2>&1'
|
|
||||||
git clone $(CUSTOM_REPOSITORY_URL) . -b $(CUSTOM_REPOSITORY_BRANCH) --single-branch --depth 1
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: 'Build VM'
|
displayName: 'Build VM'
|
||||||
|
|||||||
14
images.CI/download-repo.ps1
Normal file
14
images.CI/download-repo.ps1
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
param(
|
||||||
|
[String] [Parameter (Mandatory=$true)] $RepoUrl,
|
||||||
|
[String] [Parameter (Mandatory=$true)] $RepoBranch
|
||||||
|
)
|
||||||
|
|
||||||
|
Write-Host "Clean up default repository"
|
||||||
|
Remove-Item -path './*' -Recurse -Force
|
||||||
|
|
||||||
|
Write-Host "Download ${RepoBranch} branch from ${RepoUrl}"
|
||||||
|
$env:GIT_REDIRECT_STDERR = '2>&1'
|
||||||
|
git clone $RepoUrl . -b $RepoBranch --single-branch --depth 1
|
||||||
|
|
||||||
|
Write-Host "Latest commit:"
|
||||||
|
git log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||||
# Ubuntu 16.04.6 LTS
|
# Ubuntu 16.04.7 LTS
|
||||||
The following software is installed on machines with the 20200806.0 update.
|
The following software is installed on machines with the 20200908.1 update.
|
||||||
***
|
***
|
||||||
- 7-Zip 9.20
|
- 7-Zip 9.20
|
||||||
- Ansible (ansible 2.9.11)
|
- Ansible (ansible 2.9.13)
|
||||||
- AzCopy7 (available by azcopy alias) 7.3.0
|
- AzCopy7 (available by azcopy alias) 7.3.0
|
||||||
- AzCopy10 (available by azcopy10 alias) 10.5.1
|
- AzCopy10 (available by azcopy10 alias) 10.6.0
|
||||||
- Azure CLI (azure-cli 2.10.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:
|
||||||
- dnsutils
|
- dnsutils
|
||||||
@@ -66,7 +66,7 @@ The following software is installed on machines with the 20200806.0 update.
|
|||||||
- yamllint
|
- yamllint
|
||||||
- libcurl3
|
- libcurl3
|
||||||
- Alibaba Cloud CLI (3.0.56)
|
- Alibaba Cloud CLI (3.0.56)
|
||||||
- AWS CLI (aws-cli/1.18.113 Python/2.7.12 Linux/4.15.0-1092-azure botocore/1.17.36)
|
- AWS CLI (aws-cli/1.18.134 Python/2.7.12 Linux/4.15.0-1093-azure botocore/1.17.57)
|
||||||
- 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,16 +76,20 @@ The following software is installed on machines with the 20200806.0 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.26.2, build eefe0d31)
|
- Docker Compose (docker-compose version 1.27.0, build 980ec85b)
|
||||||
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
||||||
- Docker-Buildx (0.4.1+azure)
|
- Docker-Buildx (0.4.2+azure)
|
||||||
- .NET Core SDK:
|
- .NET Core SDK:
|
||||||
|
- 3.1.402
|
||||||
|
- 3.1.401
|
||||||
- 3.1.302
|
- 3.1.302
|
||||||
- 3.1.301
|
- 3.1.301
|
||||||
- 3.1.300
|
- 3.1.300
|
||||||
- 3.1.202
|
- 3.1.202
|
||||||
- 3.1.201
|
- 3.1.201
|
||||||
- 3.1.200
|
- 3.1.200
|
||||||
|
- 3.1.108
|
||||||
|
- 3.1.107
|
||||||
- 3.1.106
|
- 3.1.106
|
||||||
- 3.1.105
|
- 3.1.105
|
||||||
- 3.1.104
|
- 3.1.104
|
||||||
@@ -97,6 +101,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 3.0.102
|
- 3.0.102
|
||||||
- 3.0.101
|
- 3.0.101
|
||||||
- 3.0.100
|
- 3.0.100
|
||||||
|
- 2.1.810
|
||||||
|
- 2.1.809
|
||||||
- 2.1.808
|
- 2.1.808
|
||||||
- 2.1.807
|
- 2.1.807
|
||||||
- 2.1.806
|
- 2.1.806
|
||||||
@@ -107,6 +113,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.801
|
- 2.1.801
|
||||||
- 2.1.701
|
- 2.1.701
|
||||||
- 2.1.700
|
- 2.1.700
|
||||||
|
- 2.1.615
|
||||||
|
- 2.1.614
|
||||||
- 2.1.613
|
- 2.1.613
|
||||||
- 2.1.612
|
- 2.1.612
|
||||||
- 2.1.611
|
- 2.1.611
|
||||||
@@ -119,6 +127,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.604
|
- 2.1.604
|
||||||
- 2.1.603
|
- 2.1.603
|
||||||
- 2.1.602
|
- 2.1.602
|
||||||
|
- 2.1.518
|
||||||
|
- 2.1.517
|
||||||
- 2.1.516
|
- 2.1.516
|
||||||
- 2.1.515
|
- 2.1.515
|
||||||
- 2.1.514
|
- 2.1.514
|
||||||
@@ -142,7 +152,7 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.301
|
- 2.1.301
|
||||||
- 2.1.300
|
- 2.1.300
|
||||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
||||||
- Firefox (Mozilla Firefox 79.0)
|
- Firefox (Mozilla Firefox 80.0.1)
|
||||||
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
||||||
- GNU C++ 7.5.0
|
- GNU C++ 7.5.0
|
||||||
- GNU C++ 8.4.0
|
- GNU C++ 8.4.0
|
||||||
@@ -150,18 +160,18 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- GNU Fortran 8.4.0
|
- GNU Fortran 8.4.0
|
||||||
- GNU Fortran 9.3.0
|
- GNU Fortran 9.3.0
|
||||||
- Git (2.28.0)
|
- Git (2.28.0)
|
||||||
- Git Large File Storage (LFS) (2.11.0)
|
- Git Large File Storage (LFS) (2.12.0)
|
||||||
- Git-ftp (1.0.2)
|
- Git-ftp (1.0.2)
|
||||||
- Hub CLI (2.14.2)
|
- Hub CLI (2.14.2)
|
||||||
- GitHub CLI 0.11.1
|
- GitHub CLI 0.12.0
|
||||||
- Google Chrome (Google Chrome 84.0.4147.105 )
|
- Google Chrome (Google Chrome 85.0.4183.102 )
|
||||||
- ChromeDriver 84.0.4147.30 (48b3e868b4cc0aa7e8149519690b6f6949e110a8-refs/branch-heads/4147@{#310}); 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 (304.0.0)
|
- Google Cloud SDK (308.0.0)
|
||||||
- Haskell Cabal (cabal-install version 3.2.0.0
|
- Haskell Cabal (cabal-install version 3.4.0.0
|
||||||
compiled using version 3.2.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.1)
|
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
|
||||||
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
||||||
- Heroku (heroku/7.42.6 linux-x64 node-v12.16.2)
|
- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
|
||||||
- HHVM (HipHop VM 4.56.1 (rel))
|
- HHVM (HipHop VM 4.56.1 (rel))
|
||||||
- ImageMagick
|
- ImageMagick
|
||||||
- Azul Zulu OpenJDK:
|
- Azul Zulu OpenJDK:
|
||||||
@@ -171,17 +181,19 @@ compiled using version 3.2.0.0 of the Cabal library )
|
|||||||
- 11 (openjdk version "11.0.8" 2020-07-14)
|
- 11 (openjdk version "11.0.8" 2020-07-14)
|
||||||
- 12 (openjdk version "12.0.2" 2019-07-16)
|
- 12 (openjdk version "12.0.2" 2019-07-16)
|
||||||
- Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018)
|
- Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018)
|
||||||
- Gradle 6.5.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.18.6)
|
- kubectl (Client Version: v1.19.0)
|
||||||
- helm (v3.2.4+g0ad800e)
|
- helm (v3.3.1+g249e521)
|
||||||
- minikube version: v1.12.2
|
- minikube version: v1.13.0
|
||||||
|
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
|
||||||
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
||||||
- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
|
- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
|
||||||
- Mercurial (Mercurial Distributed SCM (version 4.4.1))
|
- Mercurial (Mercurial Distributed SCM (version 4.4.1))
|
||||||
- Miniconda (conda 4.8.3)
|
- Miniconda (conda 4.8.3)
|
||||||
- Mono (Mono JIT compiler version 6.10.0.104 (tarball Fri Jun 26 19:43:02 UTC 2020))
|
- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 13:58:50 UTC 2020))
|
||||||
|
- NuGet (NuGet Version: 5.5.0.6382)
|
||||||
- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
|
- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
|
||||||
- MySQL Server (user:root password:root)
|
- MySQL Server (user:root password:root)
|
||||||
- MS SQL Server Client Tools
|
- MS SQL Server Client Tools
|
||||||
@@ -192,55 +204,55 @@ compiled using version 3.2.0.0 of the Cabal library )
|
|||||||
Local version: Unknown)
|
Local version: Unknown)
|
||||||
- n (6.7.0)
|
- n (6.7.0)
|
||||||
- Parcel (1.12.4)
|
- Parcel (1.12.4)
|
||||||
- TypeScript (Version 3.9.7)
|
- TypeScript (Version 4.0.2)
|
||||||
- Webpack (4.44.1)
|
- Webpack (4.44.1)
|
||||||
- Webpack CLI (3.3.12)
|
- Webpack CLI (3.3.12)
|
||||||
- Yarn (1.22.4)
|
- Yarn (1.22.5)
|
||||||
- Newman (5.1.2)
|
- Newman (5.2.0)
|
||||||
- Bazel (bazel 3.4.1)
|
- Bazel (bazel 3.5.0)
|
||||||
- Bazelisk (1.5.0)
|
- Bazelisk (1.6.1)
|
||||||
- ORAS CLI 0.8.1
|
- ORAS CLI 0.8.1
|
||||||
- PhantomJS (2.1.1)
|
- PhantomJS (2.1.1)
|
||||||
- PHP 5.6 (PHP 5.6.40-29+ubuntu16.04.1+deb.sury.org+1 (cli) )
|
- PHP 5.6 (PHP 5.6.40-30+ubuntu16.04.1+deb.sury.org+1 (cli) )
|
||||||
- PHP 7.0 (PHP 7.0.33-29+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 14 2020 09:08:44) ( 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-16+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 14 2020 08:26:44) ( 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.32-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jul 9 2020 16:33:33) ( 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.20-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jul 9 2020 16:33:48) ( 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.4 (PHP 7.4.8 (cli) (built: Jul 13 2020 16:45:28) ( NTS ))
|
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:29:10) ( NTS ))
|
||||||
- Composer (Composer version 1.10.10 2020-08-03 11:35:19)
|
- Composer (Composer version 1.10.12 2020-09-08 22:58:51)
|
||||||
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
||||||
- OpenSSL 1.0.2g 1 Mar 2016
|
|
||||||
- Libssl 1.0.2g-1ubuntu4.16
|
|
||||||
- Pollinate
|
- Pollinate
|
||||||
- psql (PostgreSQL) 12.3
|
- psql (PostgreSQL) 12.4
|
||||||
- Powershell (PowerShell 7.0.3)
|
- Powershell (PowerShell 7.0.3)
|
||||||
|
- Pulumi v2.9.2
|
||||||
- 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)
|
||||||
|
- Libssl 1.1.1g-1+ubuntu16.04.1+deb.sury.org+1
|
||||||
- R 4.0.2
|
- R 4.0.2
|
||||||
- rustup (1.22.1)
|
- rustup (1.22.1)
|
||||||
- rust (1.45.2)
|
- rust (1.46.0)
|
||||||
- cargo (1.45.1)
|
- cargo (1.46.0)
|
||||||
- rustfmt (1.4.17-stable)
|
- rustfmt (1.4.18-stable)
|
||||||
- clippy (0.0.212)
|
- clippy (0.0.212)
|
||||||
- rustdoc (1.45.2)
|
- rustdoc (1.46.0)
|
||||||
- bindgen (0.54.1)
|
- bindgen (0.55.1)
|
||||||
- cbindgen (0.14.3)
|
- cbindgen (0.14.4)
|
||||||
- cargo audit (0.12.0)
|
- cargo audit (0.12.0)
|
||||||
- cargo outdated (v0.9.11)
|
- cargo outdated (v0.9.11)
|
||||||
- Julia (julia version 1.5.0)
|
- Julia (julia version 1.5.1)
|
||||||
- sbt (1.3.13)
|
- sbt (1.3.13)
|
||||||
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
||||||
- Sphinx Open Source Search Server
|
- Sphinx Open Source Search Server
|
||||||
- Subversion (svn, version 1.9.3 (r1718519))
|
- Subversion (svn, version 1.9.3 (r1718519))
|
||||||
- Terraform (Terraform v0.12.29)
|
- Terraform (Terraform v0.13.2)
|
||||||
- Packer (1.6.1)
|
- Packer (1.6.2)
|
||||||
- Vcpkg 2020.06.15-unknownhash
|
- Vcpkg 2020.06.15-unknownhash
|
||||||
- Vercel CLI (19.2.0)
|
- Vercel CLI (20.1.0)
|
||||||
- MongoDB on Linux (2020-08-06T20:20:14.317+0000 I CONTROL [initandlisten] db version v4.2.8
|
- MongoDB on Linux v4.4.0
|
||||||
2020-08-06T20:20:14.317+0000 I CONTROL [initandlisten] git version: 43d25964249164d76d5e04dd6cf38f6111e21f5f
|
|
||||||
2020-08-06T20:20:14.317+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016)
|
|
||||||
- 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)
|
||||||
- Google Repository 58
|
- Google Repository 58
|
||||||
- Google Play services 49
|
- Google Play services 49
|
||||||
- Google APIs 24
|
- Google APIs 24
|
||||||
@@ -249,9 +261,10 @@ Local version: Unknown)
|
|||||||
- Google APIs 21
|
- Google APIs 21
|
||||||
- CMake 3.10.2.4988404
|
- CMake 3.10.2.4988404
|
||||||
3.6.4111459
|
3.6.4111459
|
||||||
- Android Support Repository 47.0.0
|
- Android ConstraintLayout 1.0.2
|
||||||
- Android Solver for ConstraintLayout 1.0.2
|
- Android ConstraintLayout 1.0.1
|
||||||
- Android Solver for ConstraintLayout 1.0.1
|
- Android ConstraintLayout Solver 1.0.2
|
||||||
|
- Android ConstraintLayout Solver 1.0.1
|
||||||
- Android SDK Platform-Tools 30.0.4
|
- Android SDK Platform-Tools 30.0.4
|
||||||
- Android SDK Platform 30
|
- Android SDK Platform 30
|
||||||
- Android SDK Platform 29
|
- Android SDK Platform 29
|
||||||
@@ -268,6 +281,7 @@ Local version: Unknown)
|
|||||||
- Android SDK Platform 15
|
- Android SDK Platform 15
|
||||||
- Android SDK Platform 10
|
- Android SDK Platform 10
|
||||||
- Android SDK Patch Applier v4
|
- Android SDK Patch Applier v4
|
||||||
|
- Android SDK Build-Tools 30.0.2
|
||||||
- Android SDK Build-Tools 30.0.1
|
- Android SDK Build-Tools 30.0.1
|
||||||
- Android SDK Build-Tools 30.0.0
|
- Android SDK Build-Tools 30.0.0
|
||||||
- Android SDK Build-Tools 29.0.3
|
- Android SDK Build-Tools 29.0.3
|
||||||
@@ -302,8 +316,6 @@ Local version: Unknown)
|
|||||||
- Android SDK Build-Tools 19.1.0
|
- Android SDK Build-Tools 19.1.0
|
||||||
- Android SDK Build-Tools 17.0.0
|
- Android SDK Build-Tools 17.0.0
|
||||||
- Android NDK 21.3.6528147
|
- Android NDK 21.3.6528147
|
||||||
- Android ConstraintLayout 1.0.2
|
|
||||||
- Android ConstraintLayout 1.0.1
|
|
||||||
- Az Module (1.0.0)
|
- Az Module (1.0.0)
|
||||||
- Az Module (1.6.0)
|
- Az Module (1.6.0)
|
||||||
- Az Module (2.3.2)
|
- Az Module (2.3.2)
|
||||||
@@ -314,15 +326,17 @@ Local version: Unknown)
|
|||||||
- Az Module (3.8.0)
|
- Az Module (3.8.0)
|
||||||
- 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)
|
||||||
- Cached container images
|
- Cached container images
|
||||||
- node:10 (Digest: sha256:cf3ee6a5a1b1916c7a2e4fb51eb7ecba1afe186739677d62e9c1bb2cb1c7d6b0)
|
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
|
||||||
- node:12 (Digest: sha256:d0738468dfc7cedb7d260369e0546fd7ee8731cfd67136f6023d070ad9679090)
|
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
|
||||||
- buildpack-deps:stretch (Digest: sha256:34a18637ed801407f7a17a29575e82264fb0818f9b6a0c890f8a6530afea43dc)
|
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
|
||||||
|
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
|
||||||
|
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
|
||||||
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
||||||
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
||||||
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
||||||
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
||||||
- jekyll/builder:latest (Digest: sha256:98cda359955f25f18c4bcc78536cdfd30e7ded689b1f52fcd513c75cbe4e751e)
|
|
||||||
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
||||||
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
||||||
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
||||||
@@ -340,9 +354,9 @@ Local version: Unknown)
|
|||||||
- pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5))
|
- pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5))
|
||||||
- Python:
|
- Python:
|
||||||
- Python 2.7.18
|
- Python 2.7.18
|
||||||
- Python 3.5.9
|
- Python 3.5.10
|
||||||
- Python 3.6.11
|
- Python 3.6.12
|
||||||
- Python 3.7.8
|
- Python 3.7.9
|
||||||
- Python 3.8.5
|
- Python 3.8.5
|
||||||
- PyPy:
|
- PyPy:
|
||||||
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
||||||
@@ -351,15 +365,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.7.0
|
- node 14.9.0
|
||||||
- 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.7
|
- go 1.14.8
|
||||||
|
- go 1.15.1
|
||||||
- boost:
|
- boost:
|
||||||
- boost 1.69.0
|
- boost 1.69.0
|
||||||
- boost 1.72.0
|
- boost 1.72.0
|
||||||
- AWS SAM CLI, version 1.0.0
|
- AWS SAM CLI, version 1.2.0
|
||||||
- Homebrew on Linux (Homebrew 2.4.9
|
- Homebrew on Linux (Homebrew 2.5.0
|
||||||
Homebrew/linuxbrew-core (git revision 4c7841; last commit 2020-08-05))
|
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08))
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||||
# Ubuntu 18.04.4 LTS
|
# Ubuntu 18.04.5 LTS
|
||||||
The following software is installed on machines with the 20200806.0 update.
|
The following software is installed on machines with the 20200908.1 update.
|
||||||
***
|
***
|
||||||
- 7-Zip 16.02
|
- 7-Zip 16.02
|
||||||
- Ansible (ansible 2.9.11)
|
- Ansible (ansible 2.9.13)
|
||||||
- AzCopy7 (available by azcopy alias) 7.3.0
|
- AzCopy7 (available by azcopy alias) 7.3.0
|
||||||
- AzCopy10 (available by azcopy10 alias) 10.5.1
|
- AzCopy10 (available by azcopy10 alias) 10.6.0
|
||||||
- Azure CLI (azure-cli 2.10.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:
|
||||||
- dnsutils
|
- dnsutils
|
||||||
@@ -65,7 +65,7 @@ The following software is installed on machines with the 20200806.0 update.
|
|||||||
- yamllint
|
- yamllint
|
||||||
- libcurl3
|
- libcurl3
|
||||||
- Alibaba Cloud CLI (3.0.56)
|
- Alibaba Cloud CLI (3.0.56)
|
||||||
- AWS CLI (aws-cli/1.18.113 Python/2.7.17 Linux/5.3.0-1034-azure botocore/1.17.36)
|
- AWS CLI (aws-cli/1.18.134 Python/2.7.17 Linux/5.4.0-1025-azure botocore/1.17.57)
|
||||||
- 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)
|
||||||
@@ -74,19 +74,23 @@ The following software is installed on machines with the 20200806.0 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)
|
||||||
- Podman (2.0.4)
|
- Podman (2.0.6)
|
||||||
- Buildah (1.15.1)
|
- Buildah (1.15.2)
|
||||||
- Skopeo (1.1.1)
|
- Skopeo (1.1.1)
|
||||||
- Docker Compose (docker-compose version 1.26.2, build eefe0d31)
|
- Docker Compose (docker-compose version 1.27.0, build 980ec85b)
|
||||||
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
||||||
- Docker-Buildx (0.4.1+azure)
|
- Docker-Buildx (0.4.2+azure)
|
||||||
- .NET Core SDK:
|
- .NET Core SDK:
|
||||||
|
- 3.1.402
|
||||||
|
- 3.1.401
|
||||||
- 3.1.302
|
- 3.1.302
|
||||||
- 3.1.301
|
- 3.1.301
|
||||||
- 3.1.300
|
- 3.1.300
|
||||||
- 3.1.202
|
- 3.1.202
|
||||||
- 3.1.201
|
- 3.1.201
|
||||||
- 3.1.200
|
- 3.1.200
|
||||||
|
- 3.1.108
|
||||||
|
- 3.1.107
|
||||||
- 3.1.106
|
- 3.1.106
|
||||||
- 3.1.105
|
- 3.1.105
|
||||||
- 3.1.104
|
- 3.1.104
|
||||||
@@ -98,6 +102,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 3.0.102
|
- 3.0.102
|
||||||
- 3.0.101
|
- 3.0.101
|
||||||
- 3.0.100
|
- 3.0.100
|
||||||
|
- 2.1.810
|
||||||
|
- 2.1.809
|
||||||
- 2.1.808
|
- 2.1.808
|
||||||
- 2.1.807
|
- 2.1.807
|
||||||
- 2.1.806
|
- 2.1.806
|
||||||
@@ -108,6 +114,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.801
|
- 2.1.801
|
||||||
- 2.1.701
|
- 2.1.701
|
||||||
- 2.1.700
|
- 2.1.700
|
||||||
|
- 2.1.615
|
||||||
|
- 2.1.614
|
||||||
- 2.1.613
|
- 2.1.613
|
||||||
- 2.1.612
|
- 2.1.612
|
||||||
- 2.1.611
|
- 2.1.611
|
||||||
@@ -120,6 +128,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.604
|
- 2.1.604
|
||||||
- 2.1.603
|
- 2.1.603
|
||||||
- 2.1.602
|
- 2.1.602
|
||||||
|
- 2.1.518
|
||||||
|
- 2.1.517
|
||||||
- 2.1.516
|
- 2.1.516
|
||||||
- 2.1.515
|
- 2.1.515
|
||||||
- 2.1.514
|
- 2.1.514
|
||||||
@@ -143,7 +153,7 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.301
|
- 2.1.301
|
||||||
- 2.1.300
|
- 2.1.300
|
||||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
||||||
- Firefox (Mozilla Firefox 79.0)
|
- Firefox (Mozilla Firefox 80.0.1)
|
||||||
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
||||||
- GNU C++ 7.5.0
|
- GNU C++ 7.5.0
|
||||||
- GNU C++ 8.4.0
|
- GNU C++ 8.4.0
|
||||||
@@ -151,19 +161,19 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- GNU Fortran 8.4.0
|
- GNU Fortran 8.4.0
|
||||||
- GNU Fortran 9.3.0
|
- GNU Fortran 9.3.0
|
||||||
- Git (2.28.0)
|
- Git (2.28.0)
|
||||||
- Git Large File Storage (LFS) (2.11.0)
|
- Git Large File Storage (LFS) (2.12.0)
|
||||||
- Git-ftp (1.3.1)
|
- Git-ftp (1.3.1)
|
||||||
- Hub CLI (2.14.2)
|
- Hub CLI (2.14.2)
|
||||||
- GitHub CLI 0.11.1
|
- GitHub CLI 0.12.0
|
||||||
- Google Chrome (Google Chrome 84.0.4147.105 )
|
- Google Chrome (Google Chrome 85.0.4183.102 )
|
||||||
- ChromeDriver 84.0.4147.30 (48b3e868b4cc0aa7e8149519690b6f6949e110a8-refs/branch-heads/4147@{#310}); 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 (304.0.0)
|
- Google Cloud SDK (308.0.0)
|
||||||
- Haskell Cabal (cabal-install version 3.2.0.0
|
- Haskell Cabal (cabal-install version 3.4.0.0
|
||||||
compiled using version 3.2.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.1)
|
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
|
||||||
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
||||||
- Heroku (heroku/7.42.6 linux-x64 node-v12.16.2)
|
- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
|
||||||
- HHVM (HipHop VM 4.69.1 (rel))
|
- HHVM (HipHop VM 4.74.0 (rel))
|
||||||
- ImageMagick
|
- ImageMagick
|
||||||
- Azul Zulu OpenJDK:
|
- Azul Zulu OpenJDK:
|
||||||
- 7 (openjdk version "1.7.0_272")
|
- 7 (openjdk version "1.7.0_272")
|
||||||
@@ -172,17 +182,19 @@ compiled using version 3.2.0.0 of the Cabal library )
|
|||||||
- 11 (openjdk version "11.0.8" 2020-07-14)
|
- 11 (openjdk version "11.0.8" 2020-07-14)
|
||||||
- 12 (openjdk version "12.0.2" 2019-07-16)
|
- 12 (openjdk version "12.0.2" 2019-07-16)
|
||||||
- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
|
- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
|
||||||
- Gradle 6.5.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.18.6)
|
- kubectl (Client Version: v1.19.0)
|
||||||
- helm (v3.2.4+g0ad800e)
|
- helm (v3.3.1+g249e521)
|
||||||
- minikube version: v1.12.2
|
- minikube version: v1.13.0
|
||||||
|
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
|
||||||
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
||||||
- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
|
- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
|
||||||
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
|
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
|
||||||
- Miniconda (conda 4.8.3)
|
- Miniconda (conda 4.8.3)
|
||||||
- Mono (Mono JIT compiler version 6.10.0.104 (tarball Fri Jun 26 19:38:24 UTC 2020))
|
- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 14:01:23 UTC 2020))
|
||||||
|
- NuGet (NuGet Version: 5.5.0.6382)
|
||||||
- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
|
- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
|
||||||
- MySQL Server (user:root password:root)
|
- MySQL Server (user:root password:root)
|
||||||
- MS SQL Server Client Tools
|
- MS SQL Server Client Tools
|
||||||
@@ -194,53 +206,53 @@ compiled using version 3.2.0.0 of the Cabal library )
|
|||||||
Local version: Unknown)
|
Local version: Unknown)
|
||||||
- n (6.7.0)
|
- n (6.7.0)
|
||||||
- Parcel (1.12.4)
|
- Parcel (1.12.4)
|
||||||
- TypeScript (Version 3.9.7)
|
- TypeScript (Version 4.0.2)
|
||||||
- Webpack (4.44.1)
|
- Webpack (4.44.1)
|
||||||
- Webpack CLI (3.3.12)
|
- Webpack CLI (3.3.12)
|
||||||
- Yarn (1.22.4)
|
- Yarn (1.22.5)
|
||||||
- Newman (5.1.2)
|
- Newman (5.2.0)
|
||||||
- Bazel (bazel 3.4.1)
|
- Bazel (bazel 3.5.0)
|
||||||
- Bazelisk (1.5.0)
|
- Bazelisk (1.6.1)
|
||||||
- ORAS CLI 0.8.1
|
- ORAS CLI 0.8.1
|
||||||
- PhantomJS (2.1.1)
|
- PhantomJS (2.1.1)
|
||||||
- PHP 7.1 (PHP 7.1.33-16+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 14 2020 08:27:11) ( 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.32-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 9 2020 16:33:55) ( 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.20-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 9 2020 16:34:09) ( 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.4 (PHP 7.4.8 (cli) (built: Jul 13 2020 16:45:47) ( NTS ))
|
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:29:36) ( NTS ))
|
||||||
- Composer (Composer version 1.10.10 2020-08-03 11:35:19)
|
- Composer (Composer version 1.10.12 2020-09-08 22:58:51)
|
||||||
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
||||||
- OpenSSL 1.1.1 11 Sep 2018
|
|
||||||
- Libssl 1.1.1-1ubuntu2.1~18.04.6
|
|
||||||
- Pollinate
|
- Pollinate
|
||||||
- psql (PostgreSQL) 12.3
|
- psql (PostgreSQL) 12.4
|
||||||
- Powershell (PowerShell 7.0.3)
|
- Powershell (PowerShell 7.0.3)
|
||||||
|
- Pulumi v2.9.2
|
||||||
- ruby (2.5.1p57)
|
- ruby (2.5.1p57)
|
||||||
- gem (3.1.4)
|
- gem (3.1.4)
|
||||||
|
- OpenSSL 1.1.1g 21 Apr 2020
|
||||||
|
- Libssl 1.1.1g-1+ubuntu18.04.1+deb.sury.org+1
|
||||||
- R 4.0.2
|
- R 4.0.2
|
||||||
- rustup (1.22.1)
|
- rustup (1.22.1)
|
||||||
- rust (1.45.2)
|
- rust (1.46.0)
|
||||||
- cargo (1.45.1)
|
- cargo (1.46.0)
|
||||||
- rustfmt (1.4.17-stable)
|
- rustfmt (1.4.18-stable)
|
||||||
- clippy (0.0.212)
|
- clippy (0.0.212)
|
||||||
- rustdoc (1.45.2)
|
- rustdoc (1.46.0)
|
||||||
- bindgen (0.54.1)
|
- bindgen (0.55.1)
|
||||||
- cbindgen (0.14.3)
|
- cbindgen (0.14.4)
|
||||||
- cargo audit (0.12.0)
|
- cargo audit (0.12.0)
|
||||||
- cargo outdated (v0.9.11)
|
- cargo outdated (v0.9.11)
|
||||||
- Julia (julia version 1.5.0)
|
- Julia (julia version 1.5.1)
|
||||||
- sbt (1.3.13)
|
- sbt (1.3.13)
|
||||||
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
||||||
- Sphinx Open Source Search Server
|
- Sphinx Open Source Search Server
|
||||||
- Subversion (svn, version 1.9.7 (r1800392))
|
- Subversion (svn, version 1.9.7 (r1800392))
|
||||||
- Terraform (Terraform v0.12.29)
|
- Terraform (Terraform v0.13.2)
|
||||||
- Packer (1.6.1)
|
- Packer (1.6.2)
|
||||||
- Vcpkg 2020.06.15-unknownhash
|
- Vcpkg 2020.06.15-unknownhash
|
||||||
- Vercel CLI (19.2.0)
|
- Vercel CLI (20.1.0)
|
||||||
- MongoDB on Linux (2020-08-06T20:11:59.209+0000 I CONTROL [initandlisten] db version v4.2.8
|
- MongoDB on Linux v4.4.0
|
||||||
2020-08-06T20:11:59.209+0000 I CONTROL [initandlisten] git version: 43d25964249164d76d5e04dd6cf38f6111e21f5f
|
|
||||||
2020-08-06T20:11:59.209+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020)
|
|
||||||
- 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)
|
||||||
- Google Repository 58
|
- Google Repository 58
|
||||||
- Google Play services 49
|
- Google Play services 49
|
||||||
- Google APIs 24
|
- Google APIs 24
|
||||||
@@ -249,7 +261,6 @@ Local version: Unknown)
|
|||||||
- Google APIs 21
|
- Google APIs 21
|
||||||
- CMake 3.10.2.4988404
|
- CMake 3.10.2.4988404
|
||||||
3.6.4111459
|
3.6.4111459
|
||||||
- Android Support Repository 47.0.0
|
|
||||||
- Android SDK Platform-Tools 30.0.4
|
- Android SDK Platform-Tools 30.0.4
|
||||||
- Android SDK Platform 30
|
- Android SDK Platform 30
|
||||||
- Android SDK Platform 29
|
- Android SDK Platform 29
|
||||||
@@ -264,6 +275,7 @@ Local version: Unknown)
|
|||||||
- Android SDK Platform 19
|
- Android SDK Platform 19
|
||||||
- Android SDK Platform 17
|
- Android SDK Platform 17
|
||||||
- Android SDK Patch Applier v4
|
- Android SDK Patch Applier v4
|
||||||
|
- Android SDK Build-Tools 30.0.2
|
||||||
- Android SDK Build-Tools 30.0.1
|
- Android SDK Build-Tools 30.0.1
|
||||||
- Android SDK Build-Tools 30.0.0
|
- Android SDK Build-Tools 30.0.0
|
||||||
- Android SDK Build-Tools 29.0.3
|
- Android SDK Build-Tools 29.0.3
|
||||||
@@ -308,15 +320,17 @@ Local version: Unknown)
|
|||||||
- Az Module (3.8.0)
|
- Az Module (3.8.0)
|
||||||
- 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)
|
||||||
- Cached container images
|
- Cached container images
|
||||||
- node:10 (Digest: sha256:cf3ee6a5a1b1916c7a2e4fb51eb7ecba1afe186739677d62e9c1bb2cb1c7d6b0)
|
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
|
||||||
- node:12 (Digest: sha256:d0738468dfc7cedb7d260369e0546fd7ee8731cfd67136f6023d070ad9679090)
|
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
|
||||||
- buildpack-deps:stretch (Digest: sha256:34a18637ed801407f7a17a29575e82264fb0818f9b6a0c890f8a6530afea43dc)
|
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
|
||||||
|
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
|
||||||
|
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
|
||||||
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
||||||
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
||||||
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
||||||
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
||||||
- jekyll/builder:latest (Digest: sha256:98cda359955f25f18c4bcc78536cdfd30e7ded689b1f52fcd513c75cbe4e751e)
|
|
||||||
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
||||||
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
||||||
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
||||||
@@ -334,9 +348,9 @@ Local version: Unknown)
|
|||||||
- pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6))
|
- pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6))
|
||||||
- Python:
|
- Python:
|
||||||
- Python 2.7.18
|
- Python 2.7.18
|
||||||
- Python 3.5.9
|
- Python 3.5.10
|
||||||
- Python 3.6.11
|
- Python 3.6.12
|
||||||
- Python 3.7.8
|
- Python 3.7.9
|
||||||
- Python 3.8.5
|
- Python 3.8.5
|
||||||
- PyPy:
|
- PyPy:
|
||||||
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
||||||
@@ -345,15 +359,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.7.0
|
- node 14.9.0
|
||||||
- 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.7
|
- go 1.14.8
|
||||||
|
- go 1.15.1
|
||||||
- boost:
|
- boost:
|
||||||
- boost 1.69.0
|
- boost 1.69.0
|
||||||
- boost 1.72.0
|
- boost 1.72.0
|
||||||
- AWS SAM CLI, version 1.0.0
|
- AWS SAM CLI, version 1.2.0
|
||||||
- Homebrew on Linux (Homebrew 2.4.9
|
- Homebrew on Linux (Homebrew 2.5.0
|
||||||
Homebrew/linuxbrew-core (git revision 4c7841; last commit 2020-08-05))
|
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08))
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||||
# Ubuntu 20.04.1 LTS
|
# Ubuntu 20.04.1 LTS
|
||||||
The following software is installed on machines with the 20200806.0 update.
|
The following software is installed on machines with the 20200908.1 update.
|
||||||
***
|
***
|
||||||
- 7-Zip 16.02
|
- 7-Zip 16.02
|
||||||
- Ansible (ansible 2.9.6)
|
- Ansible (ansible 2.9.6)
|
||||||
- AzCopy7 (available by azcopy alias) 7.3.0
|
- AzCopy7 (available by azcopy alias) 7.3.0
|
||||||
- AzCopy10 (available by azcopy10 alias) 10.5.1
|
- AzCopy10 (available by azcopy10 alias) 10.6.0
|
||||||
- Azure CLI (azure-cli 2.10.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:
|
||||||
- dnsutils
|
- dnsutils
|
||||||
@@ -65,7 +65,7 @@ The following software is installed on machines with the 20200806.0 update.
|
|||||||
- yamllint
|
- yamllint
|
||||||
- libcurl4
|
- libcurl4
|
||||||
- Alibaba Cloud CLI (3.0.56)
|
- Alibaba Cloud CLI (3.0.56)
|
||||||
- AWS CLI (aws-cli/2.0.37 Python/3.7.3 Linux/5.4.0-1022-azure exe/x86_64.ubuntu.20)
|
- AWS CLI (aws-cli/2.0.46 Python/3.7.3 Linux/5.4.0-1023-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)
|
||||||
@@ -74,19 +74,23 @@ The following software is installed on machines with the 20200806.0 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)
|
||||||
- Podman (2.0.4)
|
- Podman (2.0.6)
|
||||||
- Buildah (1.15.1)
|
- Buildah (1.15.2)
|
||||||
- Skopeo (1.1.1)
|
- Skopeo (1.1.1)
|
||||||
- Docker Compose (docker-compose version 1.26.2, build eefe0d31)
|
- Docker Compose (docker-compose version 1.27.0, build 980ec85b)
|
||||||
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
|
||||||
- Docker-Buildx (0.4.1+azure)
|
- Docker-Buildx (0.4.2+azure)
|
||||||
- .NET Core SDK:
|
- .NET Core SDK:
|
||||||
|
- 3.1.402
|
||||||
|
- 3.1.401
|
||||||
- 3.1.302
|
- 3.1.302
|
||||||
- 3.1.301
|
- 3.1.301
|
||||||
- 3.1.300
|
- 3.1.300
|
||||||
- 3.1.202
|
- 3.1.202
|
||||||
- 3.1.201
|
- 3.1.201
|
||||||
- 3.1.200
|
- 3.1.200
|
||||||
|
- 3.1.108
|
||||||
|
- 3.1.107
|
||||||
- 3.1.106
|
- 3.1.106
|
||||||
- 3.1.105
|
- 3.1.105
|
||||||
- 3.1.104
|
- 3.1.104
|
||||||
@@ -94,6 +98,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 3.1.102
|
- 3.1.102
|
||||||
- 3.1.101
|
- 3.1.101
|
||||||
- 3.1.100
|
- 3.1.100
|
||||||
|
- 2.1.810
|
||||||
|
- 2.1.809
|
||||||
- 2.1.808
|
- 2.1.808
|
||||||
- 2.1.807
|
- 2.1.807
|
||||||
- 2.1.806
|
- 2.1.806
|
||||||
@@ -104,6 +110,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.801
|
- 2.1.801
|
||||||
- 2.1.701
|
- 2.1.701
|
||||||
- 2.1.700
|
- 2.1.700
|
||||||
|
- 2.1.615
|
||||||
|
- 2.1.614
|
||||||
- 2.1.613
|
- 2.1.613
|
||||||
- 2.1.612
|
- 2.1.612
|
||||||
- 2.1.611
|
- 2.1.611
|
||||||
@@ -116,6 +124,8 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.604
|
- 2.1.604
|
||||||
- 2.1.603
|
- 2.1.603
|
||||||
- 2.1.602
|
- 2.1.602
|
||||||
|
- 2.1.518
|
||||||
|
- 2.1.517
|
||||||
- 2.1.516
|
- 2.1.516
|
||||||
- 2.1.515
|
- 2.1.515
|
||||||
- 2.1.514
|
- 2.1.514
|
||||||
@@ -139,7 +149,7 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- 2.1.301
|
- 2.1.301
|
||||||
- 2.1.300
|
- 2.1.300
|
||||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
|
||||||
- Firefox (Mozilla Firefox 79.0)
|
- Firefox (Mozilla Firefox 80.0.1)
|
||||||
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
||||||
- GNU C++ 7.5.0
|
- GNU C++ 7.5.0
|
||||||
- GNU C++ 8.4.0
|
- GNU C++ 8.4.0
|
||||||
@@ -147,35 +157,37 @@ Target: x86_64-unknown-linux-gnu
|
|||||||
- GNU Fortran 8.4.0
|
- GNU Fortran 8.4.0
|
||||||
- GNU Fortran 9.3.0
|
- GNU Fortran 9.3.0
|
||||||
- Git (2.28.0)
|
- Git (2.28.0)
|
||||||
- Git Large File Storage (LFS) (2.11.0)
|
- Git Large File Storage (LFS) (2.12.0)
|
||||||
- Git-ftp (1.6.0)
|
- Git-ftp (1.6.0)
|
||||||
- Hub CLI (2.14.2)
|
- Hub CLI (2.14.2)
|
||||||
- GitHub CLI 0.11.1
|
- GitHub CLI 0.12.0
|
||||||
- Google Chrome (Google Chrome 84.0.4147.105 )
|
- Google Chrome (Google Chrome 85.0.4183.102 )
|
||||||
- ChromeDriver 84.0.4147.30 (48b3e868b4cc0aa7e8149519690b6f6949e110a8-refs/branch-heads/4147@{#310}); 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 (304.0.0)
|
- Google Cloud SDK (308.0.0)
|
||||||
- Haskell Cabal (cabal-install version 3.2.0.0
|
- Haskell Cabal (cabal-install version 3.4.0.0
|
||||||
compiled using version 3.2.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.1)
|
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
|
||||||
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
|
||||||
- Heroku (heroku/7.42.6 linux-x64 node-v12.16.2)
|
- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
|
||||||
- HHVM (HipHop VM 4.69.1 (rel))
|
- HHVM (HipHop VM 4.74.0 (rel))
|
||||||
- ImageMagick
|
- ImageMagick
|
||||||
- Adopt OpenJDK:
|
- Adopt OpenJDK:
|
||||||
- 8 (openjdk version "1.8.0_265")
|
- 8 (openjdk version "1.8.0_265")
|
||||||
- 11 (openjdk version "11.0.8" 2020-07-14) (default)
|
- 11 (openjdk version "11.0.8" 2020-07-14) (default)
|
||||||
- Ant (Apache Ant(TM) version 1.10.7 compiled on October 24 2019)
|
- Ant (Apache Ant(TM) version 1.10.7 compiled on October 24 2019)
|
||||||
- Gradle 6.5.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.18.6)
|
- kubectl (Client Version: v1.19.0)
|
||||||
- helm (v3.2.4+g0ad800e)
|
- helm (v3.3.1+g249e521)
|
||||||
- minikube version: v1.12.2
|
- minikube version: v1.13.0
|
||||||
|
- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
|
||||||
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
- oc CLI Client Version: 4.5.0-202005291417-9933eb9
|
||||||
- Leiningen (Leiningen 2.9.4 on Java 11.0.8 OpenJDK 64-Bit Server VM)
|
- Leiningen (Leiningen 2.9.4 on Java 11.0.8 OpenJDK 64-Bit Server VM)
|
||||||
- Mercurial (Mercurial Distributed SCM (version 5.3.1))
|
- Mercurial (Mercurial Distributed SCM (version 5.3.1))
|
||||||
- Miniconda (conda 4.8.3)
|
- Miniconda (conda 4.8.3)
|
||||||
- Mono (Mono JIT compiler version 6.10.0.104 (tarball Fri Jun 26 19:38:44 UTC 2020))
|
- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 14:02:38 UTC 2020))
|
||||||
|
- NuGet (NuGet Version: 5.5.0.6382)
|
||||||
- MySQL (mysql Ver 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)))
|
- MySQL (mysql Ver 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)))
|
||||||
- MySQL Server (user:root password:root)
|
- MySQL Server (user:root password:root)
|
||||||
- MS SQL Server Client Tools
|
- MS SQL Server Client Tools
|
||||||
@@ -187,63 +199,66 @@ compiled using version 3.2.0.0 of the Cabal library )
|
|||||||
Local version: Unknown)
|
Local version: Unknown)
|
||||||
- n (6.7.0)
|
- n (6.7.0)
|
||||||
- Parcel (1.12.4)
|
- Parcel (1.12.4)
|
||||||
- TypeScript (Version 3.9.7)
|
- TypeScript (Version 4.0.2)
|
||||||
- Webpack (4.44.1)
|
- Webpack (4.44.1)
|
||||||
- Webpack CLI (3.3.12)
|
- Webpack CLI (3.3.12)
|
||||||
- Yarn (1.22.4)
|
- Yarn (1.22.5)
|
||||||
- Newman (5.1.2)
|
- Newman (5.2.0)
|
||||||
- Bazel (bazel 3.4.1)
|
- Bazel (bazel 3.5.0)
|
||||||
- Bazelisk (1.5.0)
|
- 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.8 (cli) (built: Jul 13 2020 16:46:22) ( NTS ))
|
- PHP 7.4 (PHP 7.4.9 (cli) (built: Aug 7 2020 14:30:01) ( 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.10 2020-08-03 11:35:19)
|
- Composer (Composer version 1.10.12 2020-09-08 22:58:51)
|
||||||
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
||||||
- OpenSSL 1.1.1f 31 Mar 2020
|
|
||||||
- Libssl 1.1.1f-1ubuntu2
|
|
||||||
- Pollinate
|
- Pollinate
|
||||||
- psql (PostgreSQL) 12.3
|
- psql (PostgreSQL) 12.4
|
||||||
- Powershell (PowerShell 7.0.3)
|
- Powershell (PowerShell 7.0.3)
|
||||||
|
- Pulumi v2.9.2
|
||||||
- ruby (2.7.0p0)
|
- ruby (2.7.0p0)
|
||||||
- gem (3.1.2)
|
- gem (3.1.2)
|
||||||
|
- OpenSSL 1.1.1f 31 Mar 2020
|
||||||
|
- Libssl 1.1.1f-1ubuntu2
|
||||||
- R 4.0.2
|
- R 4.0.2
|
||||||
- rustup (1.22.1)
|
- rustup (1.22.1)
|
||||||
- rust (1.45.2)
|
- rust (1.46.0)
|
||||||
- cargo (1.45.1)
|
- cargo (1.46.0)
|
||||||
- rustfmt (1.4.17-stable)
|
- rustfmt (1.4.18-stable)
|
||||||
- clippy (0.0.212)
|
- clippy (0.0.212)
|
||||||
- rustdoc (1.45.2)
|
- rustdoc (1.46.0)
|
||||||
- bindgen (0.54.1)
|
- bindgen (0.55.1)
|
||||||
- cbindgen (0.14.3)
|
- cbindgen (0.14.4)
|
||||||
- cargo audit (0.12.0)
|
- cargo audit (0.12.0)
|
||||||
- cargo outdated (v0.9.11)
|
- cargo outdated (v0.9.11)
|
||||||
- Julia (julia version 1.5.0)
|
- Julia (julia version 1.5.1)
|
||||||
- sbt (copying runtime jar...
|
- sbt (copying runtime jar...
|
||||||
1.3.13)
|
1.3.13)
|
||||||
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
||||||
- Sphinx Open Source Search Server
|
- Sphinx Open Source Search Server
|
||||||
- Subversion (svn, version 1.13.0 (r1867053))
|
- Subversion (svn, version 1.13.0 (r1867053))
|
||||||
- Terraform (Terraform v0.12.29)
|
- Terraform (Terraform v0.13.2)
|
||||||
- Packer (1.6.1)
|
- Packer (1.6.2)
|
||||||
- Vcpkg 2020.06.15-unknownhash
|
- Vcpkg 2020.06.15-unknownhash
|
||||||
- Vercel CLI (19.2.0)
|
- Vercel CLI (20.1.0)
|
||||||
|
- MongoDB on Linux v4.4.0
|
||||||
- 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)
|
||||||
- Google Repository 58
|
- Google Repository 58
|
||||||
- Google Play services 49
|
- Google Play services 49
|
||||||
- CMake 3.10.2.4988404
|
- CMake 3.10.2.4988404
|
||||||
- Android Support Repository 47.0.0
|
|
||||||
- Android SDK Platform-Tools 30.0.4
|
- Android SDK Platform-Tools 30.0.4
|
||||||
- Android SDK Platform 30
|
- Android SDK Platform 30
|
||||||
- Android SDK Platform 29
|
- Android SDK Platform 29
|
||||||
- Android SDK Platform 28
|
- Android SDK Platform 28
|
||||||
- Android SDK Platform 27
|
- Android SDK Platform 27
|
||||||
- Android SDK Patch Applier v4
|
- Android SDK Patch Applier v4
|
||||||
|
- Android SDK Build-Tools 30.0.2
|
||||||
- Android SDK Build-Tools 30.0.1
|
- Android SDK Build-Tools 30.0.1
|
||||||
- Android SDK Build-Tools 30.0.0
|
- Android SDK Build-Tools 30.0.0
|
||||||
- Android SDK Build-Tools 29.0.3
|
- Android SDK Build-Tools 29.0.3
|
||||||
@@ -258,16 +273,17 @@ apt-get update
|
|||||||
- Android SDK Build-Tools 27.0.1
|
- Android SDK Build-Tools 27.0.1
|
||||||
- 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.5.0)
|
- Az Module (4.6.1)
|
||||||
- Cached container images
|
- Cached container images
|
||||||
- node:10 (Digest: sha256:cf3ee6a5a1b1916c7a2e4fb51eb7ecba1afe186739677d62e9c1bb2cb1c7d6b0)
|
- jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
|
||||||
- node:12 (Digest: sha256:d0738468dfc7cedb7d260369e0546fd7ee8731cfd67136f6023d070ad9679090)
|
- node:10 (Digest: sha256:304c59f827930ae1a4a9775aec5837c8f95c3d41b5e6d7c0a329b4eb8c4cc8a8)
|
||||||
- buildpack-deps:stretch (Digest: sha256:34a18637ed801407f7a17a29575e82264fb0818f9b6a0c890f8a6530afea43dc)
|
- node:12 (Digest: sha256:099346a8e9c861b406c9bbb1f109125c7263868e5447cc57d6d564e1fec8a5cf)
|
||||||
|
- buildpack-deps:stretch (Digest: sha256:82a686ba95fdf2bf4a5f5264e8e55b8aa272ffcedaed7826777f08de0d9e1146)
|
||||||
|
- buildpack-deps:buster (Digest: sha256:0f7be4c25fadb2b8aee537cdac00a684b09057e66368683bbf22adf477e05faa)
|
||||||
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
- debian:9 (Digest: sha256:335ecf9e8d9b2206c2e9e7f8b09547faa9f868e694f7c5be14c38be15ea8a7cf)
|
||||||
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
- debian:8 (Digest: sha256:8a0f2603166345b4d7bbf4842137b2ffcb492ece20d15f963f08aa26670f82c7)
|
||||||
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
- node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
|
||||||
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
- node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
|
||||||
- jekyll/builder:latest (Digest: sha256:98cda359955f25f18c4bcc78536cdfd30e7ded689b1f52fcd513c75cbe4e751e)
|
|
||||||
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
||||||
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
||||||
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
||||||
@@ -279,14 +295,14 @@ apt-get update
|
|||||||
- Ruby 2.6.6
|
- Ruby 2.6.6
|
||||||
- Ruby 2.7.1
|
- Ruby 2.7.1
|
||||||
- Python (Python 2.7.18rc1)
|
- Python (Python 2.7.18rc1)
|
||||||
- pip (pip 20.2.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7))
|
- pip (pip 20.2.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7))
|
||||||
- Python3 (Python 3.8.2)
|
- Python3 (Python 3.8.2)
|
||||||
- pip3 (pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8))
|
- pip3 (pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8))
|
||||||
- Python:
|
- Python:
|
||||||
- Python 2.7.18
|
- Python 2.7.18
|
||||||
- Python 3.5.9
|
- Python 3.5.10
|
||||||
- Python 3.6.11
|
- Python 3.6.12
|
||||||
- Python 3.7.8
|
- Python 3.7.9
|
||||||
- Python 3.8.5
|
- Python 3.8.5
|
||||||
- PyPy:
|
- PyPy:
|
||||||
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
- PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
|
||||||
@@ -295,9 +311,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.7.0
|
- node 14.9.0
|
||||||
- go:
|
- go:
|
||||||
- go 1.14.7
|
- go 1.14.8
|
||||||
- AWS SAM CLI, version 1.0.0
|
- go 1.15.1
|
||||||
- Homebrew on Linux (Homebrew 2.4.9
|
- AWS SAM CLI, version 1.2.0
|
||||||
Homebrew/linuxbrew-core (git revision 4c7841; last commit 2020-08-05))
|
- Homebrew on Linux (Homebrew 2.5.0
|
||||||
|
Homebrew/linuxbrew-core (git revision 3199c; last commit 2020-09-08))
|
||||||
|
|||||||
@@ -11,8 +11,10 @@ systemctl disable apt-daily-upgrade.service
|
|||||||
# Configure apt to always assume Y
|
# Configure apt to always assume Y
|
||||||
echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
||||||
|
|
||||||
# Use apt-fast for parallel downloads
|
# Install aria2 and jq
|
||||||
apt-get install aria2
|
apt-get install aria2
|
||||||
|
apt-get install jq
|
||||||
|
# Use apt-fast for parallel downloads
|
||||||
add-apt-repository -y ppa:apt-fast/stable
|
add-apt-repository -y ppa:apt-fast/stable
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y install apt-fast
|
apt-get install apt-fast
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
################################################################################
|
|
||||||
## File: containercache.sh
|
|
||||||
## Desc: Prepulls Docker images used in build tasks and templates
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
source $HELPER_SCRIPTS/document.sh
|
|
||||||
|
|
||||||
# Check prereqs
|
|
||||||
echo "Checking prereqs for image pulls"
|
|
||||||
if ! command -v docker; then
|
|
||||||
echo "Docker is not installed, cant pull images"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Information output
|
|
||||||
systemctl status docker --no-pager
|
|
||||||
|
|
||||||
# Pull images
|
|
||||||
images=(
|
|
||||||
docker.io/jekyll/builder
|
|
||||||
mcr.microsoft.com/azure-pipelines/node8-typescript
|
|
||||||
)
|
|
||||||
|
|
||||||
for image in "${images[@]}"; do
|
|
||||||
docker pull "$image"
|
|
||||||
done
|
|
||||||
|
|
||||||
## 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}})')"
|
|
||||||
@@ -13,7 +13,7 @@ download_with_retries() {
|
|||||||
local NAME="${3:-${URL##*/}}"
|
local NAME="${3:-${URL##*/}}"
|
||||||
local COMPRESSED="$4"
|
local COMPRESSED="$4"
|
||||||
|
|
||||||
if [ $COMPRESSED == "compressed" ]; then
|
if [[ $COMPRESSED == "compressed" ]]; then
|
||||||
COMMAND="curl $URL -4 -sL --compressed -o '$DEST/$NAME'"
|
COMMAND="curl $URL -4 -sL --compressed -o '$DEST/$NAME'"
|
||||||
else
|
else
|
||||||
COMMAND="curl $URL -4 -sL -o '$DEST/$NAME'"
|
COMMAND="curl $URL -4 -sL -o '$DEST/$NAME'"
|
||||||
|
|||||||
@@ -1,171 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
################################################################################
|
|
||||||
## File: android.sh
|
|
||||||
## Desc: Installs Android SDK
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
|
||||||
source $HELPER_SCRIPTS/document.sh
|
|
||||||
|
|
||||||
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
|
||||||
ANDROID_ROOT=/usr/local/lib/android
|
|
||||||
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
|
|
||||||
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
|
||||||
|
|
||||||
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
|
|
||||||
echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
|
||||||
|
|
||||||
# Create android sdk directory
|
|
||||||
mkdir -p ${ANDROID_SDK_ROOT}
|
|
||||||
|
|
||||||
# Download the latest command line tools so that we can accept all of the licenses.
|
|
||||||
# See https://developer.android.com/studio/#command-tools
|
|
||||||
wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
|
|
||||||
unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
|
|
||||||
rm -f android-sdk.zip
|
|
||||||
|
|
||||||
# Check sdk manager installation
|
|
||||||
/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
|
|
||||||
if [ $? -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "Android SDK manager was installed"
|
|
||||||
else
|
|
||||||
echo "Android SDK manager was not installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add required permissions
|
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
|
||||||
|
|
||||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
|
||||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
|
|
||||||
"ndk-bundle" \
|
|
||||||
"platform-tools" \
|
|
||||||
"platforms;android-30" \
|
|
||||||
"platforms;android-29" \
|
|
||||||
"platforms;android-28" \
|
|
||||||
"platforms;android-27" \
|
|
||||||
"platforms;android-26" \
|
|
||||||
"platforms;android-25" \
|
|
||||||
"platforms;android-24" \
|
|
||||||
"platforms;android-23" \
|
|
||||||
"platforms;android-22" \
|
|
||||||
"platforms;android-21" \
|
|
||||||
"platforms;android-19" \
|
|
||||||
"platforms;android-17" \
|
|
||||||
"platforms;android-15" \
|
|
||||||
"platforms;android-10" \
|
|
||||||
"build-tools;30.0.1" \
|
|
||||||
"build-tools;30.0.0" \
|
|
||||||
"build-tools;29.0.3" \
|
|
||||||
"build-tools;29.0.2" \
|
|
||||||
"build-tools;29.0.0" \
|
|
||||||
"build-tools;28.0.3" \
|
|
||||||
"build-tools;28.0.2" \
|
|
||||||
"build-tools;28.0.1" \
|
|
||||||
"build-tools;28.0.0" \
|
|
||||||
"build-tools;27.0.3" \
|
|
||||||
"build-tools;27.0.2" \
|
|
||||||
"build-tools;27.0.1" \
|
|
||||||
"build-tools;27.0.0" \
|
|
||||||
"build-tools;26.0.3" \
|
|
||||||
"build-tools;26.0.2" \
|
|
||||||
"build-tools;26.0.1" \
|
|
||||||
"build-tools;26.0.0" \
|
|
||||||
"build-tools;25.0.3" \
|
|
||||||
"build-tools;25.0.2" \
|
|
||||||
"build-tools;25.0.1" \
|
|
||||||
"build-tools;25.0.0" \
|
|
||||||
"build-tools;24.0.3" \
|
|
||||||
"build-tools;24.0.2" \
|
|
||||||
"build-tools;24.0.1" \
|
|
||||||
"build-tools;24.0.0" \
|
|
||||||
"build-tools;23.0.3" \
|
|
||||||
"build-tools;23.0.2" \
|
|
||||||
"build-tools;23.0.1" \
|
|
||||||
"build-tools;22.0.1" \
|
|
||||||
"build-tools;21.1.2" \
|
|
||||||
"build-tools;20.0.0" \
|
|
||||||
"build-tools;19.1.0" \
|
|
||||||
"build-tools;17.0.0" \
|
|
||||||
"extras;android;m2repository" \
|
|
||||||
"extras;google;m2repository" \
|
|
||||||
"extras;google;google_play_services" \
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" \
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1" \
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" \
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" \
|
|
||||||
"add-ons;addon-google_apis-google-24" \
|
|
||||||
"add-ons;addon-google_apis-google-23" \
|
|
||||||
"add-ons;addon-google_apis-google-22" \
|
|
||||||
"add-ons;addon-google_apis-google-21" \
|
|
||||||
"cmake;3.6.4111459" \
|
|
||||||
"cmake;3.10.2.4988404" \
|
|
||||||
"patcher;v4"
|
|
||||||
|
|
||||||
# Document what was added to the image
|
|
||||||
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)"
|
|
||||||
DocumentInstalledItem "Google APIs 24"
|
|
||||||
DocumentInstalledItem "Google APIs 23"
|
|
||||||
DocumentInstalledItem "Google APIs 22"
|
|
||||||
DocumentInstalledItem "Google APIs 21"
|
|
||||||
DocumentInstalledItem "CMake $(ls ${ANDROID_SDK_ROOT}/cmake 2>&1)"
|
|
||||||
DocumentInstalledItem "Android Support Repository 47.0.0"
|
|
||||||
DocumentInstalledItem "Android Solver for ConstraintLayout 1.0.2"
|
|
||||||
DocumentInstalledItem "Android Solver for ConstraintLayout 1.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Platform-Tools $(cat ${ANDROID_SDK_ROOT}/platform-tools/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 30"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 29"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 28"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 27"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 26"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 25"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 24"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 23"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 22"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 21"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 19"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 17"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 15"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 10"
|
|
||||||
DocumentInstalledItem "Android SDK Patch Applier v4"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 22.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 21.1.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 20.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 19.1.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 17.0.0"
|
|
||||||
DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"
|
|
||||||
DocumentInstalledItem "Android ConstraintLayout 1.0.2"
|
|
||||||
DocumentInstalledItem "Android ConstraintLayout 1.0.1"
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
################################################################################
|
|
||||||
## File: android.sh
|
|
||||||
## Desc: Installs Android SDK
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
|
||||||
source $HELPER_SCRIPTS/document.sh
|
|
||||||
|
|
||||||
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
|
||||||
ANDROID_ROOT=/usr/local/lib/android
|
|
||||||
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
|
|
||||||
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
|
||||||
|
|
||||||
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
|
|
||||||
echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
|
||||||
|
|
||||||
# Create android sdk directory
|
|
||||||
mkdir -p ${ANDROID_SDK_ROOT}
|
|
||||||
|
|
||||||
# Download the latest command line tools so that we can accept all of the licenses.
|
|
||||||
# See https://developer.android.com/studio/#command-tools
|
|
||||||
wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
|
|
||||||
unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
|
|
||||||
rm -f android-sdk.zip
|
|
||||||
|
|
||||||
# Add required permissions
|
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
|
||||||
|
|
||||||
# Check sdk manager installation
|
|
||||||
/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
|
|
||||||
if [ $? -eq 0 ]
|
|
||||||
then
|
|
||||||
echo "Android SDK manager was installed"
|
|
||||||
else
|
|
||||||
echo "Android SDK manager was not installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
|
||||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
|
|
||||||
"ndk-bundle" \
|
|
||||||
"platform-tools" \
|
|
||||||
"platforms;android-30" \
|
|
||||||
"platforms;android-29" \
|
|
||||||
"platforms;android-28" \
|
|
||||||
"platforms;android-27" \
|
|
||||||
"platforms;android-26" \
|
|
||||||
"platforms;android-25" \
|
|
||||||
"platforms;android-24" \
|
|
||||||
"platforms;android-23" \
|
|
||||||
"platforms;android-22" \
|
|
||||||
"platforms;android-21" \
|
|
||||||
"platforms;android-19" \
|
|
||||||
"platforms;android-17" \
|
|
||||||
"build-tools;30.0.1" \
|
|
||||||
"build-tools;30.0.0" \
|
|
||||||
"build-tools;29.0.3" \
|
|
||||||
"build-tools;29.0.2" \
|
|
||||||
"build-tools;29.0.0" \
|
|
||||||
"build-tools;28.0.3" \
|
|
||||||
"build-tools;28.0.2" \
|
|
||||||
"build-tools;28.0.1" \
|
|
||||||
"build-tools;28.0.0" \
|
|
||||||
"build-tools;27.0.3" \
|
|
||||||
"build-tools;27.0.2" \
|
|
||||||
"build-tools;27.0.1" \
|
|
||||||
"build-tools;27.0.0" \
|
|
||||||
"build-tools;26.0.3" \
|
|
||||||
"build-tools;26.0.2" \
|
|
||||||
"build-tools;26.0.1" \
|
|
||||||
"build-tools;26.0.0" \
|
|
||||||
"build-tools;25.0.3" \
|
|
||||||
"build-tools;25.0.2" \
|
|
||||||
"build-tools;25.0.1" \
|
|
||||||
"build-tools;25.0.0" \
|
|
||||||
"build-tools;24.0.3" \
|
|
||||||
"build-tools;24.0.2" \
|
|
||||||
"build-tools;24.0.1" \
|
|
||||||
"build-tools;24.0.0" \
|
|
||||||
"build-tools;23.0.3" \
|
|
||||||
"build-tools;23.0.2" \
|
|
||||||
"build-tools;23.0.1" \
|
|
||||||
"build-tools;22.0.1" \
|
|
||||||
"build-tools;21.1.2" \
|
|
||||||
"build-tools;20.0.0" \
|
|
||||||
"build-tools;19.1.0" \
|
|
||||||
"build-tools;17.0.0" \
|
|
||||||
"extras;android;m2repository" \
|
|
||||||
"extras;google;m2repository" \
|
|
||||||
"extras;google;google_play_services" \
|
|
||||||
"add-ons;addon-google_apis-google-24" \
|
|
||||||
"add-ons;addon-google_apis-google-23" \
|
|
||||||
"add-ons;addon-google_apis-google-22" \
|
|
||||||
"add-ons;addon-google_apis-google-21" \
|
|
||||||
"cmake;3.6.4111459" \
|
|
||||||
"cmake;3.10.2.4988404" \
|
|
||||||
"patcher;v4"
|
|
||||||
|
|
||||||
# Document what was added to the image
|
|
||||||
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)"
|
|
||||||
DocumentInstalledItem "Google APIs 24"
|
|
||||||
DocumentInstalledItem "Google APIs 23"
|
|
||||||
DocumentInstalledItem "Google APIs 22"
|
|
||||||
DocumentInstalledItem "Google APIs 21"
|
|
||||||
DocumentInstalledItem "CMake $(ls ${ANDROID_SDK_ROOT}/cmake 2>&1)"
|
|
||||||
DocumentInstalledItem "Android Support Repository 47.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Platform-Tools $(cat ${ANDROID_SDK_ROOT}/platform-tools/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 30"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 29"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 28"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 27"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 26"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 25"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 24"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 23"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 22"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 21"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 19"
|
|
||||||
DocumentInstalledItem "Android SDK Platform 17"
|
|
||||||
DocumentInstalledItem "Android SDK Patch Applier v4"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 26.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 25.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 24.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 23.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 22.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 21.1.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 20.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 19.1.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 17.0.0"
|
|
||||||
DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"
|
|
||||||
@@ -27,10 +27,10 @@ Function Install-Asset {
|
|||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
# Get toolset content
|
# Get toolset content
|
||||||
$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
|
$toolset = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
|
||||||
$toolsToInstall = @("Python", "Node", "Boost", "Go")
|
$toolsToInstall = @("Python", "Node", "Boost", "Go")
|
||||||
|
|
||||||
$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache | Where-Object {$ToolsToInstall -contains $_.Name}
|
$tools = ConvertFrom-Json -InputObject $toolset | Select-Object -ExpandProperty toolcache | Where-Object {$ToolsToInstall -contains $_.Name}
|
||||||
|
|
||||||
foreach ($tool in $tools) {
|
foreach ($tool in $tools) {
|
||||||
# Get versions manifest for current tool
|
# Get versions manifest for current tool
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ $toolsExecutables = @{
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Get toolset content
|
# Get toolset content
|
||||||
$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
|
$toolset = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
|
||||||
$tools = ConvertFrom-Json -InputObject $toolsetJson | 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):'`""
|
Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItem '$($tool.name):'`""
|
||||||
|
|||||||
@@ -27,9 +27,6 @@ wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux
|
|||||||
unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
|
unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
|
||||||
rm -f android-sdk.zip
|
rm -f android-sdk.zip
|
||||||
|
|
||||||
# Add required permissions
|
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
|
||||||
|
|
||||||
if isUbuntu20 ; then
|
if isUbuntu20 ; then
|
||||||
# Sdk manager doesn't work with Java > 8, set version 8 explicitly
|
# Sdk manager doesn't work with Java > 8, set version 8 explicitly
|
||||||
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" /usr/local/lib/android/sdk/tools/bin/sdkmanager
|
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" /usr/local/lib/android/sdk/tools/bin/sdkmanager
|
||||||
@@ -45,56 +42,54 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
|
platforms=$(jq -r '.android.platform_list[]|"platforms;" + .' $toolset)
|
||||||
|
buildtools=$(jq -r '.android.build_tools[]|"build-tools;" + .' $toolset)
|
||||||
|
extras=$(jq -r '.android.extra_list[]|"extras;" + .' $toolset)
|
||||||
|
addons=$(jq -r '.android.addon_list[]|"add-ons;" + .' $toolset)
|
||||||
|
additional=$(jq -r '.android.additional_tools[]' $toolset)
|
||||||
|
|
||||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
||||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
|
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager $platforms $buildtools $extras $google_api_list $addons $additional
|
||||||
"ndk-bundle" \
|
|
||||||
"platform-tools" \
|
|
||||||
"platforms;android-30" \
|
|
||||||
"platforms;android-29" \
|
|
||||||
"platforms;android-28" \
|
|
||||||
"platforms;android-27" \
|
|
||||||
"build-tools;30.0.1" \
|
|
||||||
"build-tools;30.0.0" \
|
|
||||||
"build-tools;29.0.3" \
|
|
||||||
"build-tools;29.0.2" \
|
|
||||||
"build-tools;29.0.0" \
|
|
||||||
"build-tools;28.0.3" \
|
|
||||||
"build-tools;28.0.2" \
|
|
||||||
"build-tools;28.0.1" \
|
|
||||||
"build-tools;28.0.0" \
|
|
||||||
"build-tools;27.0.3" \
|
|
||||||
"build-tools;27.0.2" \
|
|
||||||
"build-tools;27.0.1" \
|
|
||||||
"build-tools;27.0.0" \
|
|
||||||
"extras;android;m2repository" \
|
|
||||||
"extras;google;m2repository" \
|
|
||||||
"extras;google;google_play_services" \
|
|
||||||
"cmake;3.10.2.4988404" \
|
|
||||||
"patcher;v4"
|
|
||||||
|
|
||||||
# Document what was added to the image
|
# Document what was added to the image
|
||||||
|
|
||||||
|
google_api_versions_list=$(echo "$addons"|awk -F- '/addon-google_apis-google/ {print $5}')
|
||||||
|
constraint_layout_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout;/ {print $8}')
|
||||||
|
constraint_layout_solver_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout-solver;/ {print $8}')
|
||||||
|
platform_versions_list=$(echo "$platforms"|awk -F- '{print $2}')
|
||||||
|
buildtools_versions_list=$(echo "$buildtools"|awk -F';' '{print $2}')
|
||||||
|
|
||||||
|
# Add required permissions
|
||||||
|
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
||||||
|
|
||||||
echo "Lastly, document what was added to the metadata file"
|
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 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)"
|
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)"
|
DocumentInstalledItem "CMake $(ls ${ANDROID_SDK_ROOT}/cmake 2>&1)"
|
||||||
DocumentInstalledItem "Android Support Repository 47.0.0"
|
|
||||||
|
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)"
|
DocumentInstalledItem "Android SDK Platform-Tools $(cat ${ANDROID_SDK_ROOT}/platform-tools/source.properties 2>&1 | grep Pkg.Revision | cut -d '=' -f 2)"
|
||||||
DocumentInstalledItem "Android SDK Platform 30"
|
for version in $platform_versions_list; do
|
||||||
DocumentInstalledItem "Android SDK Platform 29"
|
DocumentInstalledItem "Android SDK Platform $version"
|
||||||
DocumentInstalledItem "Android SDK Platform 28"
|
done
|
||||||
DocumentInstalledItem "Android SDK Platform 27"
|
|
||||||
DocumentInstalledItem "Android SDK Patch Applier v4"
|
DocumentInstalledItem "Android SDK Patch Applier v4"
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 30.0.0"
|
for version in $buildtools_versions_list; do
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.3"
|
DocumentInstalledItem "Android SDK Build-Tools $version"
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.2"
|
done
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 29.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 28.0.0"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.3"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.2"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.1"
|
|
||||||
DocumentInstalledItem "Android SDK Build-Tools 27.0.0"
|
|
||||||
DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"
|
DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)"
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
source $HELPER_SCRIPTS/document.sh
|
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/awslabs/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')
|
||||||
TarballPath="/tmp/aws-sam-cli.tar.gz"
|
TarballPath="/tmp/aws-sam-cli.tar.gz"
|
||||||
wget $TarballUrl -O $TarballPath
|
wget $TarballUrl -O $TarballPath
|
||||||
tar -xzvf $TarballPath -C /tmp
|
tar -xzvf $TarballPath -C /tmp
|
||||||
cd /tmp/awslabs-aws-sam-cli*
|
cd /tmp/aws-aws-sam-cli*
|
||||||
|
|
||||||
mkdir /opt/python-aws-sam-cli
|
mkdir /opt/python-aws-sam-cli
|
||||||
cp -r /opt/hostedtoolcache/Python/3.7* /opt/python-aws-sam-cli
|
cp -r /opt/hostedtoolcache/Python/3.7* /opt/python-aws-sam-cli
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ source $HELPER_SCRIPTS/os.sh
|
|||||||
if isUbuntu20 ; then
|
if isUbuntu20 ; then
|
||||||
versions=$(pwsh -Command '(Find-Module -Name Az).Version')
|
versions=$(pwsh -Command '(Find-Module -Name Az).Version')
|
||||||
else
|
else
|
||||||
toolsetJson="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
versions=$(cat $toolsetJson | jq -r '.azureModules[] | select(.name | contains("az")) | .versions[]')
|
versions=$(jq -r '.azureModules[] | select(.name | contains("az")) | .versions[]' $toolset)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 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)
|
||||||
|
|||||||
@@ -4,90 +4,13 @@
|
|||||||
## Desc: Installs basic command line utilities and dev packages
|
## Desc: Installs basic command line utilities and dev packages
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
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/document.sh
|
||||||
source $HELPER_SCRIPTS/os.sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
common_packages="dnsutils
|
|
||||||
iproute2
|
|
||||||
iputils-ping
|
|
||||||
libunwind8
|
|
||||||
locales
|
|
||||||
openssh-client
|
|
||||||
tzdata
|
|
||||||
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
|
|
||||||
zsync
|
|
||||||
gnupg2
|
|
||||||
lib32z1
|
|
||||||
texinfo
|
|
||||||
libsqlite3-dev
|
|
||||||
libc++-dev
|
|
||||||
libc++abi-dev"
|
|
||||||
|
|
||||||
cmd_packages="curl
|
|
||||||
file
|
|
||||||
ftp
|
|
||||||
jq
|
|
||||||
netcat
|
|
||||||
ssh
|
|
||||||
parallel
|
|
||||||
rsync
|
|
||||||
shellcheck
|
|
||||||
sudo
|
|
||||||
telnet
|
|
||||||
time
|
|
||||||
unzip
|
|
||||||
zip
|
|
||||||
wget
|
|
||||||
m4
|
|
||||||
bison
|
|
||||||
flex
|
|
||||||
patchelf
|
|
||||||
bzip2
|
|
||||||
sqlite3
|
|
||||||
brotli
|
|
||||||
yamllint"
|
|
||||||
|
|
||||||
if isUbuntu20 ; then
|
|
||||||
echo "Install python2"
|
|
||||||
apt-get install -y --no-install-recommends python-is-python2
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Install libcurl"
|
|
||||||
if isUbuntu16 || isUbuntu18; then
|
|
||||||
libcurelVer="libcurl3"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if isUbuntu20 ; then
|
|
||||||
libcurelVer="libcurl4"
|
|
||||||
fi
|
|
||||||
|
|
||||||
apt-get install -y --no-install-recommends $libcurelVer
|
|
||||||
|
|
||||||
# install additional packages only for Ubuntu16.04
|
|
||||||
if isUbuntu16; then
|
|
||||||
common_packages="$common_packages
|
|
||||||
libicu55"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
|
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
|
||||||
|
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
|
||||||
for package in $common_packages $cmd_packages; do
|
for package in $common_packages $cmd_packages; do
|
||||||
echo "Install $package"
|
echo "Install $package"
|
||||||
apt-get install -y --no-install-recommends $package
|
apt-get install -y --no-install-recommends $package
|
||||||
@@ -108,5 +31,3 @@ DocumentInstalledItem "Basic packages:"
|
|||||||
for package in $common_packages $cmd_packages; do
|
for package in $common_packages $cmd_packages; do
|
||||||
DocumentInstalledItemIndent $package
|
DocumentInstalledItemIndent $package
|
||||||
done
|
done
|
||||||
|
|
||||||
DocumentInstalledItemIndent "$libcurelVer"
|
|
||||||
|
|||||||
@@ -19,3 +19,7 @@ AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
|||||||
mkdir $AGENT_TOOLSDIRECTORY
|
mkdir $AGENT_TOOLSDIRECTORY
|
||||||
echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
|
echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
|
||||||
chmod -R 777 $AGENT_TOOLSDIRECTORY
|
chmod -R 777 $AGENT_TOOLSDIRECTORY
|
||||||
|
|
||||||
|
# https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
|
||||||
|
# https://www.suse.com/support/kb/doc/?id=000016692
|
||||||
|
echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
|
||||||
@@ -3,19 +3,20 @@
|
|||||||
## File: docker-moby.sh
|
## File: docker-moby.sh
|
||||||
## Desc: Installs docker onto the image
|
## Desc: Installs docker onto the image
|
||||||
################################################################################
|
################################################################################
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/document.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
|
||||||
|
|
||||||
docker_package=moby
|
|
||||||
|
|
||||||
# There is no stable docker-moby for Ubuntu 20 at the moment
|
# There is no stable docker-moby for Ubuntu 20 at the moment
|
||||||
if isUbuntu20 ; then
|
if isUbuntu20 ; then
|
||||||
add-apt-repository "deb [arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod testing main"
|
add-apt-repository "deb [arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod testing main"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Check to see if docker is already installed
|
# Check to see if docker is already installed
|
||||||
|
docker_package=moby
|
||||||
echo "Determing if Docker ($docker_package) is installed"
|
echo "Determing if Docker ($docker_package) is installed"
|
||||||
if ! IsPackageInstalled $docker_package; then
|
if ! IsPackageInstalled $docker_package; then
|
||||||
echo "Docker ($docker_package) was not found. Installing..."
|
echo "Docker ($docker_package) was not found. Installing..."
|
||||||
@@ -44,26 +45,17 @@ else
|
|||||||
echo "Docker-moby and Docker-buildx checking the successfull"
|
echo "Docker-moby and Docker-buildx checking the successfull"
|
||||||
# Docker daemon takes time to come up after installing
|
# Docker daemon takes time to come up after installing
|
||||||
sleep 10
|
sleep 10
|
||||||
set -e
|
|
||||||
docker info
|
docker info
|
||||||
set +e
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker pull node:10
|
# Pull images
|
||||||
docker pull node:12
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
docker pull buildpack-deps:stretch
|
images=$(jq -r '.docker.images[]' $toolset)
|
||||||
docker pull buildpack-deps:buster
|
for image in $images; do
|
||||||
docker pull node:10-alpine
|
docker pull "$image"
|
||||||
docker pull node:12-alpine
|
done
|
||||||
docker pull debian:8
|
|
||||||
docker pull debian:9
|
|
||||||
docker pull alpine:3.7
|
|
||||||
docker pull alpine:3.8
|
|
||||||
docker pull alpine:3.9
|
|
||||||
docker pull alpine:3.10
|
|
||||||
docker pull ubuntu:14.04
|
|
||||||
|
|
||||||
## Add version information to the metadata file
|
# Add version information to the metadata file
|
||||||
echo "Documenting Docker version"
|
echo "Documenting Docker version"
|
||||||
docker_version=$(docker -v)
|
docker_version=$(docker -v)
|
||||||
DocumentInstalledItem "Docker-Moby ($docker_version)"
|
DocumentInstalledItem "Docker-Moby ($docker_version)"
|
||||||
@@ -71,3 +63,9 @@ DocumentInstalledItem "Docker-Moby ($docker_version)"
|
|||||||
echo "Documenting Docker-buildx version"
|
echo "Documenting Docker-buildx version"
|
||||||
DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2)
|
DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2)
|
||||||
DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)"
|
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}})')"
|
||||||
|
|||||||
@@ -3,9 +3,11 @@
|
|||||||
## File: git.sh
|
## File: git.sh
|
||||||
## Desc: Installs Git
|
## Desc: Installs Git
|
||||||
################################################################################
|
################################################################################
|
||||||
|
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"/document.sh
|
||||||
|
source "$HELPER_SCRIPTS"/install.sh
|
||||||
|
|
||||||
## Install git
|
## Install git
|
||||||
add-apt-repository ppa:git-core/ppa -y
|
add-apt-repository ppa:git-core/ppa -y
|
||||||
@@ -46,7 +48,13 @@ DocumentInstalledItem "Git Large File Storage (LFS) ($(git-lfs --version 2>&1 |
|
|||||||
DocumentInstalledItem "Git-ftp ($(git-ftp --version | cut -d ' ' -f 3))"
|
DocumentInstalledItem "Git-ftp ($(git-ftp --version | cut -d ' ' -f 3))"
|
||||||
|
|
||||||
#Install hub
|
#Install hub
|
||||||
snap install hub --classic
|
tmp_hub="/tmp/hub"
|
||||||
|
mkdir -p "$tmp_hub"
|
||||||
|
url=$(curl -s https://api.github.com/repos/github/hub/releases/latest | jq -r '.assets[].browser_download_url | select(contains("hub-linux-amd64"))')
|
||||||
|
download_with_retries "$url" "$tmp_hub"
|
||||||
|
tar xzvf "$tmp_hub"/hub-linux-amd64-*.tgz --strip-components 1 -C "$tmp_hub"
|
||||||
|
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))"
|
DocumentInstalledItem "Hub CLI ($(hub --version | grep "hub version" | cut -d ' ' -f 3))"
|
||||||
|
|||||||
@@ -10,6 +10,15 @@ source $HELPER_SCRIPTS/os.sh
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
function javaTool {
|
||||||
|
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
|
||||||
|
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
|
||||||
|
else
|
||||||
|
echo "$1 $2 is not equal to default one $DEFAULT_JDK_VERSION"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Install GPG Key for Adopt Open JDK. See https://adoptopenjdk.net/installation.html
|
# Install GPG Key for Adopt Open JDK. See https://adoptopenjdk.net/installation.html
|
||||||
wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add -
|
wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add -
|
||||||
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
|
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
|
||||||
@@ -38,6 +47,11 @@ apt-get -y install adoptopenjdk-8-hotspot=\*
|
|||||||
apt-get -y install adoptopenjdk-11-hotspot=\*
|
apt-get -y install adoptopenjdk-11-hotspot=\*
|
||||||
|
|
||||||
# Set Default Java version.
|
# Set Default Java version.
|
||||||
|
if isUbuntu16; then
|
||||||
|
# issue: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825987
|
||||||
|
# stackoverflow: https://askubuntu.com/questions/1187136/update-java-alternatives-only-java-but-not-javac-is-changed
|
||||||
|
sed -i 's/(hl|jre|jdk|plugin|DUMMY) /(hl|jre|jdk|jdkhl|plugin|DUMMY) /g' /usr/sbin/update-java-alternatives
|
||||||
|
fi
|
||||||
update-java-alternatives -s /usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64
|
update-java-alternatives -s /usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64
|
||||||
|
|
||||||
echo "JAVA_HOME_8_X64=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64" | tee -a /etc/environment
|
echo "JAVA_HOME_8_X64=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64" | tee -a /etc/environment
|
||||||
@@ -46,7 +60,6 @@ if isUbuntu16 || isUbuntu18 ; then
|
|||||||
echo "JAVA_HOME_12_X64=/usr/lib/jvm/adoptopenjdk-12-hotspot-amd64" | tee -a /etc/environment
|
echo "JAVA_HOME_12_X64=/usr/lib/jvm/adoptopenjdk-12-hotspot-amd64" | tee -a /etc/environment
|
||||||
fi
|
fi
|
||||||
echo "JAVA_HOME=/usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64" | tee -a /etc/environment
|
echo "JAVA_HOME=/usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64" | tee -a /etc/environment
|
||||||
echo "JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8" | tee -a /etc/environment
|
|
||||||
|
|
||||||
# Install Ant
|
# Install Ant
|
||||||
apt-fast install -y --no-install-recommends ant ant-optional
|
apt-fast install -y --no-install-recommends ant ant-optional
|
||||||
@@ -86,6 +99,11 @@ for cmd in gradle java javac mvn ant; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
javaVersion=$(java -version |& head -n 1 | cut -d\" -f 2)
|
||||||
|
javaTool "Java" $javaVersion
|
||||||
|
javacVersion=$(javac -version |& cut -d" " -f2)
|
||||||
|
javaTool "Javac" $javacVersion
|
||||||
|
|
||||||
# Document what was added to the image
|
# Document what was added to the image
|
||||||
echo "Lastly, documenting what we added to the metadata file"
|
echo "Lastly, documenting what we added to the metadata file"
|
||||||
if isUbuntu16 || isUbuntu18 ; then
|
if isUbuntu16 || isUbuntu18 ; then
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-
|
|||||||
sudo install minikube-linux-amd64 /usr/local/bin/minikube
|
sudo install minikube-linux-amd64 /usr/local/bin/minikube
|
||||||
|
|
||||||
# Install kustomize
|
# Install kustomize
|
||||||
sudo snap install kustomize
|
download_url="https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
|
||||||
|
curl -s "$download_url" | bash
|
||||||
|
mv kustomize /usr/local/bin
|
||||||
|
|
||||||
# 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"
|
||||||
@@ -58,4 +60,4 @@ DocumentInstalledItem "helm ($(helm version --short |& head -n 1))"
|
|||||||
# minikube version output already has word minikube in it. example minikube version: v1.9.2
|
# minikube version output already has word minikube in it. example minikube version: v1.9.2
|
||||||
DocumentInstalledItem "$(minikube version --short)"
|
DocumentInstalledItem "$(minikube version --short)"
|
||||||
# kustomize version output has "{} in it". example {kustomize/v3.8.1 2020-07-16T00:58:46Z }
|
# kustomize version output has "{} in it". example {kustomize/v3.8.1 2020-07-16T00:58:46Z }
|
||||||
DocumentInstalledItem "kustomize ($(kustomize version --short))"
|
DocumentInstalledItem "kustomize ($(kustomize version --short))"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ LSB_CODENAME=$(lsb_release -cs)
|
|||||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||||
echo "deb https://download.mono-project.com/repo/ubuntu stable-$LSB_CODENAME main" | tee /etc/apt/sources.list.d/mono-official-stable.list
|
echo "deb https://download.mono-project.com/repo/ubuntu stable-$LSB_CODENAME main" | tee /etc/apt/sources.list.d/mono-official-stable.list
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y --no-install-recommends apt-transport-https mono-complete
|
apt-get install -y --no-install-recommends apt-transport-https mono-complete nuget
|
||||||
|
|
||||||
# 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"
|
||||||
@@ -23,7 +23,12 @@ if ! command -v mono; then
|
|||||||
echo "mono was not installed"
|
echo "mono was not installed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if ! command -v nuget; then
|
||||||
|
echo "nuget was not installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Document what was added to the image
|
# Document what was added to the image
|
||||||
echo "Lastly, documenting what we added to the metadata file"
|
echo "Lastly, documenting what we added to the metadata file"
|
||||||
DocumentInstalledItem "Mono ($(mono --version | head -n 1))"
|
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.
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ source $HELPER_SCRIPTS/document.sh
|
|||||||
|
|
||||||
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
||||||
|
|
||||||
if [ $ANNOUNCEMENTS ]; then
|
if [ -n "$ANNOUNCEMENTS" ]; then
|
||||||
WriteItem $ANNOUNCEMENTS
|
WriteItem "$ANNOUNCEMENTS"
|
||||||
WriteItem "***"
|
WriteItem "***"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
26
images/linux/scripts/installers/pulumi.sh
Normal file
26
images/linux/scripts/installers/pulumi.sh
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
################################################################################
|
||||||
|
## File: pulumi.sh
|
||||||
|
## Desc: Installs Pulumi
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Source the helpers for use with the script
|
||||||
|
source $HELPER_SCRIPTS/document.sh
|
||||||
|
source $HELPER_SCRIPTS/install.sh
|
||||||
|
|
||||||
|
# Install Pulumi
|
||||||
|
VERSION=$(curl --fail --silent -L "https://www.pulumi.com/latest-version")
|
||||||
|
TARBALL_URL="https://get.pulumi.com/releases/sdk/pulumi-v${VERSION}-linux-x64.tar.gz"
|
||||||
|
download_with_retries ${TARBALL_URL} "/tmp" pulumi-v${VERSION}.tar.gz
|
||||||
|
tar --strip=1 -xvf /tmp/pulumi-v${VERSION}.tar.gz -C /usr/local/bin
|
||||||
|
|
||||||
|
# Run tests to determine that the software installed as expected
|
||||||
|
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||||
|
if ! command -v pulumi ; then
|
||||||
|
echo "Pulumi was not installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Document what was added to the image
|
||||||
|
echo "Lastly, documenting what we added to the metadata file"
|
||||||
|
DocumentInstalledItem "Pulumi $(pulumi version)"
|
||||||
@@ -75,8 +75,8 @@ uri="https://downloads.python.org/pypy/"
|
|||||||
download_with_retries $uri "/tmp" "pypyUrls.html" compressed
|
download_with_retries $uri "/tmp" "pypyUrls.html" compressed
|
||||||
pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')"
|
pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')"
|
||||||
|
|
||||||
toolsetJson="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
toolsetVersions=$(cat $toolsetJson | jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
|
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
|
||||||
|
|
||||||
# Fail out if any setups fail
|
# Fail out if any setups fail
|
||||||
set -e
|
set -e
|
||||||
|
|||||||
@@ -61,6 +61,36 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"android": {
|
||||||
|
"platform_list": [
|
||||||
|
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19","android-17","android-15","android-10"
|
||||||
|
],
|
||||||
|
"build_tools": [
|
||||||
|
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
|
||||||
|
],
|
||||||
|
"extra_list": [
|
||||||
|
"android;m2repository",
|
||||||
|
"google;m2repository",
|
||||||
|
"google;google_play_services",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
||||||
|
],
|
||||||
|
"addon_list": [
|
||||||
|
"addon-google_apis-google-24",
|
||||||
|
"addon-google_apis-google-23",
|
||||||
|
"addon-google_apis-google-22",
|
||||||
|
"addon-google_apis-google-21"
|
||||||
|
],
|
||||||
|
"additional_tools": [
|
||||||
|
"cmake;3.6.4111459",
|
||||||
|
"cmake;3.10.2.4988404",
|
||||||
|
"patcher;v4",
|
||||||
|
"ndk-bundle",
|
||||||
|
"platform-tools"
|
||||||
|
]
|
||||||
|
},
|
||||||
"azureModules": [
|
"azureModules": [
|
||||||
{
|
{
|
||||||
"name": "az",
|
"name": "az",
|
||||||
@@ -74,8 +104,90 @@
|
|||||||
"3.5.0",
|
"3.5.0",
|
||||||
"3.8.0",
|
"3.8.0",
|
||||||
"4.3.0",
|
"4.3.0",
|
||||||
"4.4.0"
|
"4.4.0",
|
||||||
|
"4.6.0"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"apt": {
|
||||||
|
"common_packages": [
|
||||||
|
"dbus",
|
||||||
|
"dnsutils",
|
||||||
|
"dpkg",
|
||||||
|
"fakeroot",
|
||||||
|
"gnupg2",
|
||||||
|
"iproute2",
|
||||||
|
"iputils-ping",
|
||||||
|
"lib32z1",
|
||||||
|
"libc++abi-dev",
|
||||||
|
"libc++-dev",
|
||||||
|
"libcurl3",
|
||||||
|
"libgbm-dev",
|
||||||
|
"libgconf-2-4",
|
||||||
|
"libgtk-3-0",
|
||||||
|
"libicu55",
|
||||||
|
"libsecret-1-dev",
|
||||||
|
"libsqlite3-dev",
|
||||||
|
"libunwind8",
|
||||||
|
"libxkbfile-dev",
|
||||||
|
"libxss1",
|
||||||
|
"locales",
|
||||||
|
"openssh-client",
|
||||||
|
"pkg-config",
|
||||||
|
"rpm",
|
||||||
|
"texinfo",
|
||||||
|
"tk",
|
||||||
|
"tzdata",
|
||||||
|
"upx",
|
||||||
|
"xorriso",
|
||||||
|
"xvfb",
|
||||||
|
"xz-utils",
|
||||||
|
"zstd",
|
||||||
|
"zsync"
|
||||||
|
],
|
||||||
|
"cmd_packages": [
|
||||||
|
"bison",
|
||||||
|
"brotli",
|
||||||
|
"bzip2",
|
||||||
|
"curl",
|
||||||
|
"file",
|
||||||
|
"flex",
|
||||||
|
"ftp",
|
||||||
|
"jq",
|
||||||
|
"m4",
|
||||||
|
"netcat",
|
||||||
|
"parallel",
|
||||||
|
"patchelf",
|
||||||
|
"rsync",
|
||||||
|
"shellcheck",
|
||||||
|
"sqlite3",
|
||||||
|
"ssh",
|
||||||
|
"sudo",
|
||||||
|
"telnet",
|
||||||
|
"time",
|
||||||
|
"unzip",
|
||||||
|
"wget",
|
||||||
|
"yamllint",
|
||||||
|
"zip"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"docker": {
|
||||||
|
"images": [
|
||||||
|
"alpine:3.7",
|
||||||
|
"alpine:3.8",
|
||||||
|
"alpine:3.9",
|
||||||
|
"alpine:3.10",
|
||||||
|
"buildpack-deps:stretch",
|
||||||
|
"buildpack-deps:buster",
|
||||||
|
"debian:8",
|
||||||
|
"debian:9",
|
||||||
|
"jekyll/builder",
|
||||||
|
"mcr.microsoft.com/azure-pipelines/node8-typescript",
|
||||||
|
"node:10",
|
||||||
|
"node:12",
|
||||||
|
"node:10-alpine",
|
||||||
|
"node:12-alpine",
|
||||||
|
"ubuntu:14.04"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,32 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"android": {
|
||||||
|
"platform_list": [
|
||||||
|
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19","android-17"
|
||||||
|
],
|
||||||
|
"build_tools": [
|
||||||
|
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
|
||||||
|
],
|
||||||
|
"extra_list": [
|
||||||
|
"android;m2repository",
|
||||||
|
"google;m2repository",
|
||||||
|
"google;google_play_services"
|
||||||
|
],
|
||||||
|
"addon_list": [
|
||||||
|
"addon-google_apis-google-24",
|
||||||
|
"addon-google_apis-google-23",
|
||||||
|
"addon-google_apis-google-22",
|
||||||
|
"addon-google_apis-google-21"
|
||||||
|
],
|
||||||
|
"additional_tools": [
|
||||||
|
"cmake;3.6.4111459",
|
||||||
|
"cmake;3.10.2.4988404",
|
||||||
|
"patcher;v4",
|
||||||
|
"ndk-bundle",
|
||||||
|
"platform-tools"
|
||||||
|
]
|
||||||
|
},
|
||||||
"azureModules": [
|
"azureModules": [
|
||||||
{
|
{
|
||||||
"name": "az",
|
"name": "az",
|
||||||
@@ -74,8 +100,89 @@
|
|||||||
"3.5.0",
|
"3.5.0",
|
||||||
"3.8.0",
|
"3.8.0",
|
||||||
"4.3.0",
|
"4.3.0",
|
||||||
"4.4.0"
|
"4.4.0",
|
||||||
|
"4.6.0"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"apt": {
|
||||||
|
"common_packages": [
|
||||||
|
"dbus",
|
||||||
|
"dnsutils",
|
||||||
|
"dpkg",
|
||||||
|
"fakeroot",
|
||||||
|
"gnupg2",
|
||||||
|
"iproute2",
|
||||||
|
"iputils-ping",
|
||||||
|
"lib32z1",
|
||||||
|
"libc++abi-dev",
|
||||||
|
"libc++-dev",
|
||||||
|
"libcurl3",
|
||||||
|
"libgbm-dev",
|
||||||
|
"libgconf-2-4",
|
||||||
|
"libgtk-3-0",
|
||||||
|
"libsecret-1-dev",
|
||||||
|
"libsqlite3-dev",
|
||||||
|
"libunwind8",
|
||||||
|
"libxkbfile-dev",
|
||||||
|
"libxss1",
|
||||||
|
"locales",
|
||||||
|
"openssh-client",
|
||||||
|
"pkg-config",
|
||||||
|
"rpm",
|
||||||
|
"texinfo",
|
||||||
|
"tk",
|
||||||
|
"tzdata",
|
||||||
|
"upx",
|
||||||
|
"xorriso",
|
||||||
|
"xvfb",
|
||||||
|
"xz-utils",
|
||||||
|
"zstd",
|
||||||
|
"zsync"
|
||||||
|
],
|
||||||
|
"cmd_packages": [
|
||||||
|
"bison",
|
||||||
|
"brotli",
|
||||||
|
"bzip2",
|
||||||
|
"curl",
|
||||||
|
"file",
|
||||||
|
"flex",
|
||||||
|
"ftp",
|
||||||
|
"jq",
|
||||||
|
"m4",
|
||||||
|
"netcat",
|
||||||
|
"parallel",
|
||||||
|
"patchelf",
|
||||||
|
"rsync",
|
||||||
|
"shellcheck",
|
||||||
|
"sqlite3",
|
||||||
|
"ssh",
|
||||||
|
"sudo",
|
||||||
|
"telnet",
|
||||||
|
"time",
|
||||||
|
"unzip",
|
||||||
|
"wget",
|
||||||
|
"yamllint",
|
||||||
|
"zip"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"docker": {
|
||||||
|
"images": [
|
||||||
|
"alpine:3.7",
|
||||||
|
"alpine:3.8",
|
||||||
|
"alpine:3.9",
|
||||||
|
"alpine:3.10",
|
||||||
|
"buildpack-deps:stretch",
|
||||||
|
"buildpack-deps:buster",
|
||||||
|
"debian:8",
|
||||||
|
"debian:9",
|
||||||
|
"jekyll/builder",
|
||||||
|
"mcr.microsoft.com/azure-pipelines/node8-typescript",
|
||||||
|
"node:10",
|
||||||
|
"node:12",
|
||||||
|
"node:10-alpine",
|
||||||
|
"node:12-alpine",
|
||||||
|
"ubuntu:14.04"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,5 +46,107 @@
|
|||||||
],
|
],
|
||||||
"default": "1.14.*"
|
"default": "1.14.*"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"android": {
|
||||||
|
"platform_list": [
|
||||||
|
"android-30", "android-29", "android-28", "android-27"
|
||||||
|
],
|
||||||
|
"build_tools": [
|
||||||
|
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0"
|
||||||
|
],
|
||||||
|
"extra_list": [
|
||||||
|
"android;m2repository",
|
||||||
|
"google;m2repository",
|
||||||
|
"google;google_play_services"
|
||||||
|
],
|
||||||
|
"addon_list": [
|
||||||
|
],
|
||||||
|
"additional_tools": [
|
||||||
|
"cmake;3.10.2.4988404",
|
||||||
|
"patcher;v4",
|
||||||
|
"ndk-bundle",
|
||||||
|
"platform-tools"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"apt": {
|
||||||
|
"common_packages": [
|
||||||
|
"dbus",
|
||||||
|
"dnsutils",
|
||||||
|
"dpkg",
|
||||||
|
"fakeroot",
|
||||||
|
"gnupg2",
|
||||||
|
"iproute2",
|
||||||
|
"iputils-ping",
|
||||||
|
"lib32z1",
|
||||||
|
"libc++abi-dev",
|
||||||
|
"libc++-dev",
|
||||||
|
"libcurl4",
|
||||||
|
"libgbm-dev",
|
||||||
|
"libgconf-2-4",
|
||||||
|
"libgtk-3-0",
|
||||||
|
"libsecret-1-dev",
|
||||||
|
"libsqlite3-dev",
|
||||||
|
"libunwind8",
|
||||||
|
"libxkbfile-dev",
|
||||||
|
"libxss1",
|
||||||
|
"locales",
|
||||||
|
"openssh-client",
|
||||||
|
"pkg-config",
|
||||||
|
"python-is-python2",
|
||||||
|
"rpm",
|
||||||
|
"texinfo",
|
||||||
|
"tk",
|
||||||
|
"tzdata",
|
||||||
|
"upx",
|
||||||
|
"xorriso",
|
||||||
|
"xvfb",
|
||||||
|
"xz-utils",
|
||||||
|
"zstd",
|
||||||
|
"zsync"
|
||||||
|
],
|
||||||
|
"cmd_packages": [
|
||||||
|
"bison",
|
||||||
|
"brotli",
|
||||||
|
"bzip2",
|
||||||
|
"curl",
|
||||||
|
"file",
|
||||||
|
"flex",
|
||||||
|
"ftp",
|
||||||
|
"jq",
|
||||||
|
"m4",
|
||||||
|
"netcat",
|
||||||
|
"parallel",
|
||||||
|
"patchelf",
|
||||||
|
"rsync",
|
||||||
|
"shellcheck",
|
||||||
|
"sqlite3",
|
||||||
|
"ssh",
|
||||||
|
"sudo",
|
||||||
|
"telnet",
|
||||||
|
"time",
|
||||||
|
"unzip",
|
||||||
|
"wget",
|
||||||
|
"yamllint",
|
||||||
|
"zip"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"docker": {
|
||||||
|
"images": [
|
||||||
|
"alpine:3.7",
|
||||||
|
"alpine:3.8",
|
||||||
|
"alpine:3.9",
|
||||||
|
"alpine:3.10",
|
||||||
|
"buildpack-deps:stretch",
|
||||||
|
"buildpack-deps:buster",
|
||||||
|
"debian:8",
|
||||||
|
"debian:9",
|
||||||
|
"jekyll/builder",
|
||||||
|
"mcr.microsoft.com/azure-pipelines/node8-typescript",
|
||||||
|
"node:10",
|
||||||
|
"node:12",
|
||||||
|
"node:10-alpine",
|
||||||
|
"node:12-alpine",
|
||||||
|
"ubuntu:14.04"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"variables": {
|
"variables": {
|
||||||
"commit_url": "{{env `COMMIT_URL`}}",
|
|
||||||
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
||||||
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
||||||
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
||||||
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
||||||
"image_folder": "/imagegeneration",
|
"image_folder": "/imagegeneration",
|
||||||
"commit_file": "/imagegeneration/commit.txt",
|
|
||||||
"imagedata_file": "/imagegeneration/imagedata.json",
|
"imagedata_file": "/imagegeneration/imagedata.json",
|
||||||
"metadata_file": "/imagegeneration/metadatafile",
|
"metadata_file": "/imagegeneration/metadatafile",
|
||||||
"installer_script_folder": "/imagegeneration/installers",
|
"installer_script_folder": "/imagegeneration/installers",
|
||||||
@@ -59,9 +57,7 @@
|
|||||||
"type": "shell",
|
"type": "shell",
|
||||||
"inline": [
|
"inline": [
|
||||||
"mkdir {{user `image_folder`}}",
|
"mkdir {{user `image_folder`}}",
|
||||||
"chmod 777 {{user `image_folder`}}",
|
"chmod 777 {{user `image_folder`}}"
|
||||||
"echo {{user `commit_url`}} > {{user `commit_file`}}",
|
|
||||||
"chmod +r {{user `commit_file`}}"
|
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
@@ -92,8 +88,19 @@
|
|||||||
"source": "{{template_dir}}/scripts/installers",
|
"source": "{{template_dir}}/scripts/installers",
|
||||||
"destination": "{{user `installer_script_folder`}}"
|
"destination": "{{user `installer_script_folder`}}"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolcache-1604.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolset-1604.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
|
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
||||||
],
|
],
|
||||||
@@ -102,8 +109,7 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"ANNOUNCEMENTS={{user `announcements`}}"
|
"ANNOUNCEMENTS={{user `announcements`}}"
|
||||||
],
|
]
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
@@ -186,6 +192,7 @@
|
|||||||
"{{template_dir}}/scripts/installers/pollinate.sh",
|
"{{template_dir}}/scripts/installers/pollinate.sh",
|
||||||
"{{template_dir}}/scripts/installers/postgresql.sh",
|
"{{template_dir}}/scripts/installers/postgresql.sh",
|
||||||
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
||||||
|
"{{template_dir}}/scripts/installers/pulumi.sh",
|
||||||
"{{template_dir}}/scripts/installers/ruby.sh",
|
"{{template_dir}}/scripts/installers/ruby.sh",
|
||||||
"{{template_dir}}/scripts/installers/r.sh",
|
"{{template_dir}}/scripts/installers/r.sh",
|
||||||
"{{template_dir}}/scripts/installers/rust.sh",
|
"{{template_dir}}/scripts/installers/rust.sh",
|
||||||
@@ -202,31 +209,9 @@
|
|||||||
"{{template_dir}}/scripts/installers/mongodb.sh",
|
"{{template_dir}}/scripts/installers/mongodb.sh",
|
||||||
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
||||||
"{{template_dir}}/scripts/installers/swig.sh",
|
"{{template_dir}}/scripts/installers/swig.sh",
|
||||||
"{{template_dir}}/scripts/installers/netlify.sh"
|
"{{template_dir}}/scripts/installers/netlify.sh",
|
||||||
],
|
"{{template_dir}}/scripts/installers/android.sh",
|
||||||
"environment_vars": [
|
|
||||||
"METADATA_FILE={{user `metadata_file`}}",
|
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
|
||||||
"DEBIAN_FRONTEND=noninteractive"
|
|
||||||
],
|
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolcache-1604.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolset-1604.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"scripts":[
|
|
||||||
"{{template_dir}}/scripts/installers/1604/android.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
||||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||||
"{{template_dir}}/scripts/installers/pypy.sh",
|
"{{template_dir}}/scripts/installers/pypy.sh",
|
||||||
"{{template_dir}}/scripts/installers/python.sh",
|
"{{template_dir}}/scripts/installers/python.sh",
|
||||||
@@ -236,7 +221,8 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
||||||
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
|
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}",
|
||||||
|
"DEBIAN_FRONTEND=noninteractive"
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"variables": {
|
"variables": {
|
||||||
"commit_url": "{{env `COMMIT_URL`}}",
|
|
||||||
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
||||||
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
||||||
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
||||||
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
||||||
"image_folder": "/imagegeneration",
|
"image_folder": "/imagegeneration",
|
||||||
"commit_file": "/imagegeneration/commit.txt",
|
|
||||||
"imagedata_file": "/imagegeneration/imagedata.json",
|
"imagedata_file": "/imagegeneration/imagedata.json",
|
||||||
"metadata_file": "/imagegeneration/metadatafile",
|
"metadata_file": "/imagegeneration/metadatafile",
|
||||||
"installer_script_folder": "/imagegeneration/installers",
|
"installer_script_folder": "/imagegeneration/installers",
|
||||||
@@ -59,9 +57,7 @@
|
|||||||
"type": "shell",
|
"type": "shell",
|
||||||
"inline": [
|
"inline": [
|
||||||
"mkdir {{user `image_folder`}}",
|
"mkdir {{user `image_folder`}}",
|
||||||
"chmod 777 {{user `image_folder`}}",
|
"chmod 777 {{user `image_folder`}}"
|
||||||
"echo {{user `commit_url`}} > {{user `commit_file`}}",
|
|
||||||
"chmod +r {{user `commit_file`}}"
|
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
@@ -95,8 +91,19 @@
|
|||||||
"source": "{{template_dir}}/scripts/installers",
|
"source": "{{template_dir}}/scripts/installers",
|
||||||
"destination": "{{user `installer_script_folder`}}"
|
"destination": "{{user `installer_script_folder`}}"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolcache-1804.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolset-1804.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
|
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
||||||
],
|
],
|
||||||
@@ -105,8 +112,7 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"ANNOUNCEMENTS={{user `announcements`}}"
|
"ANNOUNCEMENTS={{user `announcements`}}"
|
||||||
],
|
]
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
@@ -190,6 +196,7 @@
|
|||||||
"{{template_dir}}/scripts/installers/pollinate.sh",
|
"{{template_dir}}/scripts/installers/pollinate.sh",
|
||||||
"{{template_dir}}/scripts/installers/postgresql.sh",
|
"{{template_dir}}/scripts/installers/postgresql.sh",
|
||||||
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
||||||
|
"{{template_dir}}/scripts/installers/pulumi.sh",
|
||||||
"{{template_dir}}/scripts/installers/ruby.sh",
|
"{{template_dir}}/scripts/installers/ruby.sh",
|
||||||
"{{template_dir}}/scripts/installers/r.sh",
|
"{{template_dir}}/scripts/installers/r.sh",
|
||||||
"{{template_dir}}/scripts/installers/rust.sh",
|
"{{template_dir}}/scripts/installers/rust.sh",
|
||||||
@@ -206,31 +213,9 @@
|
|||||||
"{{template_dir}}/scripts/installers/mongodb.sh",
|
"{{template_dir}}/scripts/installers/mongodb.sh",
|
||||||
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
||||||
"{{template_dir}}/scripts/installers/swig.sh",
|
"{{template_dir}}/scripts/installers/swig.sh",
|
||||||
"{{template_dir}}/scripts/installers/netlify.sh"
|
"{{template_dir}}/scripts/installers/netlify.sh",
|
||||||
],
|
"{{template_dir}}/scripts/installers/android.sh",
|
||||||
"environment_vars": [
|
|
||||||
"METADATA_FILE={{user `metadata_file`}}",
|
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
|
||||||
"DEBIAN_FRONTEND=noninteractive"
|
|
||||||
],
|
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolcache-1804.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolset-1804.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"scripts":[
|
|
||||||
"{{template_dir}}/scripts/installers/1804/android.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
||||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||||
"{{template_dir}}/scripts/installers/pypy.sh",
|
"{{template_dir}}/scripts/installers/pypy.sh",
|
||||||
"{{template_dir}}/scripts/installers/python.sh",
|
"{{template_dir}}/scripts/installers/python.sh",
|
||||||
@@ -240,7 +225,8 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
||||||
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
|
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}",
|
||||||
|
"DEBIAN_FRONTEND=noninteractive"
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"variables": {
|
"variables": {
|
||||||
"commit_url": "{{env `COMMIT_URL`}}",
|
|
||||||
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
||||||
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
||||||
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
|
||||||
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
||||||
"image_folder": "/imagegeneration",
|
"image_folder": "/imagegeneration",
|
||||||
"commit_file": "/imagegeneration/commit.txt",
|
|
||||||
"imagedata_file": "/imagegeneration/imagedata.json",
|
"imagedata_file": "/imagegeneration/imagedata.json",
|
||||||
"metadata_file": "/imagegeneration/metadatafile",
|
"metadata_file": "/imagegeneration/metadatafile",
|
||||||
"installer_script_folder": "/imagegeneration/installers",
|
"installer_script_folder": "/imagegeneration/installers",
|
||||||
@@ -61,9 +59,7 @@
|
|||||||
"type": "shell",
|
"type": "shell",
|
||||||
"inline": [
|
"inline": [
|
||||||
"mkdir {{user `image_folder`}}",
|
"mkdir {{user `image_folder`}}",
|
||||||
"chmod 777 {{user `image_folder`}}",
|
"chmod 777 {{user `image_folder`}}"
|
||||||
"echo {{user `commit_url`}} > {{user `commit_file`}}",
|
|
||||||
"chmod +r {{user `commit_file`}}"
|
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
@@ -97,8 +93,19 @@
|
|||||||
"source": "{{template_dir}}/scripts/installers",
|
"source": "{{template_dir}}/scripts/installers",
|
||||||
"destination": "{{user `installer_script_folder`}}"
|
"destination": "{{user `installer_script_folder`}}"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolcache-2004.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{template_dir}}/toolsets/toolset-2004.json",
|
||||||
|
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
|
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
"{{template_dir}}/scripts/installers/preparemetadata.sh"
|
||||||
],
|
],
|
||||||
@@ -107,8 +114,7 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"ANNOUNCEMENTS={{user `announcements`}}"
|
"ANNOUNCEMENTS={{user `announcements`}}"
|
||||||
],
|
]
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
@@ -192,6 +198,7 @@
|
|||||||
"{{template_dir}}/scripts/installers/pollinate.sh",
|
"{{template_dir}}/scripts/installers/pollinate.sh",
|
||||||
"{{template_dir}}/scripts/installers/postgresql.sh",
|
"{{template_dir}}/scripts/installers/postgresql.sh",
|
||||||
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
"{{template_dir}}/scripts/installers/powershellcore.sh",
|
||||||
|
"{{template_dir}}/scripts/installers/pulumi.sh",
|
||||||
"{{template_dir}}/scripts/installers/ruby.sh",
|
"{{template_dir}}/scripts/installers/ruby.sh",
|
||||||
"{{template_dir}}/scripts/installers/r.sh",
|
"{{template_dir}}/scripts/installers/r.sh",
|
||||||
"{{template_dir}}/scripts/installers/rust.sh",
|
"{{template_dir}}/scripts/installers/rust.sh",
|
||||||
@@ -208,31 +215,9 @@
|
|||||||
"{{template_dir}}/scripts/installers/mongodb.sh",
|
"{{template_dir}}/scripts/installers/mongodb.sh",
|
||||||
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
"{{template_dir}}/scripts/installers/rndgenerator.sh",
|
||||||
"{{template_dir}}/scripts/installers/swig.sh",
|
"{{template_dir}}/scripts/installers/swig.sh",
|
||||||
"{{template_dir}}/scripts/installers/netlify.sh"
|
"{{template_dir}}/scripts/installers/netlify.sh",
|
||||||
],
|
"{{template_dir}}/scripts/installers/android.sh",
|
||||||
"environment_vars": [
|
|
||||||
"METADATA_FILE={{user `metadata_file`}}",
|
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
|
||||||
"DEBIAN_FRONTEND=noninteractive"
|
|
||||||
],
|
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolcache-2004.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{template_dir}}/toolsets/toolset-2004.json",
|
|
||||||
"destination": "{{user `installer_script_folder`}}/toolset.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"scripts":[
|
|
||||||
"{{template_dir}}/scripts/installers/2004/android.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
||||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
|
||||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||||
"{{template_dir}}/scripts/installers/pypy.sh",
|
"{{template_dir}}/scripts/installers/pypy.sh",
|
||||||
"{{template_dir}}/scripts/installers/python.sh",
|
"{{template_dir}}/scripts/installers/python.sh",
|
||||||
@@ -242,7 +227,8 @@
|
|||||||
"METADATA_FILE={{user `metadata_file`}}",
|
"METADATA_FILE={{user `metadata_file`}}",
|
||||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
|
||||||
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
|
"GITHUB_FEED_TOKEN={{user `github_feed_token`}}",
|
||||||
|
"DEBIAN_FRONTEND=noninteractive"
|
||||||
],
|
],
|
||||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||||
},
|
},
|
||||||
|
|||||||
76
images/macos/helpers/Common.Helpers.psm1
Normal file
76
images/macos/helpers/Common.Helpers.psm1
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Gets path to the tool, analogue of 'which tool'
|
||||||
|
function Get-WhichTool($tool) {
|
||||||
|
return (Get-Command $tool).Path
|
||||||
|
}
|
||||||
|
|
||||||
|
# Gets value of environment variable by the name
|
||||||
|
function Get-EnvironmentVariable($variable) {
|
||||||
|
return [System.Environment]::GetEnvironmentVariable($variable)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Returns the object with information about current OS
|
||||||
|
# It can be used for OS-specific tests
|
||||||
|
function Get-OSVersion {
|
||||||
|
$osVersion = [Environment]::OSVersion
|
||||||
|
return [PSCustomObject]@{
|
||||||
|
Version = $osVersion.Version
|
||||||
|
Platform = $osVersion.Platform
|
||||||
|
IsHighSierra = $osVersion.Version.Major -eq 17
|
||||||
|
IsMojave = $osVersion.Version.Major -eq 18
|
||||||
|
IsCatalina = $osVersion.Version.Major -eq 19
|
||||||
|
IsBigSur = $osVersion.Version.Major -eq 20
|
||||||
|
IsLessThanCatalina = $osVersion.Version.Major -lt 19
|
||||||
|
IsLessThanBigSur = $osVersion.Version.Major -lt 20
|
||||||
|
IsHigherThanMojave = $osVersion.Version.Major -gt 18
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-ChildItemWithoutSymlinks {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[string] $Path,
|
||||||
|
[string] $Filter
|
||||||
|
)
|
||||||
|
|
||||||
|
$files = Get-ChildItem -Path $Path -Filter $Filter
|
||||||
|
$files = $files | Where-Object { !$_.LinkType } # cut symlinks
|
||||||
|
return $files
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the value of specific toolset node
|
||||||
|
# Example, invoke `Get-ToolsetValue "xamarin.bundles"` to get value of `$toolsetJson.xamarin.bundles`
|
||||||
|
function Get-ToolsetValue {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string] $KeyPath
|
||||||
|
)
|
||||||
|
$toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
|
||||||
|
$jsonNode = Get-Content -Raw $toolsetPath | ConvertFrom-Json
|
||||||
|
|
||||||
|
$pathParts = $KeyPath.Split(".")
|
||||||
|
# try to walk through all arguments consequentially to resolve specific json node
|
||||||
|
$pathParts | ForEach-Object {
|
||||||
|
$jsonNode = $jsonNode.$_
|
||||||
|
}
|
||||||
|
return $jsonNode
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-ToolcachePackages {
|
||||||
|
$toolcachePath = Join-Path $env:HOME "image-generation" "toolcache.json"
|
||||||
|
return Get-Content -Raw $toolcachePath | ConvertFrom-Json
|
||||||
|
}
|
||||||
32
images/macos/helpers/SoftwareReport.Helpers.psm1
Normal file
32
images/macos/helpers/SoftwareReport.Helpers.psm1
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
function Run-Command {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string] $Command,
|
||||||
|
[switch] $SuppressStderr
|
||||||
|
)
|
||||||
|
# Bash trick to suppress and show error output because some commands write to stderr (for example, "python --version")
|
||||||
|
$redirectOutputArguments = If ($SuppressStderr) { "2> /dev/null" } Else { "2>&1" }
|
||||||
|
$stdout = & bash -c "${Command} ${redirectOutputArguments}"
|
||||||
|
|
||||||
|
return $stdout
|
||||||
|
}
|
||||||
|
|
||||||
|
function Take-Part {
|
||||||
|
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 New-MDNewLine {
|
||||||
|
param (
|
||||||
|
[int] $Count = 1
|
||||||
|
)
|
||||||
|
$newLineSymbol = [System.Environment]::NewLine
|
||||||
|
return $newLineSymbol * $Count
|
||||||
|
}
|
||||||
87
images/macos/helpers/Tests.Helpers.psm1
Normal file
87
images/macos/helpers/Tests.Helpers.psm1
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# Invokes command and validate that the exit code is 0
|
||||||
|
function Validate-ZeroExitCode($command) {
|
||||||
|
$result = Get-CommandResult $command
|
||||||
|
$result.ExitCode | Should -Be 0 -Because $result.Output
|
||||||
|
}
|
||||||
|
|
||||||
|
# Validates that tool is installed and in PATH
|
||||||
|
function Validate-ToolExist($tool) {
|
||||||
|
Get-Command $tool -ErrorAction SilentlyContinue | Should -BeTrue
|
||||||
|
}
|
||||||
|
|
||||||
|
function Validate-ArrayWithoutDuplicates {
|
||||||
|
param (
|
||||||
|
[AllowEmptyCollection()]
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[array] $Items,
|
||||||
|
[string] $Because
|
||||||
|
)
|
||||||
|
$uniqueList = @()
|
||||||
|
$Items | ForEach-Object {
|
||||||
|
$uniqueList | Should -Not -Contain $_ -Because $Because
|
||||||
|
$uniqueList += $_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Validate-Url {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string] $Url
|
||||||
|
)
|
||||||
|
|
||||||
|
$result = $true
|
||||||
|
try {
|
||||||
|
$requestResult = Invoke-WebRequest $Url -DisableKeepAlive -UseBasicParsing -Method Head
|
||||||
|
$result = ($requestResult.StatusCode -eq 200)
|
||||||
|
} catch {
|
||||||
|
$result = $false
|
||||||
|
}
|
||||||
|
|
||||||
|
$result | Should -BeTrue -Because "'$Url' should be available, but it is not"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Validate-IdenticalFileContent {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[string] $File1,
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[string] $File2
|
||||||
|
)
|
||||||
|
|
||||||
|
$File1 | Should -Exist -Because "The content of '$File1' should be identical with content of '$File2' but '$File1' doesn't exist"
|
||||||
|
$File2 | Should -Exist -Because "The content of '$File1' should be identical with content of '$File2' but '$File2' doesn't exist"
|
||||||
|
|
||||||
|
$content1 = Get-Content -Raw $File1
|
||||||
|
$content2 = Get-Content -Raw $File2
|
||||||
|
$content1 | Should -Be $content2 -Because "The content of '$File1' should be identical with content of '$File2' but they are different"
|
||||||
|
}
|
||||||
|
|
||||||
|
function ShouldReturnZeroExitCode {
|
||||||
|
Param(
|
||||||
|
[String] $ActualValue,
|
||||||
|
[switch] $Negate,
|
||||||
|
[string] $Because # This parameter is unused by we need it to match Pester asserts signature
|
||||||
|
)
|
||||||
|
|
||||||
|
$result = Get-CommandResult $ActualValue
|
||||||
|
|
||||||
|
[bool]$succeeded = $result.ExitCode -eq 0
|
||||||
|
if ($Negate) { $succeeded = -not $succeeded }
|
||||||
|
|
||||||
|
if (-not $succeeded)
|
||||||
|
{
|
||||||
|
$commandOutputIndent = " " * 4
|
||||||
|
$commandOutput = ($result.Output | ForEach-Object { "${commandOutputIndent}${_}" }) -join "`n"
|
||||||
|
$failureMessage = "Command '${ActualValue}' has finished with exit code ${actualExitCode}`n${commandOutput}"
|
||||||
|
}
|
||||||
|
|
||||||
|
return [PSCustomObject] @{
|
||||||
|
Succeeded = $succeeded
|
||||||
|
FailureMessage = $failureMessage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
If (Get-Command -Name Add-AssertionOperator -ErrorAction SilentlyContinue) {
|
||||||
|
Add-AssertionOperator -Name ReturnZeroExitCode -InternalName ShouldReturnZeroExitCode -Test ${function:ShouldReturnZeroExitCode}
|
||||||
|
}
|
||||||
94
images/macos/helpers/Xcode.Helpers.psm1
Normal file
94
images/macos/helpers/Xcode.Helpers.psm1
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
function Get-XcodeRootPath {
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[string] $Version
|
||||||
|
)
|
||||||
|
|
||||||
|
return "/Applications/Xcode_$Version.app"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-DefaultXcodeRootPath {
|
||||||
|
$defaultXcodePath = "/Applications/Xcode.app"
|
||||||
|
$defaultXcodeItem = Get-Item -Path $defaultXcodePath
|
||||||
|
return $defaultXcodeItem.Target
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-XcodeToolPath {
|
||||||
|
param (
|
||||||
|
[Parameter(ParameterSetName = 'Version')]
|
||||||
|
[string] $Version,
|
||||||
|
[Parameter(ParameterSetName = 'Path')]
|
||||||
|
[string] $XcodeRootPath,
|
||||||
|
[string] $ToolName
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($PSCmdlet.ParameterSetName -eq "Version") {
|
||||||
|
$XcodeRootPath = Get-XcodeRootPath $Version
|
||||||
|
}
|
||||||
|
|
||||||
|
return Join-Path $XcodeRootPath "Contents/Developer/usr/bin" $ToolName
|
||||||
|
}
|
||||||
|
|
||||||
|
function Switch-Xcode {
|
||||||
|
param (
|
||||||
|
[Parameter(ParameterSetName = 'Version')]
|
||||||
|
[string] $Version,
|
||||||
|
[Parameter(ParameterSetName = 'Path')]
|
||||||
|
[string] $XcodeRootPath
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($PSCmdlet.ParameterSetName -eq "Version") {
|
||||||
|
$XcodeRootPath = Get-XcodeRootPath $Version
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Verbose "Switching Xcode to '${XcodeRootPath}'"
|
||||||
|
Invoke-Expression "sudo xcode-select --switch ${XcodeRootPath}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-XcodeSimulatorsInfo {
|
||||||
|
param(
|
||||||
|
[string] $Filter
|
||||||
|
)
|
||||||
|
|
||||||
|
[string]$rawSimulatorsInfo = Invoke-Expression "xcrun simctl list --json"
|
||||||
|
$jsonSimulatorsInfo = $rawSimulatorsInfo | ConvertFrom-Json
|
||||||
|
|
||||||
|
if ($Filter) {
|
||||||
|
return $jsonSimulatorsInfo | Select-Object -ExpandProperty $Filter
|
||||||
|
}
|
||||||
|
|
||||||
|
return $jsonSimulatorsInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-XcodeDevicesList {
|
||||||
|
$result = @()
|
||||||
|
|
||||||
|
$runtimes = Get-XcodeSimulatorsInfo -Filter "devices"
|
||||||
|
$runtimes.PSObject.Properties | ForEach-Object {
|
||||||
|
$runtimeName = $_.Name
|
||||||
|
$devices = $_.Value
|
||||||
|
$devices | Where-Object {
|
||||||
|
$availability = $_.availability
|
||||||
|
$isAvailable = $_.isAvailable
|
||||||
|
return (($availability -eq "(available)") -or ($isAvailable -eq "YES") -or ($isAvailable -eq $true))
|
||||||
|
} | ForEach-Object {
|
||||||
|
$deviceName = $_.name
|
||||||
|
$result += "$runtimeName $deviceName"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-XcodePairsList {
|
||||||
|
$result = @()
|
||||||
|
|
||||||
|
$runtimes = Get-XcodeSimulatorsInfo -Filter "pairs"
|
||||||
|
$runtimes.PSObject.Properties | Where-Object {
|
||||||
|
return $_.Value.state -match "active"
|
||||||
|
} | ForEach-Object {
|
||||||
|
$watchName = $_.Value.watch.name
|
||||||
|
$phoneName = $_.Value.phone.name
|
||||||
|
$result += "$watchName $phoneName"
|
||||||
|
}
|
||||||
|
return $result
|
||||||
|
}
|
||||||
@@ -1,112 +1,117 @@
|
|||||||
|
| Announcements |
|
||||||
# macOS info
|
|-|
|
||||||
- System Version: macOS 10.15.6 (19G73)
|
| [Xcode 11.7 will be set as a default one on September, 9](https://github.com/actions/virtual-environments/issues/1537) |
|
||||||
|
***
|
||||||
|
# macOS 10.15 info
|
||||||
|
- System Version: macOS 10.15.6 (19G2021)
|
||||||
- Kernel Version: Darwin 19.6.0
|
- Kernel Version: Darwin 19.6.0
|
||||||
- System Integrity Protection: Enabled
|
- Image Version: 20200903.1
|
||||||
- Image Version: 20200802.1
|
|
||||||
|
|
||||||
## Installed Software
|
## Installed Software
|
||||||
### Language and Runtime
|
### Language and Runtime
|
||||||
- Java 1.7: (Zulu 7.40.0.15-CA-macosx) (build 1.7.0_272-b10)
|
- Clang/LLVM 10.0.1
|
||||||
- Java 1.8: (AdoptOpenJDK)(build 1.8.0_265-b01) (default)
|
- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 — available by `gcc-8` alias
|
||||||
- Java 11: AdoptOpenJDK (build 11.0.8+10)
|
- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 — available by `gcc-9` alias
|
||||||
- Java 12: AdoptOpenJDK (build 12.0.2+10)
|
- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 — available by `gfortran-8` alias
|
||||||
- Java 13: AdoptOpenJDK (build 13.0.2+8)
|
- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 — available by `gfortran-9` alias
|
||||||
- Java 14: AdoptOpenJDK (build 14.0.2+12)
|
|
||||||
- Clang/LLVM 10.0.0
|
|
||||||
- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0
|
|
||||||
- gcc-9 (Homebrew GCC 9.3.0) 9.3.0
|
|
||||||
- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0
|
|
||||||
- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0
|
|
||||||
- Node.js v12.18.3
|
- Node.js v12.18.3
|
||||||
- NVM 0.35.3
|
- NVM 0.35.3
|
||||||
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.0 v12.18.3 v13.14.0 v14.7.0
|
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.0 v12.18.3 v13.14.0 v14.9.0
|
||||||
- Python 2.7.17
|
- Python 2.7.17
|
||||||
- Python 3.8.5
|
- Python 3.8.5
|
||||||
- Ruby 2.6.6p146
|
- Ruby 2.6.6p146
|
||||||
- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302
|
- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401
|
||||||
- R 4.0.2
|
- R 4.0.2
|
||||||
- Go 1.14.6
|
- Go 1.15
|
||||||
- PHP 7.4.8
|
- PHP 7.4.10
|
||||||
- julia 1.4.2
|
- julia 1.5.1
|
||||||
|
|
||||||
### Package Management
|
### Package Management
|
||||||
- Vcpkg 2020.06.15
|
- Vcpkg 2020.06.15
|
||||||
- Bundler version 2.1.4
|
- Bundler version 2.1.4
|
||||||
- Carthage 0.35.0
|
- Carthage 0.35.0
|
||||||
- CocoaPods 1.9.3
|
- CocoaPods 1.9.3
|
||||||
- Homebrew 2.4.9
|
- Homebrew 2.4.16
|
||||||
- NPM 6.14.6
|
- NPM 6.14.6
|
||||||
- Yarn 1.22.4
|
- Yarn 1.22.5
|
||||||
- NuGet 5.6.0.6489
|
- NuGet 5.6.0.6489
|
||||||
- Pip 19.3.1 (python 2.7)
|
- Pip 19.3.1 (python 2.7)
|
||||||
- Pip 20.1.1 (python 3.8)
|
- Pip 20.1.1 (python 3.8)
|
||||||
- Miniconda 4.8.3
|
- Miniconda 4.8.3
|
||||||
- RubyGems 3.1.4
|
- RubyGems 3.1.4
|
||||||
- Composer 1.10.9
|
- Composer 1.10.10
|
||||||
|
|
||||||
### Project Management
|
### Project Management
|
||||||
- Apache Maven 3.6.3
|
- Apache Maven 3.6.3
|
||||||
- Gradle 6.5.1
|
- Gradle 6.6.1
|
||||||
- Apache Ant(TM) 1.10.8
|
- Apache Ant(TM) 1.10.8
|
||||||
|
|
||||||
### Utilities
|
### Utilities
|
||||||
- Curl 7.71.1
|
- Curl 7.72.0
|
||||||
- Git: 2.28.0
|
- Git: 2.28.0
|
||||||
- Git LFS: 2.11.0
|
- Git LFS: 2.12.0
|
||||||
- GitHub CLI: 0.11.1
|
- GitHub CLI: 0.11.1
|
||||||
- Hub CLI: 2.14.2
|
- Hub CLI: 2.14.2
|
||||||
- GNU Wget 1.20.3
|
- GNU Wget 1.20.3
|
||||||
- Subversion (SVN) 1.14.0
|
- Subversion (SVN) 1.14.0
|
||||||
- Packer 1.6.1
|
- Packer 1.6.2
|
||||||
- GNU parallel 20200722
|
- GNU parallel 20200722
|
||||||
- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl/1.0.2t)`
|
- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl/1.0.2t)`
|
||||||
- jq 1.6
|
- jq 1.6
|
||||||
- gpg (GnuPG) 2.2.21
|
- gpg (GnuPG) 2.2.22
|
||||||
- psql (PostgreSQL) 12.3
|
- psql (PostgreSQL) 12.4
|
||||||
- PostgreSQL 12.3
|
- PostgreSQL 12.4
|
||||||
- aria2 1.35.0
|
- aria2 1.35.0
|
||||||
- azcopy 10.5.1
|
- azcopy 10.6.0
|
||||||
- zstd 1.4.5
|
- zstd 1.4.5
|
||||||
- bazel 3.4.1
|
- bazel 3.5.0
|
||||||
- bazelisk 1.5.0
|
- bazelisk 1.6.1
|
||||||
- helm v3.2.4+g0ad800e
|
- helm v3.3.1+g249e521
|
||||||
- virtualbox 6.1.12r139181
|
- virtualbox 6.1.12r139181
|
||||||
- mongo v4.4.0
|
- mongo v4.4.0
|
||||||
- mongod v4.4.0
|
- mongod v4.4.0
|
||||||
- Vagrant 2.2.9
|
- Vagrant 2.2.10
|
||||||
- 7-Zip 16.02
|
- 7-Zip 16.02
|
||||||
- Newman 5.1.2
|
- Newman 5.2.0
|
||||||
|
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
- Fastlane 2.154.0
|
- Fastlane 2.157.2
|
||||||
- Cmake 3.18.1
|
- Cmake 3.18.2
|
||||||
- App Center CLI 2.6.4
|
- App Center CLI 2.6.7
|
||||||
- Azure CLI 2.9.1
|
- Azure CLI 2.11.1
|
||||||
- AWS CLI 2.0.36
|
- AWS CLI 2.0.44
|
||||||
- AWS SAM CLI 1.0.0
|
- AWS SAM CLI 1.2.0
|
||||||
- AWS Session Manager CLI 1.1.61.0
|
- AWS Session Manager CLI 1.1.61.0
|
||||||
- Aliyun CLI 3.0.55
|
- Aliyun CLI 3.0.56
|
||||||
- GHCup v0.1.8
|
- GHCup v0.1.10
|
||||||
- GHC 8.10.1
|
- GHC 9.0.0
|
||||||
- Cabal 3.2.0.0
|
- Cabal 3.2.0.0
|
||||||
- Stack 2.3.1
|
- Stack 2.3.3
|
||||||
|
|
||||||
### Linters
|
### Linters
|
||||||
- yamllint 1.24.2
|
- yamllint 1.24.2
|
||||||
- SwiftLint 0.39.2
|
- SwiftLint 0.40.1
|
||||||
|
|
||||||
### Browsers
|
### Browsers
|
||||||
- Safari 13.1.2 (15609.3.5.1.3)
|
- Safari 13.1.2 (15609.3.5.1.3)
|
||||||
- SafariDriver 13.1.2 (15609.3.5.1.3)
|
- SafariDriver 13.1.2 (15609.3.5.1.3)
|
||||||
- Google Chrome 84.0.4147.105
|
- Google Chrome 85.0.4183.83
|
||||||
- ChromeDriver 84.0.4147.30
|
- ChromeDriver 85.0.4183.87
|
||||||
- Microsoft Edge 84.0.522.50
|
- Microsoft Edge 85.0.564.44
|
||||||
- MSEdgeDriver 84.0.522.52
|
- MSEdgeDriver 85.0.564.44
|
||||||
- Mozilla Firefox 79.0
|
- Mozilla Firefox 80.0.1
|
||||||
- geckodriver 0.27.0
|
- geckodriver 0.27.0
|
||||||
|
|
||||||
|
### Java
|
||||||
|
| Version | Vendor | Environment Variable |
|
||||||
|
| --------- | ------------ | -------------------- |
|
||||||
|
| 1.7.0_272 | Zulu | JAVA_HOME_7_X64 |
|
||||||
|
| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 |
|
||||||
|
| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 |
|
||||||
|
| 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 |
|
||||||
|
| 13.0.2 | AdoptOpenJDK | JAVA_HOME_13_X64 |
|
||||||
|
| 14.0.2 | AdoptOpenJDK | JAVA_HOME_14_X64 |
|
||||||
### Cached Tools
|
### Cached Tools
|
||||||
#### Ruby
|
#### Ruby
|
||||||
- 2.4.10
|
- 2.4.10
|
||||||
@@ -117,8 +122,8 @@
|
|||||||
#### Python
|
#### Python
|
||||||
- 2.7.18
|
- 2.7.18
|
||||||
- 3.5.9
|
- 3.5.9
|
||||||
- 3.6.11
|
- 3.6.12
|
||||||
- 3.7.8
|
- 3.7.9
|
||||||
- 3.8.5
|
- 3.8.5
|
||||||
|
|
||||||
#### PyPy
|
#### PyPy
|
||||||
@@ -129,21 +134,22 @@
|
|||||||
- 8.17.0
|
- 8.17.0
|
||||||
- 10.22.0
|
- 10.22.0
|
||||||
- 12.18.3
|
- 12.18.3
|
||||||
- 14.7.0
|
- 14.9.0
|
||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
- 1.11.13
|
- 1.11.13
|
||||||
- 1.12.17
|
- 1.12.17
|
||||||
- 1.13.14
|
- 1.13.15
|
||||||
- 1.14.6
|
- 1.14.8
|
||||||
|
- 1.15.1
|
||||||
|
|
||||||
### Rust Tools
|
### Rust Tools
|
||||||
- Rust 1.45.1
|
- Rust 1.46.0
|
||||||
- Rustup 1.22.1
|
- Rustup 1.22.1
|
||||||
|
|
||||||
#### Packages
|
#### Packages
|
||||||
- Bindgen 0.54.1
|
- Bindgen 0.55.1
|
||||||
- Cbindgen 0.14.3
|
- Cbindgen 0.14.4
|
||||||
- Cargo-outdated v0.9.11
|
- Cargo-outdated v0.9.11
|
||||||
- Cargo-audit 0.12.0
|
- Cargo-audit 0.12.0
|
||||||
|
|
||||||
@@ -153,21 +159,23 @@
|
|||||||
#### PowerShell Modules
|
#### PowerShell Modules
|
||||||
| Module | Version |
|
| Module | Version |
|
||||||
| ---------- | ------- |
|
| ---------- | ------- |
|
||||||
| Az | 4.4.0 |
|
| Az | 4.6.1 |
|
||||||
| MarkdownPS | 1.9 |
|
| MarkdownPS | 1.9 |
|
||||||
| Pester | 4.10.1 |
|
| Pester | 5.0.4 |
|
||||||
|
|
||||||
### Xamarin
|
### Xamarin
|
||||||
#### Visual Studio for Mac
|
#### Visual Studio for Mac
|
||||||
- 8.6.8.2
|
- 8.7.4.38
|
||||||
|
|
||||||
#### Mono
|
#### Mono
|
||||||
|
- 6.12.0.90
|
||||||
- 6.10.0.106
|
- 6.10.0.106
|
||||||
- 6.8.0.123
|
- 6.8.0.123
|
||||||
- 6.6.0.166
|
- 6.6.0.166
|
||||||
- 6.4.0.208
|
- 6.4.0.208
|
||||||
|
|
||||||
#### Xamarin.iOS
|
#### Xamarin.iOS
|
||||||
|
- 13.20.2.2
|
||||||
- 13.18.2.1
|
- 13.18.2.1
|
||||||
- 13.16.0.13
|
- 13.16.0.13
|
||||||
- 13.14.1.39
|
- 13.14.1.39
|
||||||
@@ -178,6 +186,7 @@
|
|||||||
- 13.2.0.47
|
- 13.2.0.47
|
||||||
|
|
||||||
#### Xamarin.Mac
|
#### Xamarin.Mac
|
||||||
|
- 6.20.2.2
|
||||||
- 6.18.3.2
|
- 6.18.3.2
|
||||||
- 6.16.0.13
|
- 6.16.0.13
|
||||||
- 6.14.1.39
|
- 6.14.1.39
|
||||||
@@ -188,6 +197,7 @@
|
|||||||
- 6.2.0.47
|
- 6.2.0.47
|
||||||
|
|
||||||
#### Xamarin.Android
|
#### Xamarin.Android
|
||||||
|
- 11.0.2
|
||||||
- 10.3.1
|
- 10.3.1
|
||||||
- 10.2.0
|
- 10.2.0
|
||||||
- 10.1.3
|
- 10.1.3
|
||||||
@@ -199,8 +209,9 @@
|
|||||||
### Xcode
|
### Xcode
|
||||||
| Version | Build | Path |
|
| Version | Build | Path |
|
||||||
| -------------- | -------- | ------------------------------- |
|
| -------------- | -------- | ------------------------------- |
|
||||||
| 12.0 (beta) | 12A8169g | /Applications/Xcode_12_beta.app |
|
| 12.0 (beta) | 12A8189n | /Applications/Xcode_12_beta.app |
|
||||||
| 11.6 (default) | 11E708 | /Applications/Xcode_11.6.app |
|
| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
|
||||||
|
| 11.6 | 11E708 | /Applications/Xcode_11.6.app |
|
||||||
| 11.5 | 11E608c | /Applications/Xcode_11.5.app |
|
| 11.5 | 11E608c | /Applications/Xcode_11.5.app |
|
||||||
| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app |
|
| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app |
|
||||||
| 11.4 | 11E146 | /Applications/Xcode_11.4.app |
|
| 11.4 | 11E146 | /Applications/Xcode_11.4.app |
|
||||||
@@ -218,73 +229,76 @@
|
|||||||
- xcversion 2.6.6
|
- xcversion 2.6.6
|
||||||
|
|
||||||
#### Installed SDKs
|
#### Installed SDKs
|
||||||
| SDK | SDK Name | Xcode Version |
|
| SDK | SDK Name | Xcode Version |
|
||||||
| ----------------------- | -------------------- | ---------------------------------------------------- |
|
| ----------------------- | -------------------- | ---------------------------------------------------------- |
|
||||||
| macOS 10.14 | macosx10.14 | 10.3 |
|
| macOS 10.14 | macosx10.14 | 10.3 |
|
||||||
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6 |
|
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
| macOS 11.0 | macosx11.0 | 12.0 |
|
| macOS 11.0 | macosx11.0 | 12.0 |
|
||||||
| iOS 12.4 | iphoneos12.4 | 10.3 |
|
| iOS 12.4 | iphoneos12.4 | 10.3 |
|
||||||
| iOS 13.0 | iphoneos13.0 | 11.0 |
|
| iOS 13.0 | iphoneos13.0 | 11.0 |
|
||||||
| iOS 13.1 | iphoneos13.1 | 11.1 |
|
| iOS 13.1 | iphoneos13.1 | 11.1 |
|
||||||
| iOS 13.2 | iphoneos13.2 | 11.2.1, 11.3.1 |
|
| iOS 13.2 | iphoneos13.2 | 11.2.1, 11.3.1 |
|
||||||
| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 |
|
| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 |
|
||||||
| iOS 13.5 | iphoneos13.5 | 11.5 |
|
| iOS 13.5 | iphoneos13.5 | 11.5 |
|
||||||
| iOS 13.6 | iphoneos13.6 | 11.6 |
|
| iOS 13.6 | iphoneos13.6 | 11.6 |
|
||||||
| iOS 14.0 | iphoneos14.0 | 12.0 |
|
| iOS 13.7 | iphoneos13.7 | 11.7 |
|
||||||
| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 |
|
| iOS 14.0 | iphoneos14.0 | 12.0 |
|
||||||
| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
|
| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 |
|
||||||
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
|
| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
|
||||||
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2.1, 11.3.1 |
|
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
|
||||||
| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 |
|
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2.1, 11.3.1 |
|
||||||
| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 |
|
| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 |
|
||||||
| Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 |
|
| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 |
|
||||||
| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0 |
|
| Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 |
|
||||||
| tvOS 12.4 | appletvos12.4 | 10.3 |
|
| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
|
||||||
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
|
| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0 |
|
||||||
| tvOS 13.2 | appletvos13.2 | 11.2.1, 11.3.1 |
|
| tvOS 12.4 | appletvos12.4 | 10.3 |
|
||||||
| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6 |
|
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
|
||||||
| tvOS 14.0 | appletvos14.0 | 12.0 |
|
| tvOS 13.2 | appletvos13.2 | 11.2.1, 11.3.1 |
|
||||||
| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 |
|
| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
|
| tvOS 14.0 | appletvos14.0 | 12.0 |
|
||||||
| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2.1, 11.3.1 |
|
| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 |
|
||||||
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6 |
|
| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
|
||||||
| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0 |
|
| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2.1, 11.3.1 |
|
||||||
| watchOS 5.3 | watchos5.3 | 10.3 |
|
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
|
| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0 |
|
||||||
| watchOS 6.1 | watchos6.1 | 11.2.1, 11.3.1 |
|
| watchOS 5.3 | watchos5.3 | 10.3 |
|
||||||
| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6 |
|
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
|
||||||
| watchOS 7.0 | watchos7.0 | 12.0 |
|
| watchOS 6.1 | watchos6.1 | 11.2.1, 11.3.1 |
|
||||||
| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 |
|
| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
|
| watchOS 7.0 | watchos7.0 | 12.0 |
|
||||||
| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2.1, 11.3.1 |
|
| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 |
|
||||||
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6 |
|
| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
|
||||||
| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0 |
|
| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2.1, 11.3.1 |
|
||||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6 |
|
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
| DriverKit 20.0 | driverkit.macosx20.0 | 12.0 |
|
| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0 |
|
||||||
|
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7 |
|
||||||
|
| DriverKit 20.0 | driverkit.macosx20.0 | 12.0 |
|
||||||
|
|
||||||
#### Installed Simulators
|
#### Installed Simulators
|
||||||
| OS | Xcode Version | Simulators |
|
| OS | Xcode Version | Simulators |
|
||||||
| ----------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| iOS 12.4 | 10.3 | iPhone 5s<br>iPhone 6 Plus<br>iPhone 6<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone SE<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone X<br>iPhone Xs<br>iPhone Xs Max<br>iPhone Xʀ<br>iPad Air<br>iPad Air 2<br>iPad Pro (9.7-inch)<br>iPad Pro (12.9-inch)<br>iPad (5th generation)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (10.5-inch)<br>iPad (6th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
| iOS 12.4 | 10.3 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPhone XR<br>iPhone Xs<br>iPhone Xs Max<br>iPad (5th generation)<br>iPad (6th generation)<br>iPad Air<br>iPad Air (3rd generation)<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
| iOS 13.0 | 11.0 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
| iOS 13.1 | 11.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.2 | 11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
| iOS 13.2 | 11.2.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.3 | 11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
| iOS 13.3 | 11.3.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.4 | 11.4<br>11.4.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone SE (2nd generation)<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation) |
|
| iOS 13.4 | 11.4<br>11.4.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.5 | 11.5 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone SE (2nd generation)<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation) |
|
| iOS 13.5 | 11.5 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 13.6 | 11.6 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone SE (2nd generation)<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation) |
|
| iOS 13.6 | 11.6 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||||
| iOS 14.0 | 12.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone SE (2nd generation)<br>iPod touch (7th generation)<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation) |
|
| iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||||
| tvOS 12.4 | 10.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| iOS 14.0 | 12.0 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||||
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| tvOS 12.4 | 10.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| tvOS 13.2 | 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| tvOS 13.3 | 11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| tvOS 13.2 | 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| tvOS 13.4 | 11.4<br>11.4.1<br>11.5<br>11.6 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| tvOS 13.3 | 11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| tvOS 14.0 | 12.0 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
| tvOS 13.4 | 11.4<br>11.4.1<br>11.5<br>11.6<br>11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
| tvOS 14.0 | 12.0 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||||
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||||
| watchOS 6.1 | 11.2.1<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||||
| watchOS 6.2 | 11.4<br>11.4.1<br>11.5<br>11.6 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
| watchOS 6.1 | 11.2.1<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||||
| watchOS 7.0 | 12.0 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
| watchOS 6.2 | 11.4<br>11.4.1<br>11.5<br>11.6<br>11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||||
|
| watchOS 7.0 | 12.0 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||||
|
|
||||||
### Android
|
### Android
|
||||||
#### Android SDK Tools
|
#### Android SDK Tools
|
||||||
@@ -305,8 +319,8 @@
|
|||||||
| android-26 | Android SDK Platform 26, Revision 2 |
|
| android-26 | Android SDK Platform 26, Revision 2 |
|
||||||
| android-27 | Android SDK Platform 27, Revision 3 |
|
| android-27 | Android SDK Platform 27, Revision 3 |
|
||||||
| android-28 | Android SDK Platform 28, Revision 6 |
|
| android-28 | Android SDK Platform 28, Revision 6 |
|
||||||
| android-29 | Android SDK Platform 29, Revision 4 |
|
| android-29 | Android SDK Platform 29, Revision 5 |
|
||||||
| android-30 | Android SDK Platform 30, Revision 2 |
|
| android-30 | Android SDK Platform 30, Revision 3 |
|
||||||
|
|
||||||
#### Android SDK Build-Tools
|
#### Android SDK Build-Tools
|
||||||
| Package Name | Description |
|
| Package Name | Description |
|
||||||
@@ -337,6 +351,7 @@
|
|||||||
| build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 |
|
| build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 |
|
||||||
| build-tools-30.0.0 | Android SDK Build-Tools, Revision 30.0.0 |
|
| build-tools-30.0.0 | Android SDK Build-Tools, Revision 30.0.0 |
|
||||||
| build-tools-30.0.1 | Android SDK Build-Tools, Revision 30.0.1 |
|
| build-tools-30.0.1 | Android SDK Build-Tools, Revision 30.0.1 |
|
||||||
|
| build-tools-30.0.2 | Android SDK Build-Tools, Revision 30.0.2 |
|
||||||
|
|
||||||
#### Android NDKs
|
#### Android NDKs
|
||||||
| Version | Path |
|
| Version | Path |
|
||||||
@@ -349,7 +364,7 @@
|
|||||||
| Package Name | Version |
|
| Package Name | Version |
|
||||||
| ---------------- | ----------- |
|
| ---------------- | ----------- |
|
||||||
| cmake | 3.6.4111459 |
|
| cmake | 3.6.4111459 |
|
||||||
| Android Emulator | 30.0.12 |
|
| Android Emulator | 30.0.26 |
|
||||||
|
|
||||||
#### Android Google APIs
|
#### Android Google APIs
|
||||||
| Package Name | Description |
|
| Package Name | Description |
|
||||||
|
|||||||
18
images/macos/provision/bootstrap-provisioner/change_password
Executable file
18
images/macos/provision/bootstrap-provisioner/change_password
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
USERNAME="$1"
|
||||||
|
OLD_PASSWD="$2"
|
||||||
|
NEW_PASSWD="$3"
|
||||||
|
|
||||||
|
export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/bin:/sbin
|
||||||
|
|
||||||
|
macosver="$(sw_vers | grep ProductVersion | awk {'print $2'})"
|
||||||
|
|
||||||
|
if [[ $macosver =~ 10.13.* ]]; then
|
||||||
|
sudo /usr/bin/dscl . -passwd /Users/$USERNAME "$NEW_PASSWD"
|
||||||
|
else
|
||||||
|
sudo /usr/sbin/sysadminctl -resetPasswordFor $USERNAME -newPassword "$NEW_PASSWD" -adminUser $USERNAME -adminPassword "$OLD_PASSWD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo /usr/bin/python /Users/$USERNAME/bootstrap/kcpassword.py "$NEW_PASSWD"
|
||||||
|
sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "$USERNAME"
|
||||||
|
/usr/bin/security set-keychain-password -o "$OLD_PASSWD" -p "$NEW_PASSWD" /Users/$USERNAME/Library/Keychains/login.keychain
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
BOOTSTRAP_PATH="$1"
|
||||||
|
ProvisionerPackageUri="$2"
|
||||||
|
ProvisionerScriptUri="$3"
|
||||||
|
ScriptName="$4"
|
||||||
|
ScriptParam="$5"
|
||||||
|
Username="$6"
|
||||||
|
|
||||||
|
export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/bin:/sbin
|
||||||
|
|
||||||
|
PROVISIONER_ROOT=/usr/local/opt/${Username}
|
||||||
|
mkdir -p ${PROVISIONER_ROOT}
|
||||||
|
chown ${Username} ${PROVISIONER_ROOT}
|
||||||
|
|
||||||
|
tee -a ${PROVISIONER_ROOT}/runprovisioner.sh > /dev/null <<\EOF
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. ${HOME}/.bashrc
|
||||||
|
|
||||||
|
/usr/local/opt/$USER/provisioner/provisioner
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x $PROVISIONER_ROOT/runprovisioner.sh
|
||||||
|
|
||||||
|
aria2c \
|
||||||
|
--enable-color=false \
|
||||||
|
--file-allocation=none \
|
||||||
|
-d ${BOOTSTRAP_PATH} "${ProvisionerPackageUri}" >> ${BOOTSTRAP_PATH}/download.log
|
||||||
|
|
||||||
|
aria2c \
|
||||||
|
--enable-color=false \
|
||||||
|
--file-allocation=none \
|
||||||
|
-d ${BOOTSTRAP_PATH} "${ProvisionerScriptUri}" >> ${BOOTSTRAP_PATH}/download.log
|
||||||
|
|
||||||
|
chmod +x ${BOOTSTRAP_PATH}/${ScriptName}
|
||||||
|
|
||||||
|
# Install Provisioner with provided scripts
|
||||||
|
eval "$BOOTSTRAP_PATH/$ScriptName $BOOTSTRAP_PATH/$ScriptParam $Username" 2>&1 | tee "$BOOTSTRAP_PATH/install.log"
|
||||||
|
# State File
|
||||||
|
touch $BOOTSTRAP_PATH/provisionerDone
|
||||||
46
images/macos/provision/bootstrap-provisioner/kcpassword.py
Executable file
46
images/macos/provision/bootstrap-provisioner/kcpassword.py
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# Port of Gavin Brock's Perl kcpassword generator to Python, by Tom Taylor
|
||||||
|
# <tom@tomtaylor.co.uk>.
|
||||||
|
# Perl version: http://www.brock-family.org/gavin/perl/kcpassword.html
|
||||||
|
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/support/set_kcpassword.py
|
||||||
|
# Distributed by MIT license, license can be found at the bottom of this script
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
def kcpassword(passwd):
|
||||||
|
# The magic 11 bytes - these are just repeated
|
||||||
|
# 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F
|
||||||
|
key = [125,137,82,35,210,188,221,234,163,185,31]
|
||||||
|
key_len = len(key)
|
||||||
|
|
||||||
|
passwd = [ord(x) for x in list(passwd)]
|
||||||
|
# pad passwd length out to an even multiple of key length
|
||||||
|
r = len(passwd) % key_len
|
||||||
|
if (r > 0):
|
||||||
|
passwd = passwd + [0] * (key_len - r)
|
||||||
|
|
||||||
|
for n in range(0, len(passwd), len(key)):
|
||||||
|
ki = 0
|
||||||
|
for j in range(n, min(n+len(key), len(passwd))):
|
||||||
|
passwd[j] = passwd[j] ^ key[ki]
|
||||||
|
ki += 1
|
||||||
|
|
||||||
|
passwd = [chr(x) for x in passwd]
|
||||||
|
return "".join(passwd)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
passwd = kcpassword(sys.argv[1])
|
||||||
|
fd = os.open('/etc/kcpassword', os.O_WRONLY | os.O_CREAT, 0o600)
|
||||||
|
file = os.fdopen(fd, 'w')
|
||||||
|
file.write(passwd)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
"""
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2013-2017 Timothy Sutton
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
"""
|
||||||
40
images/macos/provision/configuration/add-network-interface-detection.sh
Executable file
40
images/macos/provision/configuration/add-network-interface-detection.sh
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/add-network-interface-detection.sh
|
||||||
|
# Distributed by MIT license, license can be found at the bottom of this script
|
||||||
|
|
||||||
|
# This script adds a Mac OS Launch Daemon, which runs every time the
|
||||||
|
# machine is booted. The daemon will re-detect the attached network
|
||||||
|
# interfaces. If this is not done, network devices may not work.
|
||||||
|
PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist
|
||||||
|
cat <<EOF > "${PLIST}"
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>sonoma.detectnewhardware</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/usr/sbin/networksetup</string>
|
||||||
|
<string>-detectnewhardware</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# These should be already set as follows, but since they're required
|
||||||
|
# in order to load properly, we set them explicitly.
|
||||||
|
/bin/chmod 644 "${PLIST}"
|
||||||
|
/usr/sbin/chown root:wheel "${PLIST}"
|
||||||
|
|
||||||
|
|
||||||
|
: '
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2013-2017 Timothy Sutton
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
'
|
||||||
16
images/macos/provision/configuration/autologin.sh
Executable file
16
images/macos/provision/configuration/autologin.sh
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/autologin.sh
|
||||||
|
# Distributed by MIT license, license can be found at the bottom of this script
|
||||||
|
|
||||||
|
echo "Enabling automatic GUI login for the '$USERNAME' user.."
|
||||||
|
|
||||||
|
python $HOME/bootstrap/kcpassword.py "$PASSWORD"
|
||||||
|
|
||||||
|
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "$USERNAME"
|
||||||
|
|
||||||
|
: '
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2013-2017 Timothy Sutton
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
'
|
||||||
28
images/macos/provision/configuration/configure-hostname.sh
Normal file
28
images/macos/provision/configuration/configure-hostname.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Add script for changing hostname to run on startup to prevent duplicate hostnames across the environment. Hostname and Computername should contain .local in name to avoid name resolution issues
|
||||||
|
tee -a /usr/local/bin/change_hostname.sh > /dev/null <<\EOF
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
name="Mac-$(python -c 'from time import time; print int(round(time() * 1000))')"
|
||||||
|
scutil --set HostName "${name}.local"
|
||||||
|
scutil --set LocalHostName $name
|
||||||
|
scutil --set ComputerName "${name}.local"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x "/usr/local/bin/change_hostname.sh"
|
||||||
|
|
||||||
|
sudo tee -a /Library/LaunchDaemons/change_hostname.plist > /dev/null <<\EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>change-hostname</string>
|
||||||
|
<key>Program</key>
|
||||||
|
<string>/usr/local/bin/change_hostname.sh</string>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOF
|
||||||
21
images/macos/provision/configuration/configure-machine.sh
Normal file
21
images/macos/provision/configuration/configure-machine.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Enable firewall. SSH and VNC opened. Can't did it at bootstrap step, so placed it here
|
||||||
|
defaults write /Library/Preferences/com.apple.alf globalstate -int 1
|
||||||
|
|
||||||
|
# Setting correct time zone
|
||||||
|
echo "Configuring system time to GMT..."
|
||||||
|
rm -f /etc/localtime
|
||||||
|
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
|
||||||
|
|
||||||
|
# https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
|
||||||
|
# Safari’s executable is located at /usr/bin/safaridriver
|
||||||
|
# Configure Safari to Enable WebDriver Support
|
||||||
|
sudo safaridriver --enable
|
||||||
|
|
||||||
|
# Turn off hibernation and get rid of the sleepimage
|
||||||
|
sudo pmset hibernatemode 0
|
||||||
|
sudo rm -f /var/vm/sleepimage
|
||||||
|
|
||||||
|
# Change screen resolution to the maximum supported for 4Mb video memory
|
||||||
|
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
|
||||||
7
images/macos/provision/configuration/configure-ssh.sh
Executable file
7
images/macos/provision/configuration/configure-ssh.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[[ ! -d ~/.ssh ]] && mkdir ~/.ssh 2>/dev/null
|
||||||
|
chmod 777 ~/.ssh
|
||||||
|
|
||||||
|
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
|
||||||
|
ssh-keyscan -t rsa ssh.dev.azure.com >> ~/.ssh/known_hosts
|
||||||
8
images/macos/provision/configuration/disable-auto-updates.sh
Executable file
8
images/macos/provision/configuration/disable-auto-updates.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Disabling automatic updates
|
||||||
|
sudo softwareupdate --schedule off
|
||||||
|
defaults write com.apple.SoftwareUpdate AutomaticDownload -int 0
|
||||||
|
defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 0
|
||||||
|
defaults write com.apple.commerce AutoUpdate -bool false
|
||||||
|
defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[ -f $HOME/.bashrc ] && source $HOME/.bashrc
|
||||||
32
images/macos/provision/configuration/environment/bashrc
Normal file
32
images/macos/provision/configuration/environment/bashrc
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
export LC_CTYPE=en_US.UTF-8
|
||||||
|
export LC_ALL=en_US.UTF-8
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
export ANDROID_HOME=${HOME}/Library/Android/sdk
|
||||||
|
export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle
|
||||||
|
|
||||||
|
export NUNIT_BASE_PATH=/Library/Developer/nunit
|
||||||
|
export NUNIT3_PATH=/Library/Developer/nunit/3.6.0
|
||||||
|
|
||||||
|
export CONDA=/usr/local/miniconda
|
||||||
|
export AGENT_TOOLSDIRECTORY=$HOME/hostedtoolcache
|
||||||
|
export RUNNER_TOOL_CACHE=$HOME/hostedtoolcache
|
||||||
|
|
||||||
|
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH
|
||||||
|
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK_HOME:$PATH
|
||||||
|
export PATH=/usr/local/go/bin:$PATH
|
||||||
|
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:~/.yarn/bin:$PATH
|
||||||
|
export PATH="/usr/local/opt/curl/bin:$PATH"
|
||||||
|
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
||||||
|
GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
|
||||||
|
export PATH="$GEM_PATH:$PATH"
|
||||||
|
export PATH=$HOME/.cargo/bin:$PATH
|
||||||
|
|
||||||
|
export RCT_NO_LAUNCH_PACKAGER=1
|
||||||
|
export DOTNET_ROOT=$HOME/.dotnet
|
||||||
|
export DOTNET_MULTILEVEL_LOOKUP=0
|
||||||
|
|
||||||
|
export HOMEBREW_NO_AUTO_UPDATE=1
|
||||||
|
export HOMEBREW_CASK_OPTS="--no-quarantine"
|
||||||
|
|
||||||
|
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
|
||||||
20
images/macos/provision/configuration/finalize-vm.sh
Normal file
20
images/macos/provision/configuration/finalize-vm.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Close all finder windows because they can interfere with UI tests
|
||||||
|
osascript -e 'tell application "Finder" to close windows'
|
||||||
|
|
||||||
|
# Ignore available updates to prevent system pop-ups
|
||||||
|
updateName=$(softwareupdate -l | grep "Title: " | awk -F[:,] '{print $2}' | awk '{$1=$1};1')
|
||||||
|
if [ ! -z "$updateName" ]; then
|
||||||
|
sudo softwareupdate --ignore "$updateName"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Put documentation to $HOME root
|
||||||
|
cp $HOME/image-generation/output/software-report/systeminfo.txt $HOME/image-generation/output/software-report/systeminfo.md $HOME/
|
||||||
|
|
||||||
|
# Clean up npm cache which collected during image-generation
|
||||||
|
# we have to do that here because `npm install` is run in a few different places during image-generation
|
||||||
|
npm cache clean --force
|
||||||
|
|
||||||
|
# Clean up temporary directories
|
||||||
|
rm -rf ~/utils ~/image-generation
|
||||||
39
images/macos/provision/configuration/max-files.sh
Executable file
39
images/macos/provision/configuration/max-files.sh
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
Launch_Daemons="/Library/LaunchDaemons"
|
||||||
|
|
||||||
|
# EOF in quotes to disable variable expansion
|
||||||
|
echo "Creating limit.maxfiles.plist"
|
||||||
|
cat > "${Launch_Daemons}/limit.maxfiles.plist" << EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||||
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>limit.maxfiles</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>launchctl</string>
|
||||||
|
<string>limit</string>
|
||||||
|
<string>maxfiles</string>
|
||||||
|
<string>52428</string>
|
||||||
|
<string>524288</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>ServiceIPC</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "limit.maxfiles.plist permissions changing"
|
||||||
|
chown root:wheel "${Launch_Daemons}/limit.maxfiles.plist"
|
||||||
|
chmod 0644 "${Launch_Daemons}/limit.maxfiles.plist"
|
||||||
|
|
||||||
|
|
||||||
|
echo "Done, limit.maxfiles has been updated"
|
||||||
|
|
||||||
15
images/macos/provision/configuration/ntpconf.sh
Executable file
15
images/macos/provision/configuration/ntpconf.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo Additional NTP servers adding into /etc/ntp.conf file...
|
||||||
|
cat > /etc/ntp.conf << EOF
|
||||||
|
server 0.pool.ntp.org
|
||||||
|
server 1.pool.ntp.org
|
||||||
|
server 2.pool.ntp.org
|
||||||
|
server 3.pool.ntp.org
|
||||||
|
server time.apple.com
|
||||||
|
server time.windows.com
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Set the timezone to UTC.
|
||||||
|
echo The Timezone setting to UTC...
|
||||||
|
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
|
||||||
29
images/macos/provision/configuration/preimagedata.sh
Normal file
29
images/macos/provision/configuration/preimagedata.sh
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
imagedata_file="$HOME/imagedata.json"
|
||||||
|
image_version=$(echo $IMAGE_VERSION | cut -d _ -f 2)
|
||||||
|
os_name=$(sw_vers -productName)
|
||||||
|
os_version=$(sw_vers -productVersion)
|
||||||
|
os_build=$(sw_vers -buildVersion)
|
||||||
|
label_version=$(echo $os_version | cut -d. -f1,2)
|
||||||
|
image_label="macos-${label_version}"
|
||||||
|
software_url="https://github.com/actions/virtual-environments/blob/${image_label}/${image_version}/images/macos/${image_label}-Readme.md"
|
||||||
|
|
||||||
|
if is_Catalina || is_BigSur; then
|
||||||
|
cat <<EOF > $imagedata_file
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"group": "Operating System",
|
||||||
|
"detail": "${os_name}\n${os_version}\n${os_build}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "Virtual Environment",
|
||||||
|
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "export ImageVersion=$image_version" >> $HOME/.bashrc
|
||||||
|
echo "export ImageOS=$IMAGE_OS" >> $HOME/.bashrc
|
||||||
25
images/macos/provision/configuration/screensaver-off.sh
Executable file
25
images/macos/provision/configuration/screensaver-off.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# set screensaver idleTime to 0, to prevent turning screensaver on
|
||||||
|
macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
|
||||||
|
|
||||||
|
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist
|
||||||
|
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist
|
||||||
|
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist
|
||||||
|
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist
|
||||||
|
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist idleTime -string 0
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist CleanExit "YES"
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist idleTime -string 0
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist CleanExit "YES"
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist idleTime -string 0
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist CleanExit "YES"
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist idleTime -string 0
|
||||||
|
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist CleanExit "YES"
|
||||||
|
|
||||||
|
chown -R $USERNAME:staff /Users/$USERNAME/Library/Preferences/ByHost/
|
||||||
|
chown -R $USERNAME:staff /Users/$USERNAME/Library/Preferences/
|
||||||
|
|
||||||
|
killall cfprefsd
|
||||||
|
|
||||||
|
# Set values to 0, to prevent sleep at all
|
||||||
|
pmset -a displaysleep 0 sleep 0 disksleep 0
|
||||||
3
images/macos/provision/configuration/shell-change.sh
Normal file
3
images/macos/provision/configuration/shell-change.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
echo "Changing shell to bash"
|
||||||
|
sudo chsh -s /bin/bash $USERNAME
|
||||||
|
sudo chsh -s /bin/bash root
|
||||||
92
images/macos/provision/core/android-toolsets.sh
Executable file
92
images/macos/provision/core/android-toolsets.sh
Executable file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]'))
|
||||||
|
ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]'))
|
||||||
|
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
|
||||||
|
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
|
||||||
|
|
||||||
|
# Get the latest command line tools from https://developer.android.com/studio/index.html
|
||||||
|
# Release note: https://developer.android.com/studio/releases/sdk-tools.html
|
||||||
|
ANDROID_OSX_SDK_LOCATION="https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip"
|
||||||
|
ANDROID_HOME=$HOME/Library/Android/sdk
|
||||||
|
ANDROID_OSX_SDK_FILE=tools-macosx.zip
|
||||||
|
|
||||||
|
pushd $HOME
|
||||||
|
|
||||||
|
# Prevent the warning of sdkmanager
|
||||||
|
mkdir $HOME/.android
|
||||||
|
echo "count=0" >> $HOME/.android/repositories.cfg
|
||||||
|
|
||||||
|
echo "Downloading android sdk..."
|
||||||
|
curl -L -o $ANDROID_OSX_SDK_FILE $ANDROID_OSX_SDK_LOCATION
|
||||||
|
|
||||||
|
echo "Uncompressing android sdk..."
|
||||||
|
unzip -q $ANDROID_OSX_SDK_FILE && rm -f $ANDROID_OSX_SDK_FILE
|
||||||
|
rm -rf $HOME/Library/Android/sdk
|
||||||
|
mkdir -p $HOME/Library/Android/sdk
|
||||||
|
|
||||||
|
echo ANDROID_HOME is $ANDROID_HOME
|
||||||
|
mv tools $ANDROID_HOME
|
||||||
|
|
||||||
|
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin
|
||||||
|
|
||||||
|
SDKMANAGER=$ANDROID_HOME/tools/bin/sdkmanager
|
||||||
|
|
||||||
|
# Mark the different Android licenses as accepted
|
||||||
|
mkdir -p $ANDROID_HOME/licenses
|
||||||
|
echo "8933bad161af4178b1185d1a37fbf41ea5269c55
|
||||||
|
d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license
|
||||||
|
echo "84831b9409646a918e30573bab4c9c91346d8abd" >> $ANDROID_HOME/licenses/android-sdk-preview-license
|
||||||
|
|
||||||
|
echo "Installing latest tools & platform tools..."
|
||||||
|
echo y | $SDKMANAGER "tools" "platform-tools"
|
||||||
|
|
||||||
|
echo "Installing latest CMake..."
|
||||||
|
echo y | $SDKMANAGER "cmake;3.6.4111459"
|
||||||
|
|
||||||
|
echo "Installing latest ndk..."
|
||||||
|
echo y | $SDKMANAGER "ndk-bundle"
|
||||||
|
|
||||||
|
for platform_name in "${ANDROID_PLATFORM_LIST[@]}"
|
||||||
|
do
|
||||||
|
echo "Installing platform $platform_name ..."
|
||||||
|
echo y | $SDKMANAGER "platforms;$platform_name"
|
||||||
|
done
|
||||||
|
|
||||||
|
for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}"
|
||||||
|
do
|
||||||
|
echo "Installing build tools $build_tools_version ..."
|
||||||
|
echo y | $SDKMANAGER "build-tools;$build_tools_version"
|
||||||
|
done
|
||||||
|
|
||||||
|
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
|
||||||
|
do
|
||||||
|
echo "Installing extra $extra_name ..."
|
||||||
|
echo y | $SDKMANAGER "extras;$extra_name"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Intel x86 Emulator Accelerator (HAXM installer)
|
||||||
|
# see Issue 31164 notes
|
||||||
|
# Command needs to be run under sudo.
|
||||||
|
chmod +x $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh
|
||||||
|
sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh
|
||||||
|
|
||||||
|
for addon_name in "${ANDROID_ADDON_LIST[@]}"
|
||||||
|
do
|
||||||
|
echo "Installing add-on $addon_name ..."
|
||||||
|
echo y | $SDKMANAGER "add-ons;$addon_name"
|
||||||
|
done
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Installing ProGuard-5..."
|
||||||
|
PROGUARD_LOCATION="https://github.com/Guardsquare/proguard/archive/proguard5.3.3.tar.gz"
|
||||||
|
pushd $ANDROID_HOME
|
||||||
|
cd tools
|
||||||
|
mv proguard proguard4
|
||||||
|
mkdir proguard && cd proguard
|
||||||
|
curl -L -o proguard5.tgz $PROGUARD_LOCATION
|
||||||
|
tar xzf proguard5.tgz --strip 1 && rm -f proguard5.tgz
|
||||||
|
cp ../proguard4/proguard-*.txt . # Copy the Proguard Android definitions from the previous version
|
||||||
|
popd
|
||||||
19
images/macos/provision/core/audiodevice.sh
Normal file
19
images/macos/provision/core/audiodevice.sh
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "install soundflower"
|
||||||
|
brew cask install soundflower
|
||||||
|
|
||||||
|
echo "install switchaudio-osx"
|
||||||
|
brew install switchaudio-osx
|
||||||
|
|
||||||
|
echo "install sox"
|
||||||
|
brew install sox
|
||||||
|
|
||||||
|
echo "set Soundflower (2ch) as input/output device"
|
||||||
|
SwitchAudioSource -s "Soundflower (2ch)" -t input
|
||||||
|
SwitchAudioSource -s "Soundflower (2ch)" -t output
|
||||||
|
|
||||||
|
echo "grant microphone permission for simulators"
|
||||||
|
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline', 0,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152)"
|
||||||
|
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"
|
||||||
|
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"
|
||||||
11
images/macos/provision/core/aws.sh
Normal file
11
images/macos/provision/core/aws.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo Installing aws...
|
||||||
|
brew install awscli
|
||||||
|
|
||||||
|
echo Installing aws sam cli...
|
||||||
|
brew tap aws/tap
|
||||||
|
brew install aws-sam-cli
|
||||||
|
|
||||||
|
echo "Install aws cli session manager"
|
||||||
|
brew cask install session-manager-plugin
|
||||||
13
images/macos/provision/core/azcopy.sh
Executable file
13
images/macos/provision/core/azcopy.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
AZCOPY_DOWNLOAD_URL="https://aka.ms/downloadazcopy-v10-mac"
|
||||||
|
|
||||||
|
wget -O "$HOME/azcopy.zip" "$AZCOPY_DOWNLOAD_URL"
|
||||||
|
unzip azcopy.zip -d azcopy
|
||||||
|
AZCOPY_EXTRACTED=$(echo azcopy/azcopy*)
|
||||||
|
cp "$AZCOPY_EXTRACTED/azcopy" "/usr/local/bin/azcopy"
|
||||||
|
chmod +x "/usr/local/bin/azcopy"
|
||||||
|
|
||||||
|
echo "Done, cleaning up"
|
||||||
|
rm -rf azcopy*
|
||||||
20
images/macos/provision/core/build-xcode-symlinks.sh
Normal file
20
images/macos/provision/core/build-xcode-symlinks.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
set -e
|
||||||
|
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
# Link the existing Xcodes into the correct location for provisionator.
|
||||||
|
|
||||||
|
# These symlinks are necessary for Xamarin team to make sure that xamarin-provisionator can find them.
|
||||||
|
|
||||||
|
# Old style provisionator directories. This is maintained for
|
||||||
|
# backwards compatibility only. Do not add new xcodes here.
|
||||||
|
ln -sf /Applications/Xcode_8.app /Applications/Xcode8.app
|
||||||
|
ln -sf /Applications/Xcode_8.1.app /Applications/Xcode81.app
|
||||||
|
ln -sf /Applications/Xcode_9.app /Applications/Xcode9.app
|
||||||
|
ln -sf /Applications/Xcode_9.1.app /Applications/Xcode91.app
|
||||||
|
ln -sf /Applications/Xcode_9.2.app /Applications/Xcode92.app
|
||||||
|
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode93.app
|
||||||
|
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode_9.3_beta.app
|
||||||
|
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4-beta.app
|
||||||
|
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta.app
|
||||||
|
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta_2.app
|
||||||
11
images/macos/provision/core/chrome.sh
Normal file
11
images/macos/provision/core/chrome.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
echo "Installing Chrome..."
|
||||||
|
brew cask install google-chrome
|
||||||
|
|
||||||
|
echo "Installing Chrome Driver"
|
||||||
|
brew cask install chromedriver
|
||||||
|
|
||||||
|
echo "Installing Selenium"
|
||||||
|
brew install selenium-server-standalone
|
||||||
|
|
||||||
|
CHROMEWEBDRIVER_DIR=$(readlink $(which chromedriver) | xargs dirname)
|
||||||
|
echo "export CHROMEWEBDRIVER=$CHROMEWEBDRIVER_DIR" >> "${HOME}/.bashrc"
|
||||||
9
images/macos/provision/core/cocoapods.sh
Executable file
9
images/macos/provision/core/cocoapods.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "Installing Cocoapods..."
|
||||||
|
|
||||||
|
# Setup the Cocoapods master repo
|
||||||
|
echo Setting up the Cocoapods master repository...
|
||||||
|
pod setup
|
||||||
|
|
||||||
|
# Create a symlink to /usr/local/bin since it was removed due to Homebrew change.
|
||||||
|
ln -sf $(which pod) /usr/local/bin/pod
|
||||||
53
images/macos/provision/core/commonutils.sh
Normal file
53
images/macos/provision/core/commonutils.sh
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
# brew install
|
||||||
|
binst_common_utils=(
|
||||||
|
carthage
|
||||||
|
xctool
|
||||||
|
cmake
|
||||||
|
bats
|
||||||
|
parallel
|
||||||
|
subversion
|
||||||
|
go
|
||||||
|
gnupg
|
||||||
|
llvm
|
||||||
|
libpq
|
||||||
|
zstd
|
||||||
|
packer
|
||||||
|
helm
|
||||||
|
aliyun-cli
|
||||||
|
bazelisk
|
||||||
|
github/gh/gh
|
||||||
|
p7zip
|
||||||
|
ant
|
||||||
|
yamllint
|
||||||
|
aria2
|
||||||
|
)
|
||||||
|
|
||||||
|
for package in ${binst_common_utils[@]}; do
|
||||||
|
echo "Install $package"
|
||||||
|
brew install $package
|
||||||
|
done
|
||||||
|
|
||||||
|
# brew cask install
|
||||||
|
bcask_common_utils=(
|
||||||
|
julia
|
||||||
|
virtualbox
|
||||||
|
vagrant
|
||||||
|
r
|
||||||
|
)
|
||||||
|
|
||||||
|
for package in ${bcask_common_utils[@]}; do
|
||||||
|
echo "Install $package"
|
||||||
|
brew cask install $package
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! is_HighSierra; then
|
||||||
|
brew install swiftlint
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Invoke bazel to download the latest bazel version via bazelisk
|
||||||
|
bazel
|
||||||
155
images/macos/provision/core/delete-duplicate-sims.rb
Normal file
155
images/macos/provision/core/delete-duplicate-sims.rb
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
# What is this for?
|
||||||
|
# This script fixes an issue appeared for some Xcode users where it would show long identifiers
|
||||||
|
# in the list of simulators instead of usual short names. This is caused by duplicate simulators
|
||||||
|
# being sometimes created after switching between Xcode versions, with the same
|
||||||
|
# device type + runtime pair occurring more than once in your list of available simulators.
|
||||||
|
# Instead of showing the same simulator name twice, Xcode defaults to simulator identifiers.
|
||||||
|
#
|
||||||
|
# What it does?
|
||||||
|
# The script queries Xcode's `simctl` utility for all simulators you have, finds duplicate type + runtime pairs,
|
||||||
|
# and offers you to delete them. After that, Xcode should return to displaying the list of simulators normally.
|
||||||
|
# When searching for duplicates, the script sorts simulators by their creation time to make sure it deletes
|
||||||
|
# the copy that was created more recently.
|
||||||
|
#
|
||||||
|
# License
|
||||||
|
# This script was taken from https://gist.github.com/vlas-voloshin/f9982128200345cd3fb7 and some modifications made
|
||||||
|
# Distributed by MIT license, license can be found at the bottom of this script
|
||||||
|
|
||||||
|
class SimDevice
|
||||||
|
|
||||||
|
attr_accessor :runtime
|
||||||
|
attr_accessor :name
|
||||||
|
attr_accessor :identifier
|
||||||
|
attr_accessor :timestamp
|
||||||
|
|
||||||
|
def initialize(runtime, name, identifier, timestamp)
|
||||||
|
@runtime = runtime
|
||||||
|
@name = name
|
||||||
|
@identifier = identifier
|
||||||
|
@timestamp = timestamp
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
return "#{@name} - #{@runtime} (#{@identifier}) [#{@timestamp}]"
|
||||||
|
end
|
||||||
|
|
||||||
|
def equivalent_to_device(device)
|
||||||
|
return @runtime == device.runtime && @name == device.name
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
# Executes a shell command and returns the result from stdout
|
||||||
|
def execute_simctl_command(command)
|
||||||
|
return %x[xcrun simctl #{command}]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Retrieves the creation date/time of simulator with specified identifier
|
||||||
|
def simulator_creation_date(identifier)
|
||||||
|
directory = Dir.home() + "/Library/Developer/CoreSimulator/Devices/" + identifier
|
||||||
|
if (Dir.exists?(directory))
|
||||||
|
if (File::Stat.method_defined?(:birthtime))
|
||||||
|
return File.stat(directory).birthtime
|
||||||
|
else
|
||||||
|
return File.stat(directory).ctime
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# Simulator directory is not yet created - treat it as if it was created right now (happens with new iOS 9 sims)
|
||||||
|
return Time.now
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Deletes specified simulator
|
||||||
|
def delete_device(device)
|
||||||
|
execute_simctl_command("delete #{device.identifier}")
|
||||||
|
end
|
||||||
|
|
||||||
|
puts("Searching for simulators...")
|
||||||
|
|
||||||
|
# Retrieve the list of existing simulators
|
||||||
|
devices = []
|
||||||
|
runtime = ""
|
||||||
|
execute_simctl_command("list devices").lines.each do |line|
|
||||||
|
case line[0]
|
||||||
|
when '='
|
||||||
|
# First header, skip it
|
||||||
|
when '-'
|
||||||
|
# Runtime header
|
||||||
|
runtime = line.scan(/-- (.+?) --/).flatten[0]
|
||||||
|
else
|
||||||
|
name_and_identifier = line.scan(/\s+(.+?) \(([\w\d]+-[\w\d]+-[\w\d-]+)\)/)[0]
|
||||||
|
name = name_and_identifier[0]
|
||||||
|
identifier = name_and_identifier[1]
|
||||||
|
timestamp = simulator_creation_date(identifier)
|
||||||
|
device = SimDevice.new(runtime, name, identifier, timestamp)
|
||||||
|
devices.push(device)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Sort the simulators by their creation timestamp, ascending
|
||||||
|
devices = devices.sort { |a, b| a.timestamp <=> b.timestamp }
|
||||||
|
|
||||||
|
duplicates = {}
|
||||||
|
# Enumerate all devices except for the last one
|
||||||
|
for i in 0..devices.count-2
|
||||||
|
device = devices[i]
|
||||||
|
# Enumerate all devices *after* this one (created *later*)
|
||||||
|
for j in i+1..devices.count-1
|
||||||
|
potential_duplicate = devices[j]
|
||||||
|
if potential_duplicate.equivalent_to_device(device)
|
||||||
|
duplicates[potential_duplicate] = device
|
||||||
|
# Break out of the inner loop if a duplicate is found - if another duplicate exists,
|
||||||
|
# it will be found when this one is reached in the outer loop
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if duplicates.count == 0
|
||||||
|
puts("You don't have duplicate simulators!")
|
||||||
|
exit()
|
||||||
|
end
|
||||||
|
|
||||||
|
puts("Looks like you have #{duplicates.count} duplicate simulator#{duplicates.count > 1 ? "s" : ""}:")
|
||||||
|
duplicates.each_pair do |duplicate, original|
|
||||||
|
puts
|
||||||
|
puts("#{duplicate}")
|
||||||
|
puts("--- duplicate of ---")
|
||||||
|
puts("#{original}")
|
||||||
|
end
|
||||||
|
puts
|
||||||
|
|
||||||
|
puts("Each duplicate was determined as the one created later than the 'original'.")
|
||||||
|
|
||||||
|
puts("Deleting...")
|
||||||
|
duplicates.each_key do |duplicate|
|
||||||
|
delete_device(duplicate)
|
||||||
|
end
|
||||||
|
|
||||||
|
puts("Done!")
|
||||||
|
|
||||||
|
=begin
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2015-2019 Vlas Voloshin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
=end
|
||||||
68
images/macos/provision/core/dotnet.sh
Executable file
68
images/macos/provision/core/dotnet.sh
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# The main idea of this script is to automate dotnet installs
|
||||||
|
# Based on:
|
||||||
|
# https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
|
||||||
|
# Download installer from dot.net and keep it locally
|
||||||
|
DOTNET_INSTALL_SCRIPT="https://dotnet.microsoft.com/download/dotnet-core/scripts/v1/dotnet-install.sh"
|
||||||
|
curl -o "dotnet-install.sh" "$DOTNET_INSTALL_SCRIPT"
|
||||||
|
chmod +x ./dotnet-install.sh
|
||||||
|
|
||||||
|
ARGS_LIST=()
|
||||||
|
echo "Parsing dotnet SDK (except rc and preview versions) from .json..."
|
||||||
|
|
||||||
|
if is_Less_Catalina; then
|
||||||
|
DOTNET_CHANNELS=(
|
||||||
|
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json'
|
||||||
|
)
|
||||||
|
else
|
||||||
|
DOTNET_CHANNELS=(
|
||||||
|
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json'
|
||||||
|
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.0/releases.json'
|
||||||
|
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
for DOTNET_CHANNEL in "${DOTNET_CHANNELS[@]}"; do
|
||||||
|
# Old Mono versions don't support NuGet versions from .Net sdk >=2.1.6**, exclude them explicitly from Mojave and HS images
|
||||||
|
# https://rider-support.jetbrains.com/hc/en-us/articles/360004180039
|
||||||
|
if is_Less_Catalina; then
|
||||||
|
ARGS_LIST+=(
|
||||||
|
$(curl -s "$DOTNET_CHANNEL" | \
|
||||||
|
jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | grep -v -E '2.1.[6-9]\d*')
|
||||||
|
)
|
||||||
|
else
|
||||||
|
ARGS_LIST+=(
|
||||||
|
$(curl -s "$DOTNET_CHANNEL" | \
|
||||||
|
jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*')
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for ARGS in "${ARGS_LIST[@]}"; do
|
||||||
|
./dotnet-install.sh --version $ARGS -NoPath
|
||||||
|
done
|
||||||
|
|
||||||
|
rm ./dotnet-install.sh
|
||||||
|
|
||||||
|
# dotnet installer doesn't create symlink to executable in /user/local/bin
|
||||||
|
# Moreover at that moment /user/local/bin doesn't exist (though already added to $PATH)
|
||||||
|
ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet
|
||||||
|
|
||||||
|
# Validate installation
|
||||||
|
if [ $(dotnet --list-sdks | wc -l) -lt "1" ]; then
|
||||||
|
echo "The .NET Core SDK is not installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> "$HOME/.bashrc"
|
||||||
|
|
||||||
|
echo "Dotnet operations have been completed successfully..."
|
||||||
58
images/macos/provision/core/edge.sh
Normal file
58
images/macos/provision/core/edge.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
echo "Installing Microsoft Edge..."
|
||||||
|
brew cask install microsoft-edge
|
||||||
|
|
||||||
|
EDGE_INSTALLATION_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
|
||||||
|
EDGE_VERSION=$("$EDGE_INSTALLATION_PATH" --version | cut -d' ' -f 3)
|
||||||
|
EDGE_VERSION_MAJOR=$(echo $EDGE_VERSION | cut -d'.' -f 1)
|
||||||
|
|
||||||
|
echo "Version of Microsoft Edge: ${EDGE_VERSION}"
|
||||||
|
|
||||||
|
echo "Installing Microsoft Edge WebDriver..."
|
||||||
|
|
||||||
|
EDGE_DRIVER_VERSION_URL="https://msedgedriver.azureedge.net/LATEST_RELEASE_${EDGE_VERSION_MAJOR}"
|
||||||
|
EDGE_DRIVER_LATEST_VERSION=$(curl -s "$EDGE_DRIVER_VERSION_URL" | iconv -f utf-16 -t utf-8 | tr -d '\r')
|
||||||
|
EDGE_DRIVER_URL="https://msedgedriver.azureedge.net/${EDGE_DRIVER_LATEST_VERSION}/edgedriver_mac64.zip"
|
||||||
|
|
||||||
|
echo "Compatible version of WebDriver: ${EDGE_DRIVER_LATEST_VERSION}"
|
||||||
|
|
||||||
|
pushd "/tmp" > /dev/null
|
||||||
|
download_with_retries $EDGE_DRIVER_URL "." "edgedriver.zip"
|
||||||
|
|
||||||
|
# Move webdriver to the separate directory to be consistent with the docs
|
||||||
|
# https://docs.microsoft.com/en-us/azure/devops/pipelines/test/continuous-test-selenium?view=azure-devops#decide-how-you-will-deploy-and-test-your-app
|
||||||
|
|
||||||
|
APPLICATION="/usr/local/bin/msedgedriver"
|
||||||
|
EDGEDRIVER_DIR="/usr/local/share/edge_driver"
|
||||||
|
EDGEDRIVER_BIN="$EDGEDRIVER_DIR/msedgedriver"
|
||||||
|
|
||||||
|
mkdir -p $EDGEDRIVER_DIR
|
||||||
|
|
||||||
|
unzip "edgedriver.zip" -d $EDGEDRIVER_DIR
|
||||||
|
ln -s "$EDGEDRIVER_BIN" $APPLICATION
|
||||||
|
echo "export EDGEWEBDRIVER=${EDGEDRIVER_DIR}" >> "${HOME}/.bashrc"
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
#Delete Microsoft autoupdate service to prevent autoupdates popup
|
||||||
|
AUTOUPDATE_START="$HOME/Library/Preferences/com.microsoft.autoupdate2.plist"
|
||||||
|
while [ ! -f "$AUTOUPDATE_START" ]
|
||||||
|
do
|
||||||
|
echo "Wait for MS update automatic installation"
|
||||||
|
sleep 30
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "kill autoupdate process"
|
||||||
|
ps -ef | grep [M]icrosoft | awk '{print $2}' | sudo xargs kill -9
|
||||||
|
echo "remove autupdate service"
|
||||||
|
sudo launchctl remove com.microsoft.autoupdate.helper
|
||||||
|
|
||||||
|
echo "delete autoupdate files"
|
||||||
|
sudo rm -rf "$HOME/Library/Application Support/Microsoft AU Daemon/"
|
||||||
|
sudo rm -rf "$HOME/Library/Application Support/Microsoft AutoUpdate/"
|
||||||
|
sudo rm -rf "$HOME/Library/Preferences/com.microsoft.autoupdate2.plist"
|
||||||
|
sudo rm -rf "$HOME/Library/Preferences/com.microsoft.autoupdate.fba.plist"
|
||||||
|
sudo rm -rf "$HOME/Library/Caches/com.microsoft.autoupdate2"
|
||||||
|
sudo rm -rf "/Library/Application Support/Microsoft/MAU2.0/"
|
||||||
|
sudo rm -rf "/Library/LaunchAgents/com.microsoft.update.agent.plist"
|
||||||
|
sudo rm -rf "/Library/PrivelegedHelperTools/com.microsoft.autoupdate.helper"
|
||||||
8
images/macos/provision/core/firefox.sh
Normal file
8
images/macos/provision/core/firefox.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
echo "Installing Firefox..."
|
||||||
|
brew cask install firefox
|
||||||
|
|
||||||
|
echo "Installing Geckodriver..."
|
||||||
|
brew install geckodriver
|
||||||
|
|
||||||
|
echo "Add GECKOWEBDRIVER to bashrc..."
|
||||||
|
echo "export GECKOWEBDRIVER=$(brew --prefix geckodriver)/bin" >> "${HOME}/.bashrc"
|
||||||
7
images/macos/provision/core/gcc.sh
Normal file
7
images/macos/provision/core/gcc.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Installing GCC@8 using homebrew..."
|
||||||
|
brew install gcc@8
|
||||||
|
|
||||||
|
echo "Installing GCC@9 using homebrew..."
|
||||||
|
brew install gcc@9
|
||||||
28
images/macos/provision/core/git.sh
Normal file
28
images/macos/provision/core/git.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
echo Installing Git...
|
||||||
|
brew install git
|
||||||
|
|
||||||
|
echo Installing Git LFS
|
||||||
|
brew install git-lfs
|
||||||
|
# Update global git config
|
||||||
|
git lfs install
|
||||||
|
# Update system git config
|
||||||
|
sudo git lfs install --system
|
||||||
|
|
||||||
|
echo Installing Hub
|
||||||
|
brew install hub
|
||||||
|
|
||||||
|
echo Disable all the Git help messages...
|
||||||
|
git config --global advice.pushUpdateRejected false
|
||||||
|
git config --global advice.pushNonFFCurrent false
|
||||||
|
git config --global advice.pushNonFFMatching false
|
||||||
|
git config --global advice.pushAlreadyExists false
|
||||||
|
git config --global advice.pushFetchFirst false
|
||||||
|
git config --global advice.pushNeedsForce false
|
||||||
|
git config --global advice.statusHints false
|
||||||
|
git config --global advice.statusUoption false
|
||||||
|
git config --global advice.commitBeforeMerge false
|
||||||
|
git config --global advice.resolveConflict false
|
||||||
|
git config --global advice.implicitIdentity false
|
||||||
|
git config --global advice.detachedHead false
|
||||||
|
git config --global advice.amWorkDir false
|
||||||
|
git config --global advice.rmHints false
|
||||||
17
images/macos/provision/core/haskell.sh
Normal file
17
images/macos/provision/core/haskell.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
||||||
|
export PATH="$HOME/.ghcup/bin:$PATH"
|
||||||
|
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> "$HOME/.bashrc"
|
||||||
|
|
||||||
|
availableVersions=$(ghcup list | grep -v "prerelease" | grep "ghc " | awk '{print $3}')
|
||||||
|
minorMajorVersions=$(echo "$availableVersions" | cut -d"." -f 1,2 | uniq | tail -n3)
|
||||||
|
for majorMinorVersion in $minorMajorVersions; do
|
||||||
|
fullVersion=$(echo "$availableVersions" | grep "$majorMinorVersion." | tail -n1)
|
||||||
|
echo "install ghc version $fullVersion..."
|
||||||
|
ghcup install $fullVersion
|
||||||
|
ghcup set $fullVersion
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "install cabal..."
|
||||||
|
ghcup install-cabal
|
||||||
24
images/macos/provision/core/homebrew.sh
Executable file
24
images/macos/provision/core/homebrew.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "Installing Homebrew..."
|
||||||
|
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
echo Installing Homebrew...
|
||||||
|
HOMEBREW_INSTALL_URL="https://raw.githubusercontent.com/Homebrew/install/master/install.sh"
|
||||||
|
|
||||||
|
/bin/bash -c "$(curl -fsSL ${HOMEBREW_INSTALL_URL})"
|
||||||
|
|
||||||
|
echo Disabling Homebrew analytics...
|
||||||
|
brew analytics off
|
||||||
|
|
||||||
|
echo Installing the last version of curl
|
||||||
|
brew install curl
|
||||||
|
|
||||||
|
echo Installing wget...
|
||||||
|
brew install wget
|
||||||
|
|
||||||
|
echo Installing jq
|
||||||
|
brew install jq
|
||||||
|
|
||||||
|
# init brew bundle feature
|
||||||
|
brew tap Homebrew/bundle
|
||||||
12
images/macos/provision/core/miniconda.sh
Normal file
12
images/macos/provision/core/miniconda.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MINICONDA_INSTALLER="/tmp/miniconda.sh"
|
||||||
|
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o $MINICONDA_INSTALLER
|
||||||
|
chmod +x $MINICONDA_INSTALLER
|
||||||
|
sudo $MINICONDA_INSTALLER -b -p /usr/local/miniconda
|
||||||
|
|
||||||
|
sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda
|
||||||
|
|
||||||
|
if [ -d "$HOME/.conda" ]; then
|
||||||
|
sudo chown -R $USER "$HOME/.conda"
|
||||||
|
fi
|
||||||
10
images/macos/provision/core/mongodb.sh
Normal file
10
images/macos/provision/core/mongodb.sh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# MongoDB object-value database
|
||||||
|
# installs last version of MongoDB Community Edition
|
||||||
|
# https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/v
|
||||||
|
|
||||||
|
echo "Installing mongodb..."
|
||||||
|
|
||||||
|
brew tap mongodb/brew
|
||||||
|
brew install mongodb-community
|
||||||
45
images/macos/provision/core/node.sh
Normal file
45
images/macos/provision/core/node.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
node_common_modules=(
|
||||||
|
node-gyp
|
||||||
|
mobile-center-cli
|
||||||
|
)
|
||||||
|
|
||||||
|
node_catalina_modules=(
|
||||||
|
appcenter-cli
|
||||||
|
newman
|
||||||
|
)
|
||||||
|
|
||||||
|
if is_Less_Catalina; then
|
||||||
|
echo Installing the latest Node JS 8...
|
||||||
|
TMP_FILE=/tmp/node-v8.17.0.pkg
|
||||||
|
NODEURL=https://nodejs.org/dist/latest-v8.x/node-v8.17.0.pkg
|
||||||
|
curl "${NODEURL}" -o "${TMP_FILE}"
|
||||||
|
sudo installer -pkg "${TMP_FILE}" -target /
|
||||||
|
rm -rf "${TMP_FILE}"
|
||||||
|
sudo chown -R $USER "/usr/local/lib/node_modules"
|
||||||
|
|
||||||
|
echo Installing NPM 3.x.x...
|
||||||
|
npm install -g npm@3
|
||||||
|
npm config set prefix /usr/local
|
||||||
|
|
||||||
|
echo Installing App Center CLI...
|
||||||
|
npm install -g appcenter-cli@^1.0.0
|
||||||
|
else
|
||||||
|
# Install Node.JS 12 for macOS >= 10.15
|
||||||
|
brew install node@12
|
||||||
|
brew link node@12 --force
|
||||||
|
|
||||||
|
for module in ${node_catalina_modules[@]}; do
|
||||||
|
echo "Install $module"
|
||||||
|
npm install -g $module
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Installing yarn...
|
||||||
|
curl -o- -L https://yarnpkg.com/install.sh | bash
|
||||||
|
|
||||||
|
for module in ${node_common_modules[@]}; do
|
||||||
|
echo "Install $module"
|
||||||
|
npm install -g $module
|
||||||
|
done
|
||||||
35
images/macos/provision/core/nvm.sh
Executable file
35
images/macos/provision/core/nvm.sh
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# The script installs node version manager with node versions 6,8,10 and 12
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
. ~/.bashrc
|
||||||
|
nvm --version
|
||||||
|
nvm install lts/boron # 6.x
|
||||||
|
nvm install lts/carbon # 8.x
|
||||||
|
nvm install lts/dubnium # 10.x
|
||||||
|
nvm install lts/erbium # 12.x
|
||||||
|
nvm install v13 # 13.x
|
||||||
|
nvm install v14 # 14.x
|
||||||
|
nvm alias node6 lts/boron
|
||||||
|
nvm alias node8 lts/carbon
|
||||||
|
nvm alias node10 lts/dubnium
|
||||||
|
nvm alias node12 lts/erbium
|
||||||
|
nvm alias node13 v13
|
||||||
|
nvm alias node14 v14
|
||||||
|
|
||||||
|
if is_Catalina || is_BigSur; then
|
||||||
|
# set system node as default
|
||||||
|
nvm alias default system
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo error
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Node version manager has been installed successfully"
|
||||||
53
images/macos/provision/core/openjdk.sh
Normal file
53
images/macos/provision/core/openjdk.sh
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
installAzulJDK() {
|
||||||
|
local URL=$1
|
||||||
|
local TMP_FILE=/tmp/openjdk.dmg
|
||||||
|
local TMP_MOUNT=`/usr/bin/mktemp -d /tmp/zulu.XXXX`
|
||||||
|
# Download dmg
|
||||||
|
curl "${URL}" -o "${TMP_FILE}"
|
||||||
|
# Attach dmg
|
||||||
|
hdiutil attach "${TMP_FILE}" -mountpoint "${TMP_MOUNT}"
|
||||||
|
# Install pkg
|
||||||
|
sudo installer -pkg "${TMP_MOUNT}/"*.pkg -target /
|
||||||
|
# Detach dmg
|
||||||
|
hdiutil detach "${TMP_MOUNT}"
|
||||||
|
# Remove dmg
|
||||||
|
rm -rf "${TMP_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
createEnvironmentVariable() {
|
||||||
|
local VARIABLE_NAME=$1
|
||||||
|
local JAVA_VERSION=$2
|
||||||
|
if [[ $JAVA_VERSION == "7" || $JAVA_VERSION == "8" ]]; then
|
||||||
|
JAVA_VERSION="1.${JAVA_VERSION}"
|
||||||
|
fi
|
||||||
|
local JAVA_PATH=$(/usr/libexec/java_home -v${JAVA_VERSION})
|
||||||
|
echo "export ${VARIABLE_NAME}=${JAVA_PATH}" >> "${HOME}/.bashrc"
|
||||||
|
}
|
||||||
|
|
||||||
|
brew tap AdoptOpenJDK/openjdk
|
||||||
|
|
||||||
|
JAVA_VERSIONS_LIST=($(get_toolset_value '.java.versions | .[]'))
|
||||||
|
JAVA_DEFAULT=$(get_toolset_value '.java.default')
|
||||||
|
for JAVA_VERSION in "${JAVA_VERSIONS_LIST[@]}"
|
||||||
|
do
|
||||||
|
if [[ $JAVA_VERSION == "7" ]]; then
|
||||||
|
installAzulJDK "https://cdn.azul.com/zulu/bin/zulu7.40.0.15-ca-jdk7.0.272-macosx_x64.dmg"
|
||||||
|
else
|
||||||
|
brew cask install "adoptopenjdk${JAVA_VERSION}"
|
||||||
|
fi
|
||||||
|
createEnvironmentVariable "JAVA_HOME_${JAVA_VERSION}_X64" $JAVA_VERSION
|
||||||
|
done
|
||||||
|
|
||||||
|
createEnvironmentVariable "JAVA_HOME" $JAVA_DEFAULT
|
||||||
|
|
||||||
|
echo Installing Maven...
|
||||||
|
brew install maven
|
||||||
|
|
||||||
|
echo Installing Gradle ...
|
||||||
|
brew install gradle
|
||||||
26
images/macos/provision/core/openssl.sh
Executable file
26
images/macos/provision/core/openssl.sh
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "Installing OpenSSL..."
|
||||||
|
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
|
||||||
|
|
||||||
|
echo Installing OpenSSL...
|
||||||
|
/usr/local/bin/brew install openssl
|
||||||
|
/usr/local/bin/brew link openssl --force
|
||||||
|
|
||||||
|
# Install OpenSSL 1.0.2t
|
||||||
|
# https://www.openssl.org/policies/releasestrat.html - Version 1.0.2 will be supported until 2019-12-31 (LTS)
|
||||||
|
# To preserve backward compatibility with ruby-toolcache
|
||||||
|
/usr/local/bin/brew tap-new local/openssl
|
||||||
|
FORMULA_PATH=$(/usr/local/bin/brew extract openssl local/openssl | grep "Homebrew/Library/Taps")
|
||||||
|
/usr/local/bin/brew install $FORMULA_PATH
|
||||||
|
|
||||||
|
# Set OpenSSL 1.0.2t as default
|
||||||
|
ln -sf /usr/local/Cellar/openssl@1.0.2t /usr/local/Cellar/openssl
|
||||||
|
ln -sf /usr/local/Cellar/openssl/1.0.2t/bin/openssl /usr/local/bin/openssl
|
||||||
|
rm /usr/local/opt/openssl
|
||||||
|
ln -sf ../Cellar/openssl/1.0.2t /usr/local/opt/openssl
|
||||||
|
|
||||||
|
# Resolve dot net core openssl dependency issue for agent
|
||||||
|
# https://github.com/microsoft/azure-pipelines-agent/blob/master/docs/start/envosx.md
|
||||||
|
mkdir -p /usr/local/lib/
|
||||||
|
ln -s /usr/local/opt/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/lib/
|
||||||
|
ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/lib/
|
||||||
8
images/macos/provision/core/php.sh
Normal file
8
images/macos/provision/core/php.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo Installing PHP
|
||||||
|
brew install php
|
||||||
|
|
||||||
|
echo Installing composer
|
||||||
|
brew install composer
|
||||||
18
images/macos/provision/core/postgresql.sh
Normal file
18
images/macos/provision/core/postgresql.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Install latest version of postgresql
|
||||||
|
brew install postgres
|
||||||
|
|
||||||
|
#Service postgresql should be started before use.
|
||||||
|
brew services start postgresql
|
||||||
|
|
||||||
|
#Verify that PostgreSQL is ready for accept incoming connections.
|
||||||
|
# exit codes:
|
||||||
|
# ready - 0
|
||||||
|
# reject - 1
|
||||||
|
# connection timeout - 2
|
||||||
|
# incorrect credentials or parameters - 3
|
||||||
|
pg_isready
|
||||||
|
|
||||||
|
#Stop postgresql
|
||||||
|
brew services stop postgresql
|
||||||
34
images/macos/provision/core/powershell.sh
Normal file
34
images/macos/provision/core/powershell.sh
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
echo Installing Azure CLI...
|
||||||
|
brew install azure-cli
|
||||||
|
|
||||||
|
echo Installing PowerShell...
|
||||||
|
brew cask install powershell
|
||||||
|
|
||||||
|
# A dummy call of `az` to initialize ~/.azure directory before the modules are installed
|
||||||
|
az -v
|
||||||
|
|
||||||
|
# Install PowerShell modules
|
||||||
|
psModules=$(get_toolset_value '.powershellModules[].name')
|
||||||
|
for module in ${psModules[@]}; do
|
||||||
|
echo "Installing $module module"
|
||||||
|
moduleVersions="$(get_toolset_value ".powershellModules[] | select(.name==\"$module\") | .versions[]?")"
|
||||||
|
if [[ -z "$moduleVersions" ]];then
|
||||||
|
pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
|
||||||
|
else
|
||||||
|
for version in ${moduleVersions[@]}; do
|
||||||
|
echo " - $version"
|
||||||
|
pwsh -command "& {Install-Module $module -RequiredVersion $version -Force -Scope AllUsers}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Enables AzureRm prefix aliases for Az modules
|
||||||
|
sudo pwsh -command "& {Import-Module Az; Enable-AzureRmAlias -Scope LocalMachine}"
|
||||||
|
|
||||||
|
# powershell link was removed in powershell-6.0.0-beta9
|
||||||
|
sudo ln -s /usr/local/bin/pwsh /usr/local/bin/powershell
|
||||||
|
|
||||||
|
# fix ~/.azure directory permissions
|
||||||
|
sudo chown -R ${USER}: $HOME/.azure
|
||||||
84
images/macos/provision/core/pypy.sh
Normal file
84
images/macos/provision/core/pypy.sh
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
################################################################################
|
||||||
|
## File: pypy.sh
|
||||||
|
## Desc: Installs PyPy
|
||||||
|
################################################################################
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function InstallPyPy
|
||||||
|
{
|
||||||
|
PACKAGE_URL=$1
|
||||||
|
|
||||||
|
PACKAGE_TAR_NAME=$(echo $PACKAGE_URL | awk -F/ '{print $NF}')
|
||||||
|
echo "Downloading tar archive '$PACKAGE_TAR_NAME' - '$PACKAGE_URL'"
|
||||||
|
PACKAGE_TAR_TEMP_PATH="/tmp/$PACKAGE_TAR_NAME"
|
||||||
|
wget -q -O $PACKAGE_TAR_TEMP_PATH $PACKAGE_URL
|
||||||
|
|
||||||
|
echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder"
|
||||||
|
tar xf $PACKAGE_TAR_TEMP_PATH -C /tmp
|
||||||
|
|
||||||
|
# Get Python version
|
||||||
|
PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/}
|
||||||
|
MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1)
|
||||||
|
PYTHON_MAJOR="python$MAJOR_VERSION"
|
||||||
|
|
||||||
|
if [ $MAJOR_VERSION != 2 ]; then
|
||||||
|
PYPY_MAJOR="pypy$MAJOR_VERSION"
|
||||||
|
else
|
||||||
|
PYPY_MAJOR="pypy"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE_TEMP_FOLDER="/tmp/$PACKAGE_NAME"
|
||||||
|
PYTHON_FULL_VERSION=$("$PACKAGE_TEMP_FOLDER/bin/$PYPY_MAJOR" -c "import sys;print('{}.{}.{}'.format(sys.version_info[0],sys.version_info[1],sys.version_info[2]))")
|
||||||
|
|
||||||
|
# PyPy folder structure
|
||||||
|
PYPY_TOOLCACHE_PATH=$AGENT_TOOLSDIRECTORY/PyPy
|
||||||
|
PYPY_TOOLCACHE_VERSION_PATH=$PYPY_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
||||||
|
PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64
|
||||||
|
|
||||||
|
echo "Check if PyPy hostedtoolcache folder exist..."
|
||||||
|
if [ ! -d $PYPY_TOOLCACHE_PATH ]; then
|
||||||
|
mkdir -p $PYPY_TOOLCACHE_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder"
|
||||||
|
mkdir $PYPY_TOOLCACHE_VERSION_PATH
|
||||||
|
|
||||||
|
echo "Move PyPy '$PACKAGE_TEMP_FOLDER' binaries to '$PYPY_TOOLCACHE_VERSION_ARCH_PATH' folder"
|
||||||
|
mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH
|
||||||
|
|
||||||
|
echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)"
|
||||||
|
cd $PYPY_TOOLCACHE_VERSION_ARCH_PATH/bin
|
||||||
|
ln -s $PYPY_MAJOR $PYTHON_MAJOR
|
||||||
|
ln -s $PYTHON_MAJOR python
|
||||||
|
|
||||||
|
chmod +x ./python ./$PYTHON_MAJOR
|
||||||
|
|
||||||
|
echo "Install latest Pip"
|
||||||
|
./python -m ensurepip
|
||||||
|
./python -m pip install --ignore-installed pip
|
||||||
|
|
||||||
|
echo "Create complete file"
|
||||||
|
touch $PYPY_TOOLCACHE_VERSION_PATH/x64.complete
|
||||||
|
|
||||||
|
echo "Remove '$PACKAGE_TAR_TEMP_PATH'"
|
||||||
|
rm -f $PACKAGE_TAR_TEMP_PATH
|
||||||
|
}
|
||||||
|
|
||||||
|
# PyPy 7.3.1 relies on system libffi.6.dylib, which is not existed in in libffi 3.3 release. As a workaround symlink can be created
|
||||||
|
ln -s libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib
|
||||||
|
|
||||||
|
uri="https://downloads.python.org/pypy/"
|
||||||
|
pypyVersions=$(curl -4 -s --compressed $uri | grep 'osx64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')
|
||||||
|
|
||||||
|
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
|
||||||
|
|
||||||
|
for toolsetVersion in $toolsetVersions; do
|
||||||
|
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
|
||||||
|
if [[ -z "$latestMajorPyPyVersion" ]]; then
|
||||||
|
echo "Failed to get PyPy version '$toolsetVersion'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
InstallPyPy $latestMajorPyPyVersion
|
||||||
|
done
|
||||||
10
images/macos/provision/core/python.sh
Executable file
10
images/macos/provision/core/python.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
echo "Installing Python Tooling"
|
||||||
|
|
||||||
|
echo "Brew Installing Python 3"
|
||||||
|
/usr/local/bin/brew install python3
|
||||||
|
|
||||||
|
echo "Brew Installing Python 2"
|
||||||
|
# Create local tap with formula due to python2 formula depreciation
|
||||||
|
/usr/local/bin/brew tap-new local/python2
|
||||||
|
FORMULA_PATH=$(/usr/local/bin/brew extract python@2 local/python2 | grep "Homebrew/Library/Taps")
|
||||||
|
/usr/local/bin/brew install $FORMULA_PATH
|
||||||
2
images/macos/provision/core/reboot.sh
Normal file
2
images/macos/provision/core/reboot.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
shutdown -r now
|
||||||
14
images/macos/provision/core/ruby.sh
Executable file
14
images/macos/provision/core/ruby.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ $(id -u) -eq 0 ]; then
|
||||||
|
echo "This script can not run as root. Aborting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We can't install latest ruby 2.7 as a default version related with bug
|
||||||
|
# https://github.com/fastlane/fastlane/issues/15397
|
||||||
|
echo Installing Ruby...
|
||||||
|
/usr/local/bin/brew install ruby@2.6
|
||||||
|
ln -sf /usr/local/opt/ruby\@2.6 /usr/local/opt/ruby
|
||||||
29
images/macos/provision/core/rubygem.sh
Executable file
29
images/macos/provision/core/rubygem.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
echo Updating RubyGems...
|
||||||
|
gem update --system
|
||||||
|
|
||||||
|
echo Installing xcode-install utility...
|
||||||
|
gem install xcode-install --force
|
||||||
|
|
||||||
|
echo Installing CocoaPods...
|
||||||
|
gem install cocoapods
|
||||||
|
|
||||||
|
# fix nomad-cli installation
|
||||||
|
if is_HighSierra; then
|
||||||
|
brew install libxml2
|
||||||
|
gem install nokogiri -v 1.6.8.1 -- --use-system-libraries --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Installing nomad-cli...
|
||||||
|
gem install nomad-cli
|
||||||
|
|
||||||
|
echo Installing xcpretty...
|
||||||
|
gem install xcpretty
|
||||||
|
|
||||||
|
echo Installing bundler...
|
||||||
|
gem install bundler --force
|
||||||
|
|
||||||
|
echo Installing fastlane tools...
|
||||||
|
gem install fastlane
|
||||||
19
images/macos/provision/core/rust.sh
Normal file
19
images/macos/provision/core/rust.sh
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo Installing Rustup...
|
||||||
|
brew install rustup-init
|
||||||
|
|
||||||
|
echo Installing Rust language...
|
||||||
|
rustup-init -y --no-modify-path --default-toolchain=stable --profile=minimal
|
||||||
|
|
||||||
|
echo Initialize environment variables...
|
||||||
|
CARGO_HOME=$HOME/.cargo
|
||||||
|
source $CARGO_HOME/env
|
||||||
|
|
||||||
|
echo Install common tools...
|
||||||
|
cargo install bindgen cbindgen cargo-audit cargo-outdated
|
||||||
|
|
||||||
|
echo Cleanup Cargo registry cached data...
|
||||||
|
rm -rf $CARGO_HOME/registry/*
|
||||||
22
images/macos/provision/core/stack.sh
Normal file
22
images/macos/provision/core/stack.sh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Get the latest Stack version..."
|
||||||
|
StackRelease=$(curl -s "https://api.github.com/repos/commercialhaskell/stack/releases/latest")
|
||||||
|
DownloadUrl=$(echo $StackRelease | jq -r '.assets[].browser_download_url | select(contains("osx-x86_64.tar.gz"))' | head -n 1)
|
||||||
|
StackVersion=$(echo $StackRelease | jq -r '.name' | cut -c2-)
|
||||||
|
StackArchive="/tmp/stack.tar.gz"
|
||||||
|
|
||||||
|
echo "Download stack version $StackVersion..."
|
||||||
|
wget $DownloadUrl -O $StackArchive
|
||||||
|
|
||||||
|
StackToolcachePath="$AGENT_TOOLSDIRECTORY/stack/$StackVersion"
|
||||||
|
DestinationPath="$StackToolcachePath/x64"
|
||||||
|
|
||||||
|
mkdir -p $DestinationPath
|
||||||
|
|
||||||
|
echo "Unzip stack archive..."
|
||||||
|
tar -xzf $StackArchive -C $DestinationPath --strip 1
|
||||||
|
|
||||||
|
touch $StackToolcachePath/x64.complete
|
||||||
|
|
||||||
|
echo "export PATH="\$PATH":$DestinationPath" >> "$HOME/.bashrc"
|
||||||
27
images/macos/provision/core/toolcache-high-sierra.sh
Normal file
27
images/macos/provision/core/toolcache-high-sierra.sh
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# The script downloads macos hosted tool cache for several Python versions
|
||||||
|
# and installs them onto the system
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
SOURCE_URL="https://vstsagenttools.blob.core.windows.net/tools"
|
||||||
|
PACKAGES_DIR=/tmp/hostedtoolcache
|
||||||
|
|
||||||
|
# Download hosted tool cache with azcopy
|
||||||
|
azcopy copy $SOURCE_URL $PACKAGES_DIR --include-path "hostedtoolcache/macos-10.13" --recursive
|
||||||
|
mv $PACKAGES_DIR/tools/hostedtoolcache/macos-10.13/* $PACKAGES_DIR
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "An error occured while downloading hostedtoolcache"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install the tools from the hosted tool cache
|
||||||
|
packages=$(find $PACKAGES_DIR -name package.json)
|
||||||
|
for package in $packages; do
|
||||||
|
pushd $(dirname $package)
|
||||||
|
npm install
|
||||||
|
popd
|
||||||
|
done;
|
||||||
38
images/macos/provision/core/toolcache.sh
Executable file
38
images/macos/provision/core/toolcache.sh
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Download hosted tool cache with npm
|
||||||
|
NPM_FEED="npm.pkg.github.com"
|
||||||
|
TOOLSET_PATH="$HOME/image-generation/toolcache.json"
|
||||||
|
|
||||||
|
echo "Installing npm-toolcache..."
|
||||||
|
PACKAGE_LIST=($(jq -r 'keys | .[]' $TOOLSET_PATH))
|
||||||
|
|
||||||
|
# Execute in /tmp folder to avoid node_modules creation in $HOME
|
||||||
|
pushd /tmp
|
||||||
|
|
||||||
|
# GitHub Package Registry doesn't support downloading public packages without auth so we have to authorize
|
||||||
|
# Put the .npmrc to /tmp directory on the image to make sure that it will deleted after image generation
|
||||||
|
echo "Configure auth for github package registry"
|
||||||
|
echo "@actions:registry=https://${NPM_FEED}/" >> ".npmrc"
|
||||||
|
echo "//${NPM_FEED}/:_authToken=${GITHUB_FEED_TOKEN}" >> ".npmrc"
|
||||||
|
|
||||||
|
echo "Install packages..."
|
||||||
|
for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do
|
||||||
|
PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH))
|
||||||
|
for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do
|
||||||
|
echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}"
|
||||||
|
|
||||||
|
npm install ${PACKAGE_NAME}@${PACKAGE_VERSION}
|
||||||
|
|
||||||
|
exit_code=$?
|
||||||
|
if [ $exit_code -ne 0 ]; then
|
||||||
|
echo "${PACKAGE_NAME}@${PACKAGE_VERSION} installation failure; Error:${exit_code}"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done;
|
||||||
|
done;
|
||||||
|
|
||||||
|
rm -f ".npmrc"
|
||||||
|
|
||||||
|
popd
|
||||||
58
images/macos/provision/core/toolset.ps1
Normal file
58
images/macos/provision/core/toolset.ps1
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
################################################################################
|
||||||
|
## File: toolset.ps1
|
||||||
|
## Team: CI-Build
|
||||||
|
## Desc: Install toolset
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
Function Get-ToolcacheFromToolset {
|
||||||
|
$toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
|
||||||
|
$toolsetJson = Get-Content -Raw $toolsetPath | ConvertFrom-Json
|
||||||
|
return $toolsetJson.toolcache
|
||||||
|
}
|
||||||
|
|
||||||
|
Function Install-Asset {
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[object] $ReleaseAsset
|
||||||
|
)
|
||||||
|
|
||||||
|
$assetFolderPath = Join-Path "/tmp" "$($ReleaseAsset.filename)-temp-dir"
|
||||||
|
New-Item -ItemType Directory -Path $assetFolderPath | Out-Null
|
||||||
|
$assetArchivePath = Join-Path $assetFolderPath $ReleaseAsset.filename
|
||||||
|
|
||||||
|
Write-Host "Download $($ReleaseAsset.filename) archive to the $assetFolderPath folder..."
|
||||||
|
wget -P $assetFolderPath $ReleaseAsset.download_url --retry-connrefused --retry-on-http-error=429,500,503 --wait=30 --no-verbose
|
||||||
|
|
||||||
|
Write-Host "Extract $($ReleaseAsset.filename) content..."
|
||||||
|
tar -xzf $assetArchivePath -C $assetFolderPath
|
||||||
|
|
||||||
|
Write-Host "Invoke installation script..."
|
||||||
|
Push-Location -Path $assetFolderPath
|
||||||
|
Invoke-Expression "bash ./setup.sh"
|
||||||
|
Pop-Location
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get toolcache content from toolset
|
||||||
|
$toolsToInstall = @("Python", "Node", "Go")
|
||||||
|
$tools = Get-ToolcacheFromToolset | Where-Object {$ToolsToInstall -contains $_.Name}
|
||||||
|
|
||||||
|
foreach ($tool in $tools) {
|
||||||
|
# Get versions manifest for current tool
|
||||||
|
$assets = Invoke-RestMethod $tool.url
|
||||||
|
|
||||||
|
# Get github release asset for each version
|
||||||
|
foreach ($version in $tool.versions) {
|
||||||
|
$asset = $assets | Where-Object version -like $version `
|
||||||
|
| Select-Object -ExpandProperty files `
|
||||||
|
| Where-Object { ($_.platform -eq $tool.platform) -and ($_.arch -eq $tool.arch) -and ($_.platform_version -eq $tool.platform_version)} `
|
||||||
|
| Select-Object -First 1
|
||||||
|
|
||||||
|
Write-Host "Installing $($tool.name) $version..."
|
||||||
|
if ($null -ne $asset) {
|
||||||
|
Install-Asset -ReleaseAsset $asset
|
||||||
|
} else {
|
||||||
|
Write-Host "Asset was not found in versions manifest"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
15
images/macos/provision/core/vcpkg.sh
Normal file
15
images/macos/provision/core/vcpkg.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
# Set env variable for vcpkg
|
||||||
|
VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg
|
||||||
|
echo "export VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a ~/.bashrc
|
||||||
|
|
||||||
|
# Install vcpkg
|
||||||
|
git clone --depth=1 https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT
|
||||||
|
$VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh
|
||||||
|
$VCPKG_INSTALLATION_ROOT/vcpkg integrate install
|
||||||
|
chmod -R 0777 $VCPKG_INSTALLATION_ROOT
|
||||||
|
ln -sf $VCPKG_INSTALLATION_ROOT/vcpkg /usr/local/bin
|
||||||
27
images/macos/provision/core/vsmac.sh
Normal file
27
images/macos/provision/core/vsmac.sh
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
source ~/utils/xamarin-utils.sh
|
||||||
|
|
||||||
|
VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac')
|
||||||
|
VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION)
|
||||||
|
|
||||||
|
TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`
|
||||||
|
TMPMOUNT_DOWNLOADS="$TMPMOUNT/downloads"
|
||||||
|
mkdir $TMPMOUNT_DOWNLOADS
|
||||||
|
|
||||||
|
download_with_retries $VSMAC_DOWNLOAD_URL $TMPMOUNT_DOWNLOADS
|
||||||
|
|
||||||
|
echo "Mounting Visual studio..."
|
||||||
|
VISUAL_STUDIO_NAME=${VSMAC_DOWNLOAD_URL##*/}
|
||||||
|
hdiutil attach "$TMPMOUNT_DOWNLOADS/$VISUAL_STUDIO_NAME" -mountpoint "$TMPMOUNT"
|
||||||
|
|
||||||
|
echo "Moving Visual Studio to /Applications/..."
|
||||||
|
pushd $TMPMOUNT
|
||||||
|
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
|
||||||
|
|
||||||
|
echo "Launching vstools..."
|
||||||
|
/Applications/Visual\ Studio.app/Contents/MacOS/vstool
|
||||||
|
|
||||||
|
popd
|
||||||
|
sudo hdiutil detach "$TMPMOUNT"
|
||||||
|
sudo rm -rf "$TMPMOUNT"
|
||||||
64
images/macos/provision/core/xamarin-android-ndk.sh
Normal file
64
images/macos/provision/core/xamarin-android-ndk.sh
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
|
ANDROID_HOME=$HOME/Library/Android/sdk
|
||||||
|
ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
|
||||||
|
SDKMANAGER=$ANDROID_HOME/tools/bin/sdkmanager
|
||||||
|
|
||||||
|
# Android NDK v16 is not compatible with old Xamarin.Android SDK
|
||||||
|
# and fails builds with BundleAssemblies enabled
|
||||||
|
ANDROID_NDK_15_HOME=$HOME/Library/Android/sdk/android-ndk-r15c
|
||||||
|
ANDROID_NDK_PACKAGE="android-ndk-r15c-darwin-x86_64.zip"
|
||||||
|
ANDROID_NDK_URL="https://dl.google.com/android/repository/${ANDROID_NDK_PACKAGE}"
|
||||||
|
|
||||||
|
echo "Install and setup Android NDK v15..."
|
||||||
|
cd $HOME
|
||||||
|
|
||||||
|
download_with_retries $ANDROID_NDK_URL
|
||||||
|
|
||||||
|
echo "Unzipping $ANDROID_NDK_URL..."
|
||||||
|
unzip -q $ANDROID_NDK_PACKAGE -d ${ANDROID_HOME}
|
||||||
|
|
||||||
|
echo "Removing $ANDROID_NDK_URL..."
|
||||||
|
rm -rf "$ANDROID_NDK_PACKAGE"
|
||||||
|
|
||||||
|
XAMARIN_ANDROID_NDK_PATH=$HOME/Library/Developer/Xamarin
|
||||||
|
mkdir -p $XAMARIN_ANDROID_NDK_PATH
|
||||||
|
|
||||||
|
echo "Preparing symlink for $ANDROID_NDK_15_HOME ..."
|
||||||
|
ln -s $ANDROID_NDK_15_HOME $XAMARIN_ANDROID_NDK_PATH/android-ndk
|
||||||
|
|
||||||
|
# NDK r17 does not include MIPS/MIPS64 toolchains anymore, NDK r16b still provides this a supplement
|
||||||
|
echo "Checking NDK installation contains required MIPS toolchains…"
|
||||||
|
NDK_BUNDLE_TOOLCHAINS=$ANDROID_NDK_HOME/toolchains
|
||||||
|
ANDROID_NDK_R16B_PATH=$ANDROID_HOME/ndk/16.1.4479499
|
||||||
|
MIPS64_TOOLCHAIN=$NDK_BUNDLE_TOOLCHAINS/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin
|
||||||
|
MIPS_TOOLCHAIN=$NDK_BUNDLE_TOOLCHAINS/mipsel-linux-android-4.9/prebuilt/darwin-x86_64/bin
|
||||||
|
|
||||||
|
if [ -d $MIPS64_TOOLCHAIN ] && [ -d $MIPS_TOOLCHAIN ]; then
|
||||||
|
echo "MIPS64 and MIPS toolchain already installed for NDK bundle - not reinstalling."
|
||||||
|
else
|
||||||
|
pushd $ANDROID_HOME
|
||||||
|
|
||||||
|
echo "Installing ndk r16b..."
|
||||||
|
echo y | $SDKMANAGER "ndk;16.1.4479499"
|
||||||
|
|
||||||
|
echo "Cleaning potential pre-existing MIPS toolchain directories"
|
||||||
|
rm -rf ndk-bundle/toolchains/mips*
|
||||||
|
|
||||||
|
echo "Moving MIPS toolchains to $ANDROID_NDK_HOME/toolchains"
|
||||||
|
mv $ANDROID_NDK_R16B_PATH/toolchains/mips** ndk-bundle/toolchains/
|
||||||
|
|
||||||
|
echo "Delete ndk r16b..."
|
||||||
|
rm -rf $ANDROID_NDK_R16B_PATH
|
||||||
|
|
||||||
|
if [ ! -d $MIPS64_TOOLCHAIN ] || [ ! -d $MIPS_TOOLCHAIN ]; then
|
||||||
|
echo "MIPS toolchains not installed correctly! Check whether $ANDROID_NDK_HOME/toolchains/mips* does not exist."
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Latest versions of NDK doesn't include GCC, NDK r18 does
|
||||||
|
echo "Installing ndk r18B..."
|
||||||
|
echo y | $SDKMANAGER "ndk;18.1.5063045"
|
||||||
|
echo "export ANDROID_NDK_18R_PATH=${ANDROID_HOME}/ndk/18.1.5063045" >> "${HOME}/.bashrc"
|
||||||
81
images/macos/provision/core/xamarin.sh
Executable file
81
images/macos/provision/core/xamarin.sh
Executable file
@@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
source ~/utils/utils.sh
|
||||||
|
source ~/utils/xamarin-utils.sh
|
||||||
|
|
||||||
|
MONO_VERSIONS=($(get_toolset_value '.xamarin."mono-versions" | reverse | .[]'))
|
||||||
|
XAMARIN_IOS_VERSIONS=($(get_toolset_value '.xamarin."ios-versions" | reverse | .[]'))
|
||||||
|
XAMARIN_MAC_VERSIONS=($(get_toolset_value '.xamarin."mac-versions" | reverse | .[]'))
|
||||||
|
XAMARIN_ANDROID_VERSIONS=($(get_toolset_value '.xamarin."android-versions" | reverse | .[]'))
|
||||||
|
LATEST_SDK_SYMLINK=$(get_toolset_value '.xamarin.bundles[0].symlink')
|
||||||
|
CURRENT_SDK_SYMLINK=$(get_toolset_value '.xamarin."bundle-default"')
|
||||||
|
|
||||||
|
if [ "$CURRENT_SDK_SYMLINK" == "latest" ]; then
|
||||||
|
CURRENT_SDK_SYMLINK=$LATEST_SDK_SYMLINK
|
||||||
|
fi
|
||||||
|
|
||||||
|
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
|
||||||
|
IOS_VERSIONS_PATH='/Library/Frameworks/Xamarin.iOS.framework/Versions'
|
||||||
|
ANDROID_VERSIONS_PATH='/Library/Frameworks/Xamarin.Android.framework/Versions'
|
||||||
|
MAC_VERSIONS_PATH='/Library/Frameworks/Xamarin.Mac.framework/Versions'
|
||||||
|
|
||||||
|
TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`
|
||||||
|
TMPMOUNT_FRAMEWORKS="$TMPMOUNT/frameworks"
|
||||||
|
createBackupFolders
|
||||||
|
|
||||||
|
pushd $TMPMOUNT
|
||||||
|
|
||||||
|
# Download NUnit console
|
||||||
|
downloadNUnitConsole
|
||||||
|
|
||||||
|
# Install Mono sdks
|
||||||
|
for VERSION in "${MONO_VERSIONS[@]}"; do installMono $VERSION; done
|
||||||
|
sudo mv -v $TMPMOUNT_FRAMEWORKS/mono/* $MONO_VERSIONS_PATH/
|
||||||
|
|
||||||
|
# Install Xamarin.iOS sdks
|
||||||
|
for VERSION in "${XAMARIN_IOS_VERSIONS[@]}"; do installXamarinIOS $VERSION; done
|
||||||
|
sudo mv -v $TMPMOUNT_FRAMEWORKS/ios/* $IOS_VERSIONS_PATH/
|
||||||
|
|
||||||
|
# Install Xamarin.Mac sdks
|
||||||
|
for VERSION in "${XAMARIN_MAC_VERSIONS[@]}"; do installXamarinMac $VERSION; done
|
||||||
|
sudo mv -v $TMPMOUNT_FRAMEWORKS/mac/* $MAC_VERSIONS_PATH/
|
||||||
|
|
||||||
|
# Install Xamarin.Android sdks
|
||||||
|
for VERSION in "${XAMARIN_ANDROID_VERSIONS[@]}"; do installXamarinAndroid $VERSION; done
|
||||||
|
sudo mv -v $TMPMOUNT_FRAMEWORKS/android/* $ANDROID_VERSIONS_PATH/
|
||||||
|
|
||||||
|
|
||||||
|
# Create bundles
|
||||||
|
BUNDLES_COUNT=$(get_toolset_value '.xamarin.bundles | length')
|
||||||
|
for ((BUNDLE_INDEX=0; BUNDLE_INDEX<BUNDLES_COUNT; BUNDLE_INDEX++)); do
|
||||||
|
SYMLINK=$(get_toolset_value ".xamarin.bundles[$BUNDLE_INDEX].symlink")
|
||||||
|
MONO=$(get_toolset_value ".xamarin.bundles[$BUNDLE_INDEX].mono")
|
||||||
|
IOS=$(get_toolset_value ".xamarin.bundles[$BUNDLE_INDEX].ios")
|
||||||
|
MAC=$(get_toolset_value ".xamarin.bundles[$BUNDLE_INDEX].mac")
|
||||||
|
ANDROID=$(get_toolset_value ".xamarin.bundles[$BUNDLE_INDEX].android")
|
||||||
|
createBundle $SYMLINK $MONO $IOS $MAC $ANDROID
|
||||||
|
done
|
||||||
|
|
||||||
|
# Symlinks for the latest Xamarin bundle
|
||||||
|
createBundleLink $LATEST_SDK_SYMLINK "Latest"
|
||||||
|
createBundleLink $CURRENT_SDK_SYMLINK "Current"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Fix nuget in some mono versions because of known bugs
|
||||||
|
#
|
||||||
|
|
||||||
|
# Fix Mono issue with default nuget: https://github.com/mono/mono/issues/17637
|
||||||
|
installNuget "6.4.0" "5.3.1"
|
||||||
|
|
||||||
|
if is_Less_Catalina; then
|
||||||
|
installNuget "4.8.1" "4.3.0"
|
||||||
|
installNuget "5.0.1" "4.3.0"
|
||||||
|
installNuget "5.2.0" "4.3.0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Creating UWP Shim to hack UWP build failure
|
||||||
|
createUWPShim
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Clean up packages..."
|
||||||
|
sudo rm -rf "$TMPMOUNT"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user