diff --git a/docs/create-image-and-azure-resources.md b/docs/create-image-and-azure-resources.md index bdb619d3..1f2676b8 100644 --- a/docs/create-image-and-azure-resources.md +++ b/docs/create-image-and-azure-resources.md @@ -1,5 +1,5 @@ # Virtual-Environments -The virtual-environments project uses [Packer](https://www.packer.io/) to generate disk images for the following platforms: Windows 2016/2019, Ubuntu 16.04/18.04/20.04. +The virtual-environments project uses [Packer](https://www.packer.io/) to generate disk images for the following platforms: Windows 2016/2019/2022, Ubuntu 18.04/20.04. Each image is configured through a JSON template that Packer understands and which specifies where to build the image (Azure in this case), and what scripts to run to install software and prepare the disk. The Packer process initializes a connection to Azure subscription via Azure CLI, and automatically creates the temporary Azure resources required to build the source VM(temporary resource group, network interfaces, and VM from the "clean" image specified in the template). If the VM deployment succeeds, the build agent connects to the VM and starts to execute installation steps from the JSON template. @@ -56,13 +56,13 @@ Set-Location C:\virtual-environments Import-Module .\helpers\GenerateResourcesAndImage.ps1 -GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1604 -AzureLocation "East US" +GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1804 -AzureLocation "East US" ``` Where: - `SubscriptionId` - The Azure subscription Id where resources will be created. - `ResourceGroupName` - The Azure resource group name where the Azure resources will be created. - `ImageGenerationRepositoryRoot` - The root path of the image generation repository source. -- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Ubuntu1604", "Ubuntu1804", "Ubuntu2004". +- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004". - `AzureLocation` - The location of the resources being created in Azure. For example "East US". The function automatically creates all required Azure resources and kicks off packer image generation for the selected image type. diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1 index 623a08ea..4a493008 100644 --- a/helpers/GenerateResourcesAndImage.ps1 +++ b/helpers/GenerateResourcesAndImage.ps1 @@ -4,9 +4,8 @@ enum ImageType { Windows2016 = 0 Windows2019 = 1 Windows2022 = 2 - Ubuntu1604 = 3 - Ubuntu1804 = 4 - Ubuntu2004 = 5 + Ubuntu1804 = 3 + Ubuntu2004 = 4 } Function Get-PackerTemplatePath { @@ -27,9 +26,6 @@ Function Get-PackerTemplatePath { ([ImageType]::Windows2022) { $relativeTemplatePath = Join-Path "win" "windows2022.json" } - ([ImageType]::Ubuntu1604) { - $relativeTemplatePath = Join-Path "linux" "ubuntu1604.json" - } ([ImageType]::Ubuntu1804) { $relativeTemplatePath = Join-Path "linux" "ubuntu1804.json" } @@ -76,7 +72,7 @@ Function GenerateResourcesAndImage { The root path of the image generation repository source. .PARAMETER ImageType - The type of the image being generated. Valid options are: {"Windows2016", "Windows2019", "Ubuntu1604", "Ubuntu1804", "Ubuntu2004"}. + The type of the image being generated. Valid options are: {"Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004"}. .PARAMETER AzureLocation The location of the resources being created in Azure. For example "East US". @@ -98,7 +94,7 @@ Function GenerateResourcesAndImage { This parameter cannot be used in combination with the virtual_network_name packer parameter. .EXAMPLE - GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1604 -AzureLocation "East US" + GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1804 -AzureLocation "East US" #> param ( [Parameter(Mandatory = $True)] diff --git a/images.CI/linux-and-win/azure-pipelines/ubuntu1604.yml b/images.CI/linux-and-win/azure-pipelines/ubuntu1604.yml deleted file mode 100644 index 5a5d2714..00000000 --- a/images.CI/linux-and-win/azure-pipelines/ubuntu1604.yml +++ /dev/null @@ -1,12 +0,0 @@ -trigger: none -pr: - autoCancel: true - branches: - include: - - main - -jobs: -- template: image-generation.yml - parameters: - image_type: ubuntu1604 - image_readme_name: Ubuntu1604-README.md \ No newline at end of file diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md deleted file mode 100644 index 36279209..00000000 --- a/images/linux/Ubuntu1604-README.md +++ /dev/null @@ -1,350 +0,0 @@ -| Announcements | -|-| -| [[ubuntu] GCC and Gfortran 11 will be removed on May, 31](https://github.com/actions/virtual-environments/issues/3467) | -| [[Ubuntu] .NET SDK pre-installation policy will be changed on June 14](https://github.com/actions/virtual-environments/issues/3338) | -| [Ubuntu 16.04 environment will be removed on September 20, 2021](https://github.com/actions/virtual-environments/issues/3287) | -*** -# Ubuntu 16.04.7 LTS -- Linux kernel version: 4.15.0-1113-azure -- Image Version: 20210531.0 - -## Installed Software -### Language and Runtime -- Bash 4.3.48(1)-release -- Clang 9.0.1 -- Clang-format 9.0.1 -- Erlang 24.0.1 (Eshell 12.0.1) -- GNU C++ 5.5.0, 9.3.0 -- GNU Fortran 5.5.0, 9.3.0 -- Julia 1.6.1 -- Mono 6.12.0.122 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-xenial main) -- MSBuild 16.6.0.15201 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node 14.17.0 -- Perl 5.22.1 -- Python 2.7.12 -- Python3 3.5.2 -- Ruby 2.3.1p112 -- Swift 5.4.1 - -### Package Management -- cpan 1.61 -- Helm 3.6.0 -- Homebrew 3.1.9 -- Miniconda 4.9.2 -- Npm 6.14.13 -- Pip 8.1.1 -- Pip3 8.1.1 -- RubyGems 2.5.2 -- Vcpkg (build from master \<7bc5b8c>) -- Yarn 1.22.10 - -#### Environment variables -| Name | Value | -| ----------------------- | ---------------------- | -| CONDA | /usr/share/miniconda | -| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg | - -### Project Management -- Ant 1.9.6 -- Gradle 7.0.2 -- Maven 3.8.1 -- Sbt 1.5.2 - -### Tools -- Ansible 2.9.22 -- apt-fast 1.9.11 -- AzCopy 10.10.0 (available by `azcopy` and `azcopy10` aliases) -- Bazel 4.1.0 -- Bazelisk 1.9.0 -- CMake 3.20.3 -- CodeQL Action Bundle 2.5.5 -- Docker Compose 1.29.2 -- Docker-Buildx 0.5.1 -- Docker-Moby Client 20.10.6+azure -- Docker-Moby Server 20.10.6+azure -- Git 2.31.1 (apt source repository: ppa:git-core/ppa) -- Git LFS 2.13.3 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) -- Git-ftp 1.0.2 -- Haveged 1.9.1 -- Heroku 7.54.0 -- HHVM (HipHop VM) 4.56.6 -- jq 1.5 -- Kind 0.11.1 -- Kubectl 1.20.1-5-g76a04fc -- Kustomize 4.1.3 -- Leiningen 2.9.6 -- MediaInfo 0.7.82 -- Mercurial 4.4.1 -- Minikube 1.20.0 -- Newman 5.2.3 -- nvm 0.38.0 -- OpenSSL 1.0.2g 1 Mar 2016 -- Packer 1.7.2 -- PhantomJS 2.1.1 -- Pulumi 3.3.1 -- R 4.1.0 -- Sphinx Open Source Search Server 2.2.9 -- SVN 1.9.3 -- Terraform 0.15.4 -- zstd 1.5.0 (homebrew) - -### CLI Tools -- Alibaba Cloud CLI 3.0.77 -- AWS CLI 1.19.84 -- AWS CLI Session manager plugin 1.2.54.0 -- AWS SAM CLI 1.23.0 -- Azure CLI (azure-cli) 2.24.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) -- Azure CLI (azure-devops) 0.18.0 -- GitHub CLI 1.10.3 -- Google Cloud SDK 342.0.0 (apt source repository: https://packages.cloud.google.com/apt) -- Hub CLI 2.14.2 -- Netlify CLI 3.32.5 -- OpenShift CLI 4.7.12 -- ORAS CLI 0.11.1 -- Vercel CLI 23.0.0 - -### Java -| Version | Vendor | Environment Variable | -| ------------------- | ------------- | -------------------- | -| 8.0.292+1 (default) | Adopt OpenJDK | JAVA_HOME_8_X64 | -| 11.0.11+9 | Adopt OpenJDK | JAVA_HOME_11_X64 | -| 12.0.2+10 | Adopt OpenJDK | JAVA_HOME_12_X64 | - -### PHP -| Tool | Version | -| -------- | ----------------------------------------------- | -| PHP | 5.6.40 7.0.33 7.1.33 7.2.34 7.3.28 7.4.18 8.0.5 | -| Composer | 2.0.14 | -| PHPUnit | 8.5.15 | - -### Haskell -- Cabal 3.4.0.0 -- GHC 9.0.1 (apt source repository: ppa:hvr/ghc) -- GHCup 0.1.14.1 -- Stack 2.7.1 - -### Rust Tools -- Cargo 1.52.0 -- Rust 1.52.1 -- Rustdoc 1.52.1 -- Rustup 1.24.2 - -#### Packages -- Bindgen 0.58.1 -- Cargo audit 0.14.1 -- Cargo clippy 0.1.52 -- Cargo outdated 0.9.15 -- Cbindgen 0.19.0 -- Rustfmt 1.4.36 - -### Browsers and Drivers -- Google Chrome 91.0.4472.77 -- ChromeDriver 91.0.4472.19 -- Mozilla Firefox 88.0 -- Geckodriver 0.29.1 -- Chromium 91.0.4472.0 - -#### Environment variables -| Name | Value | -| --------------- | ------------------------------ | -| CHROMEWEBDRIVER | /usr/local/share/chrome_driver | -| GECKOWEBDRIVER | /usr/local/share/gecko_driver | - -### .NET Core 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.520 2.1.521 2.1.522 2.1.523 2.1.524 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.617 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 2.1.810 2.1.811 2.1.812 2.1.813 2.1.814 2.1.815 2.1.816 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.110 3.1.111 3.1.112 3.1.113 3.1.114 3.1.115 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403 3.1.404 3.1.405 3.1.406 3.1.407 3.1.408 3.1.409 5.0.100 5.0.101 5.0.102 5.0.103 5.0.104 5.0.200 5.0.201 5.0.202 5.0.203 5.0.300 - -### Databases -- MongoDB 4.4.6 (apt source repository: https://repo.mongodb.org/apt/ubuntu) -- Postgre SQL 13.3 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) -- sqlite3 3.11.0 - -#### MySQL -- MySQL 5.7.33 -- MySQL Server (user:root password:root) - -``` - MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' -``` -#### MS SQL Server Client Tools -- sqlcmd 17.7.0001.1 - -### Cached Tools -#### Go -- 1.13.15 -- 1.14.15 -- 1.15.12 - -#### Node.js -- 10.24.1 -- 12.22.1 -- 14.17.0 - -#### PyPy -- 2.7.18 [PyPy 7.3.5] -- 3.6.12 [PyPy 7.3.3] - -#### Python -- 2.7.18 -- 3.5.10 -- 3.6.13 -- 3.7.10 -- 3.8.10 -- 3.9.5 - -#### Ruby -- 2.4.10 -- 2.5.9 -- 2.6.7 -- 2.7.3 -- 3.0.1 - -#### Environment variables -| Name | Value | Architecture | -| --------------- | ----------------------------------- | ------------ | -| GOROOT_1_13_X64 | /opt/hostedtoolcache/go/1.13.15/x64 | x64 | -| GOROOT_1_14_X64 | /opt/hostedtoolcache/go/1.14.15/x64 | x64 | -| GOROOT_1_15_X64 | /opt/hostedtoolcache/go/1.15.12/x64 | x64 | - -### PowerShell Tools -- PowerShell 7.1.3 - -#### PowerShell Modules -| Module | Version | -| ---------- | ------- | -| MarkdownPS | 1.9 | -| Pester | 5.2.2 | - -#### Az PowerShell Modules -- 5.7.0 3.1.0.zip 4.4.0.zip - -### Web Servers -| Name | Version | ConfigFile | ServiceStatus | ListenPort | -| ------- | ------- | ------------------------- | ------------- | ---------- | -| apache2 | 2.4.18 | /etc/apache2/apache2.conf | inactive | 80 | -| nginx | 1.10.3 | /etc/nginx/nginx.conf | inactive | 80 | - -### Android -| Package Name | Version | -| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3 | -| Android SDK Platform-Tools | 31.0.2 | -| Android SDK Platforms | android-S (rev 4)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3) | -| Android SDK Tools | 26.1.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 | -| SDK Patch Applier v4 | 1 | - -#### Environment variables -| Name | Value | -| ---------------- | ------------------------------------------------------------------------------------ | -| ANDROID_HOME | /usr/local/lib/android/sdk | -| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | -| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk | - -### Cached Docker images -| Repository:Tag | Digest | Created | -| ---------------------- | ------------------------------------------------------------------------ | ---------- | -| alpine:3.11 | sha256:18a918a714d1368847b67173d120ebd110fcfae208305412f3005a61cdc7c20e | 2021-04-14 | -| alpine:3.12 | sha256:36553b10a4947067b9fbb7d532951066293a68eae893beba1d9235f7d11a20ad | 2021-04-14 | -| alpine:3.13 | sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f | 2021-04-14 | -| buildpack-deps:buster | sha256:b4ba9e547bb2e4f48186b234a816ec0182c86fda31f4de5c1eeb824a5d3330df | 2021-05-12 | -| buildpack-deps:stretch | sha256:fe5d31963e568ba5c418ad26c7c1391ddeedd801672236f081fc3e1e2950e27b | 2021-05-12 | -| debian:10 | sha256:acf7795dc91df17e10effee064bd229580a9c34213b4dba578d64768af5d8c51 | 2021-05-12 | -| debian:9 | sha256:4f8deed5755299e2d7ae1f5649656de89a6b7e30c0be37a3a1b4a49f0af51f7e | 2021-05-12 | -| node:10 | sha256:59531d2835edd5161c8f9512f9e095b1836f7a1fcb0ab73e005ec46047384911 | 2021-04-10 | -| node:10-alpine | sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e7268470cf2e28 | 2021-04-14 | -| node:12 | sha256:0d6b3522991d04ead0b119feaffafa6a8cd1b374218e9f997a1d4753b7064882 | 2021-05-12 | -| node:12-alpine | sha256:9a372efac4c436dfb6dbdea42f08d3ea60a0103a1df54a7da247e4bed1b327f7 | 2021-04-14 | -| node:14 | sha256:af9879e7473d347048c5d5919aa9775f27c33d92e4d58058ffdc08247f4bd902 | 2021-05-13 | -| node:14-alpine | sha256:f07ead757c93bc5e9e79978075217851d45a5d8e5c48eaf823e7f12d9bbc1d3c | 2021-05-13 | -| ubuntu:16.04 | sha256:9775877f420d453ef790e6832d77630a49b32a92b7bedf330adf4d8669f6600e | 2021-05-19 | -| ubuntu:18.04 | sha256:67b730ece0d34429b455c08124ffd444f021b81e06fa2d9cd0adaf0d0b875182 | 2021-05-19 | -| ubuntu:20.04 | sha256:adf73ca014822ad8237623d388cedf4d5346aa72c270c5acc01431cc93e18e2d | 2021-04-23 | - -### Installed apt packages -| Name | Version | -| ----------------- | ---------------------------- | -| binutils | 2.26.1-1ubuntu1~16.04.8 | -| bison | 2:3.0.4.dfsg-1 | -| brotli | 1.0.3-1ubuntu1~16.04.2 | -| build-essential | 12.1ubuntu2 | -| bzip2 | 1.0.6-8ubuntu0.2 | -| coreutils | 8.25-2ubuntu3~16.04 | -| curl | 7.47.0-1ubuntu2.19 | -| dbus | 1.10.6-1ubuntu3.6 | -| dnsutils | 1:9.10.3.dfsg.P4-8ubuntu1.19 | -| dpkg | 1.18.4ubuntu1.7 | -| fakeroot | 1.20.2-1ubuntu1 | -| file | 1:5.25-2ubuntu1.4 | -| flex | 2.6.0-11 | -| ftp | 0.17-33 | -| gnupg2 | 2.1.11-6ubuntu2.1 | -| haveged | 1.9.1-3 | -| imagemagick | 8:6.8.9.9-7ubuntu5.16 | -| iproute2 | 4.3.0-1ubuntu3.16.04.5 | -| iputils-ping | 3:20121221-5ubuntu2 | -| jq | 1.5+dfsg-1ubuntu0.1 | -| lib32z1 | 1:1.2.8.dfsg-2ubuntu4.3 | -| libc++-dev | 3.7.0-1ubuntu0.1 | -| libc++abi-dev | 3.7.0-1ubuntu0.1 | -| libcurl3 | 7.47.0-1ubuntu2.19 | -| libgbm-dev | 18.0.5-0ubuntu0~16.04.1 | -| libgconf-2-4 | 3.2.6-3ubuntu6 | -| libgsl-dev | 2.1+dfsg-2 | -| libgtk-3-0 | 3.18.9-1ubuntu3.3 | -| libicu55 | 55.1-7ubuntu0.5 | -| libmagic-dev | 1:5.25-2ubuntu1.4 | -| libmagickcore-dev | 8:6.8.9.9-7ubuntu5.16 | -| libmagickwand-dev | 8:6.8.9.9-7ubuntu5.16 | -| libsecret-1-dev | 0.18.4-1ubuntu2 | -| libsqlite3-dev | 3.11.0-1ubuntu1.5 | -| libunwind8 | 1.1-4.1 | -| libxkbfile-dev | 1:1.0.9-0ubuntu1 | -| libxss1 | 1:1.2.2-1 | -| locales | 2.23-0ubuntu11.3 | -| m4 | 1.4.17-5 | -| mediainfo | 0.7.82-1 | -| net-tools | 1.60-26ubuntu1 | -| netcat | 1.10-41 | -| openssh-client | 1:7.2p2-4ubuntu2.10 | -| p7zip | 9.20.1~dfsg.1-4.2ubuntu0.1 | -| p7zip-full | 9.20.1~dfsg.1-4.2ubuntu0.1 | -| p7zip-rar | 9.20.1~ds.1-4 | -| parallel | 20161222-1~ubuntu0.16.04.1 | -| pass | 1.6.5-3 | -| patchelf | 0.9-1~ubuntu16.04.3 | -| pkg-config | 0.29.1-0ubuntu1 | -| pollinate | 4.33-0ubuntu1~16.04.1 | -| python-setuptools | 20.7.0-1 | -| rpm | 4.12.0.1+dfsg1-3build3 | -| rsync | 3.1.1-3ubuntu1.3 | -| shellcheck | 0.3.7-5 | -| sphinxsearch | 2.2.9-1build1 | -| sqlite3 | 3.11.0-1ubuntu1.5 | -| ssh | 1:7.2p2-4ubuntu2.10 | -| sshpass | 1.05-1 | -| subversion | 1.9.3-2ubuntu1.3 | -| sudo | 1.8.16-0ubuntu1.10 | -| swig | 3.0.8-0ubuntu3 | -| telnet | 0.17-40 | -| texinfo | 6.1.0.dfsg.1-5 | -| time | 1.7-25.1 | -| tk | 8.6.0+9 | -| tzdata | 2021a-0ubuntu0.16.04 | -| unzip | 6.0-20ubuntu1.1 | -| upx | 3.91-1 | -| wget | 1.17.1-1ubuntu1.5 | -| xorriso | 1.4.2-4ubuntu1 | -| xvfb | 2:1.18.4-0ubuntu0.12 | -| xz-utils | 5.1.1alpha+20120614-2ubuntu2 | -| yamllint | 1.2.1-1 | -| zip | 3.0-11 | -| zsync | 0.6.2-1ubuntu1 | - - diff --git a/images/linux/config/ubuntu1604.conf b/images/linux/config/ubuntu1604.conf deleted file mode 100644 index d2ac1423..00000000 --- a/images/linux/config/ubuntu1604.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Name of the pool supported by this image -POOL_NAME="Ubuntu 1604" diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index 912c7f74..a5178b70 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -67,17 +67,12 @@ $packageManagementList = @( (Get-HelmVersion), (Get-NpmVersion), (Get-YarnVersion), + (Get-PipxVersion), (Get-PipVersion), (Get-Pip3Version), (Get-VcpkgVersion) ) -if (-not (Test-IsUbuntu16)) { - $packageManagementList += @( - (Get-PipxVersion) - ) -} - $markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object) $markdown += New-MDHeader "Environment variables" -Level 4 $markdown += Build-PackageManagementEnvironmentTable | New-MDTable @@ -105,6 +100,8 @@ $toolsList = @( (Get-AzCopyVersion), (Get-BazelVersion), (Get-BazeliskVersion), + (Get-BicepVersion), + (Get-BuildahVersion), (Get-CodeQLBundleVersion), (Get-CMakeVersion), (Get-DockerMobyClientVersion), @@ -133,23 +130,16 @@ $toolsList = @( (Get-OpensslVersion), (Get-PackerVersion), (Get-PhantomJSVersion), + (Get-PodManVersion), (Get-PulumiVersion), (Get-RVersion), + (Get-SkopeoVersion), (Get-SphinxVersion), (Get-TerraformVersion), + (Get-YamllintVersion), (Get-ZstdVersion) ) -if (-not (Test-IsUbuntu16)) { - $toolsList += @( - (Get-BicepVersion), - (Get-BuildahVersion), - (Get-PodManVersion), - (Get-SkopeoVersion), - (Get-YamllintVersion) - ) -} - if (Test-IsUbuntu20) { $toolsList += (Get-FastlaneVersion) } @@ -184,9 +174,7 @@ if (Test-IsUbuntu20) { $markdown += New-MDNewLine } -if (-not (Test-IsUbuntu16)) { - $markdown += Build-PHPSection -} +$markdown += Build-PHPSection $markdown += New-MDHeader "Haskell" -Level 3 $markdown += New-MDList -Style Unordered -Lines (@( diff --git a/images/linux/scripts/helpers/Common.Helpers.psm1 b/images/linux/scripts/helpers/Common.Helpers.psm1 index 5dd17c60..0c609aea 100644 --- a/images/linux/scripts/helpers/Common.Helpers.psm1 +++ b/images/linux/scripts/helpers/Common.Helpers.psm1 @@ -22,10 +22,6 @@ function Get-KernelVersion { return "Linux kernel version: $kernelVersion" } -function Test-IsUbuntu16 { - return (lsb_release -rs) -eq "16.04" -} - function Test-IsUbuntu18 { return (lsb_release -rs) -eq "18.04" } diff --git a/images/linux/scripts/helpers/os.sh b/images/linux/scripts/helpers/os.sh index 8bec8608..6bb38f51 100644 --- a/images/linux/scripts/helpers/os.sh +++ b/images/linux/scripts/helpers/os.sh @@ -4,11 +4,6 @@ ## Desc: Helper functions for installing tools ################################################################################ -function isUbuntu16 -{ - lsb_release -d | grep -q 'Ubuntu 16' -} - function isUbuntu18 { lsb_release -d | grep -q 'Ubuntu 18' diff --git a/images/linux/scripts/installers/ansible.sh b/images/linux/scripts/installers/ansible.sh deleted file mode 100644 index cf63f507..00000000 --- a/images/linux/scripts/installers/ansible.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -e -################################################################################ -## File: ansible.sh -## Desc: Installs Ansible -################################################################################ - -# this script is used only on Ubuntu 16.04 -# for Ubuntu 18.04 and 20.04 we use pipx ansible-base package -# Install latest Ansible -add-apt-repository ppa:ansible/ansible -apt-get update -apt-get install -y --no-install-recommends ansible - -invoke_tests "Tools" "Ansible" diff --git a/images/linux/scripts/installers/aws.sh b/images/linux/scripts/installers/aws.sh index 337569db..c7f851e6 100644 --- a/images/linux/scripts/installers/aws.sh +++ b/images/linux/scripts/installers/aws.sh @@ -8,7 +8,7 @@ source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/install.sh -# Install the AWS CLI v1 on Ubuntu16 and Ubuntu18, and AWS CLI v2 on Ubuntu20 +# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20 if isUbuntu20 ; then download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip" unzip -qq /tmp/awscliv2.zip -d /tmp @@ -16,7 +16,7 @@ if isUbuntu20 ; then fi # The installation should be run after python3 is installed as aws-cli V1 dropped python2 support -if isUbuntu16 || isUbuntu18 ; then +if isUbuntu18 ; then download_with_retries "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" "/tmp" "awscli-bundle.zip" unzip -qq /tmp/awscli-bundle.zip -d /tmp python3 /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws diff --git a/images/linux/scripts/installers/basic.sh b/images/linux/scripts/installers/basic.sh index 66875b8b..270cc75c 100644 --- a/images/linux/scripts/installers/basic.sh +++ b/images/linux/scripts/installers/basic.sh @@ -4,7 +4,6 @@ ## Desc: Installs basic command line utilities and dev packages ################################################################################ source $HELPER_SCRIPTS/install.sh -source $HELPER_SCRIPTS/os.sh common_packages=$(get_toolset_value .apt.common_packages[]) cmd_packages=$(get_toolset_value .apt.cmd_packages[]) @@ -13,19 +12,4 @@ for package in $common_packages $cmd_packages; do apt-get install -y --no-install-recommends $package done -# Toolcache Python requires updated libssl-dev, which was previously installed from ppa:ondrej. -# The ppa dropped Ubuntu 16 support hence we need to build OpenSSL from source -if isUbuntu16; then - openSslArchiveName="openssl-1.1.1k.tar.gz" - openSslUrl="https://www.openssl.org/source/${openSslArchiveName}" - download_with_retries $openSslUrl "/tmp" - openSslPath="/tmp/$(basename -s .tar.gz $openSslArchiveName)" - mkdir -p "$openSslPath" - tar -C "$openSslPath" -xzf "/tmp/${openSslArchiveName}" --strip-components=1 && cd $openSslPath - ./config --openssldir=/etc/ssl '-Wl,--enable-new-dtags,-rpath,$(LIBRPATH)' - make -s - make install > /dev/null - ln -sf /etc/ssl/bin/openssl /usr/bin/openssl -fi - invoke_tests "Apt" \ No newline at end of file diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh index 8067ef34..fcd863e2 100644 --- a/images/linux/scripts/installers/java-tools.sh +++ b/images/linux/scripts/installers/java-tools.sh @@ -16,7 +16,7 @@ JAVA_TOOLCACHE_PATH="$AGENT_TOOLSDIRECTORY/Java_Adopt_jdk" wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add - add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ -if isUbuntu16 || isUbuntu18 ; then +if isUbuntu18 ; then # Install GPG Key for Azul Open JDK. See https://www.azul.com/downloads/azure-only/zulu/ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 apt-add-repository "deb https://repos.azul.com/azure-only/zulu/apt stable main" @@ -46,12 +46,6 @@ for JAVA_VERSION in ${JAVA_VERSIONS_LIST[@]}; do done # 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 echo "JAVA_HOME=/usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64" | tee -a /etc/environment diff --git a/images/linux/scripts/installers/mercurial.sh b/images/linux/scripts/installers/mercurial.sh deleted file mode 100644 index e785dba0..00000000 --- a/images/linux/scripts/installers/mercurial.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -e -################################################################################ -## File: mercurial.sh -## Desc: Installs Mercurial -################################################################################ - -# Source the helpers for use with the script -source $HELPER_SCRIPTS/os.sh - -if isUbuntu16 ; then - # Install Mercurial from the mercurial-ppa/releases repository for the latest version for Ubuntu16. - # https://www.mercurial-scm.org/wiki/Download - add-apt-repository ppa:mercurial-ppa/releases -y - apt-get update -fi - -apt-get install -y --no-install-recommends mercurial - -invoke_tests "Tools" "Mercurial" \ No newline at end of file diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/linux/scripts/installers/preimagedata.sh index 126d6a95..747f2296 100644 --- a/images/linux/scripts/installers/preimagedata.sh +++ b/images/linux/scripts/installers/preimagedata.sh @@ -16,11 +16,6 @@ if [[ "$image_label" =~ "ubuntu-18" ]]; then releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu18%2F${image_version}" fi -if [[ "$image_label" =~ "ubuntu-16" ]]; then - software_url="${github_url}/ubuntu16/${image_version}/images/linux/Ubuntu1604-README.md" - releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu16%2F${image_version}" -fi - cat < $imagedata_file [ { diff --git a/images/linux/scripts/installers/python.sh b/images/linux/scripts/installers/python.sh index 79c57d53..e14bf468 100644 --- a/images/linux/scripts/installers/python.sh +++ b/images/linux/scripts/installers/python.sh @@ -10,31 +10,26 @@ source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/os.sh # Install Python, Python 3, pip, pip3 -if isUbuntu16 || isUbuntu18; then +if isUbuntu18; then apt-get install -y --no-install-recommends python python-dev python-pip fi apt-get install -y --no-install-recommends python3 python3-dev python3-pip python3-venv -if isUbuntu18 || isUbuntu20 ; then - # Install pipx - # Set pipx custom directory - export PIPX_BIN_DIR=/opt/pipx_bin - export PIPX_HOME=/opt/pipx - - python3 -m pip install pipx - python3 -m pipx ensurepath - - # Update /etc/environment - setEtcEnvironmentVariable "PIPX_BIN_DIR" $PIPX_BIN_DIR - setEtcEnvironmentVariable "PIPX_HOME" $PIPX_HOME - prependEtcEnvironmentPath $PIPX_BIN_DIR - - # Test pipx - if ! command -v pipx; then - echo "pipx was not installed or not found on PATH" - exit 1 - fi +# Install pipx +# Set pipx custom directory +export PIPX_BIN_DIR=/opt/pipx_bin +export PIPX_HOME=/opt/pipx +python3 -m pip install pipx +python3 -m pipx ensurepath +# Update /etc/environment +setEtcEnvironmentVariable "PIPX_BIN_DIR" $PIPX_BIN_DIR +setEtcEnvironmentVariable "PIPX_HOME" $PIPX_HOME +prependEtcEnvironmentPath $PIPX_BIN_DIR +# Test pipx +if ! command -v pipx; then + echo "pipx was not installed or not found on PATH" + exit 1 fi # Adding this dir to PATH will make installed pip commands are immediately available. diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh index fd2f7ff3..5d609fec 100644 --- a/images/linux/scripts/installers/vcpkg.sh +++ b/images/linux/scripts/installers/vcpkg.sh @@ -4,9 +4,6 @@ ## Desc: Installs vcpkg ################################################################################ -# Source the helpers for use with the script -source $HELPER_SCRIPTS/os.sh - # Set env variable for vcpkg VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environment @@ -14,19 +11,9 @@ echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environm # Install vcpkg git clone --depth=1 https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT -# vcpkg requires g++ version 7+, yet Ubuntu 16 default is 5.4. Set version 7 as default temporarily -if isUbuntu16; then - ln -sf g++-7 /usr/bin/g++ -fi - $VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh $VCPKG_INSTALLATION_ROOT/vcpkg integrate install chmod 0777 -R $VCPKG_INSTALLATION_ROOT ln -sf $VCPKG_INSTALLATION_ROOT/vcpkg /usr/local/bin -# Set back g++ 5.4 as default -if isUbuntu16; then - ln -sf g++-5 /usr/bin/g++ -fi - invoke_tests "Tools" "Vcpkg" \ No newline at end of file diff --git a/images/linux/scripts/tests/Apt.Tests.ps1 b/images/linux/scripts/tests/Apt.Tests.ps1 index c1b37e29..7c3383ba 100644 --- a/images/linux/scripts/tests/Apt.Tests.ps1 +++ b/images/linux/scripts/tests/Apt.Tests.ps1 @@ -49,6 +49,11 @@ Describe "Apt" { $toolName = "netstat" } + if ($toolName -eq "mercurial") + { + $toolName = "hg" + } + (Get-Command -Name $toolName).CommandType | Should -BeExactly "Application" } } \ No newline at end of file diff --git a/images/linux/scripts/tests/Common.Tests.ps1 b/images/linux/scripts/tests/Common.Tests.ps1 index 05f78927..ccd1efd0 100644 --- a/images/linux/scripts/tests/Common.Tests.ps1 +++ b/images/linux/scripts/tests/Common.Tests.ps1 @@ -1,4 +1,4 @@ -Describe "PHP" -Skip:(Test-IsUbuntu16) { +Describe "PHP" { [array]$testCases = (Get-ToolsetContent).php.versions | ForEach-Object { @{phpVersion = $_} } @@ -39,7 +39,7 @@ Describe "Swift" { } } -Describe "PipxPackages" -Skip:(Test-IsUbuntu16) { +Describe "PipxPackages" { [array]$testCases = (Get-ToolsetContent).pipx | ForEach-Object { @{package=$_.package; cmd = $_.cmd} } It "" -TestCases $testCases { diff --git a/images/linux/scripts/tests/Tools.Tests.ps1 b/images/linux/scripts/tests/Tools.Tests.ps1 index 216536ee..7ceb57c6 100644 --- a/images/linux/scripts/tests/Tools.Tests.ps1 +++ b/images/linux/scripts/tests/Tools.Tests.ps1 @@ -8,7 +8,7 @@ Describe "azcopy" { } } -Describe "Bicep" -Skip:(Test-IsUbuntu16) { +Describe "Bicep" { It "Bicep" { "bicep --version" | Should -ReturnZeroExitCode } @@ -289,12 +289,6 @@ Describe "Leiningen" { } } -Describe "Mercurial" { - It "mercurial" { - "hg --version" | Should -ReturnZeroExitCode - } -} - Describe "Conda" { It "conda" { "conda --version" | Should -ReturnZeroExitCode @@ -329,7 +323,7 @@ Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) { } } -Describe "Containers" -Skip:(Test-IsUbuntu16) { +Describe "Containers" { $testCases = @("podman", "buildah", "skopeo") | ForEach-Object { @{ContainerCommand = $_} } It "" -TestCases $testCases { diff --git a/images/linux/toolsets/toolset-1604.json b/images/linux/toolsets/toolset-1604.json deleted file mode 100644 index 6f00356f..00000000 --- a/images/linux/toolsets/toolset-1604.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "toolcache": [ - { - "name": "Python", - "url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json", - "platform" : "linux", - "platform_version": "16.04", - "arch": "x64", - "versions": [ - "2.7.*", - "3.5.*", - "3.6.*", - "3.7.*", - "3.8.*", - "3.9.*" - ] - }, - { - "name": "PyPy", - "arch": "x64", - "platform" : "linux", - "versions": [ - "2.7", - "3.6" - ] - }, - { - "name": "node", - "url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json", - "platform" : "linux", - "arch": "x64", - "versions": [ - "10.*", - "12.*", - "14.*" - ] - }, - { - "name": "go", - "url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json", - "arch": "x64", - "platform" : "linux", - "versions": [ - "1.13.*", - "1.14.*", - "1.15.*", - "1.16.*", - "1.17.*" - ], - "default": "1.15.*" - }, - { - "name": "Ruby", - "platform_version": "16.04", - "arch": "x64", - "versions": [ - "2.4.*", - "2.5.*", - "2.6.*", - "2.7.*", - "3.0.*" - ] - }, - { - "name": "CodeQL", - "platform" : "linux", - "arch": "x64", - "versions": [ - "*" - ] - } - ], - "java": { - "default": "8", - "versions": [ - "8", "11", "12" - ] - }, - "android": { - "platform_min_version": "23", - "build_tools_min_version": "23.0.1", - "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.10.2.4988404", - "cmake;3.18.1", - "platform-tools" - ], - "ndk": { - "lts": "21" - } - }, - "powershellModules": [ - {"name": "MarkdownPS"}, - {"name": "Pester"} - ], - "azureModules": [ - { - "name": "az", - "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", - "versions": [ - "5.7.0" - ], - "zip_versions": [ - "3.1.0", - "4.4.0" - ] - } - ], - "apt": { - "common_packages": [ - "build-essential", - "dbus", - "dnsutils", - "dpkg", - "fakeroot", - "gnupg2", - "imagemagick", - "iproute2", - "iputils-ping", - "lib32z1", - "libc++abi-dev", - "libc++-dev", - "libcurl3", - "libgbm-dev", - "libgconf-2-4", - "libgsl-dev", - "libgtk-3-0", - "libicu55", - "libmagic-dev", - "libmagickcore-dev", - "libmagickwand-dev", - "libsecret-1-dev", - "libsqlite3-dev", - "libunwind8", - "libxkbfile-dev", - "libxss1", - "locales", - "openssh-client", - "p7zip-rar", - "p7zip", - "pkg-config", - "python-setuptools", - "rpm", - "texinfo", - "tk", - "tzdata", - "upx", - "xorriso", - "xvfb", - "xz-utils", - "zsync" - ], - "cmd_packages": [ - "binutils", - "bison", - "brotli", - "bzip2", - "coreutils", - "curl", - "file", - "flex", - "ftp", - "haveged", - "jq", - "m4", - "mediainfo", - "netcat", - "net-tools", - "p7zip-full", - "parallel", - "pass", - "patchelf", - "pollinate", - "rsync", - "shellcheck", - "sphinxsearch", - "sqlite3", - "ssh", - "sshpass", - "subversion", - "sudo", - "swig", - "telnet", - "time", - "unzip", - "wget", - "yamllint", - "zip" - ] - }, - "brew": [ - {"name": "zstd"} - ], - "docker": { - "images": [ - "alpine:3.11", - "alpine:3.12", - "alpine:3.13", - "buildpack-deps:stretch", - "buildpack-deps:buster", - "debian:9", - "debian:10", - "node:10", - "node:12", - "node:14", - "node:10-alpine", - "node:12-alpine", - "node:14-alpine", - "ubuntu:16.04", - "ubuntu:18.04", - "ubuntu:20.04" - ] - }, - "dotnet": { - "aptPackages": [ - "dotnet-sdk-3.1", - "dotnet-sdk-5.0" - ], - "versions": [ - "2.1", - "3.1", - "5.0" - ] - }, - "clang": { - "versions": [ - "9" - ], - "default_version": "9" - }, - "gcc": { - "versions": [ - "g++-9" - ] - }, - "gfortran": { - "versions": [ - "gfortran-9" - ] - }, - "rubygems": [], - "node_modules": [ - { - "name": "grunt", - "command": "grunt" - }, - { - "name": "gulp", - "command": "gulp" - }, - { - "name": "n", - "command": "n" - }, - { - "name": "parcel-bundler", - "command": "parcel" - }, - { - "name": "typescript", - "command": "tsc" - }, - { - "name": "newman", - "command": "newman" - }, - { - "name": "vercel", - "command": "vercel" - }, - { - "name": "webpack", - "command": "webpack" - }, - { - "name": "webpack-cli", - "command": "webpack-cli" - }, - { - "name": "netlify-cli", - "command": "netlify" - }, - { - "name": "yarn", - "command": "yarn" - } - ] -} diff --git a/images/linux/toolsets/toolset-1804.json b/images/linux/toolsets/toolset-1804.json index 671e8fe0..e2ca070f 100644 --- a/images/linux/toolsets/toolset-1804.json +++ b/images/linux/toolsets/toolset-1804.json @@ -148,6 +148,7 @@ "libxkbfile-dev", "libxss1", "locales", + "mercurial", "openssh-client", "p7zip-rar", "pkg-config", diff --git a/images/linux/toolsets/toolset-2004.json b/images/linux/toolsets/toolset-2004.json index 83931463..ee50f3e6 100644 --- a/images/linux/toolsets/toolset-2004.json +++ b/images/linux/toolsets/toolset-2004.json @@ -145,6 +145,7 @@ "libxkbfile-dev", "libxss1", "locales", + "mercurial", "openssh-client", "p7zip-rar", "pkg-config", diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json deleted file mode 100644 index 7c26e18c..00000000 --- a/images/linux/ubuntu1604.json +++ /dev/null @@ -1,361 +0,0 @@ -{ - "variables": { - "client_id": "{{env `ARM_CLIENT_ID`}}", - "client_secret": "{{env `ARM_CLIENT_SECRET`}}", - "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", - "tenant_id": "{{env `ARM_TENANT_ID`}}", - "resource_group": "{{env `ARM_RESOURCE_GROUP`}}", - "storage_account": "{{env `ARM_STORAGE_ACCOUNT`}}", - "build_resource_group_name": "{{env `BUILD_RESOURCE_GROUP_NAME`}}", - "temp_resource_group_name": "{{env `TEMP_RESOURCE_GROUP_NAME`}}", - "location": "{{env `ARM_RESOURCE_LOCATION`}}", - "virtual_network_name": "{{env `VNET_NAME`}}", - "virtual_network_resource_group_name": "{{env `VNET_RESOURCE_GROUP`}}", - "virtual_network_subnet_name": "{{env `VNET_SUBNET`}}", - "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", - "allowed_inbound_ip_addresses": "{{env `AGENT_IP`}}", - "image_folder": "/imagegeneration", - "imagedata_file": "/imagegeneration/imagedata.json", - "installer_script_folder": "/imagegeneration/installers", - "helper_script_folder": "/imagegeneration/helpers", - "vm_size": "Standard_D4s_v4", - "capture_name_prefix": "packer", - "image_version": "dev", - "image_os": "ubuntu16", - "run_validation_diskspace": "false", - "dockerhub_login": "{{env `DOCKERHUB_LOGIN`}}", - "dockerhub_password": "{{env `DOCKERHUB_PASSWORD`}}" - }, - "sensitive-variables": [ - "client_secret" - ], - "builders": [ - { - "type": "azure-arm", - "client_id": "{{user `client_id`}}", - "client_secret": "{{user `client_secret`}}", - "subscription_id": "{{user `subscription_id`}}", - "tenant_id": "{{user `tenant_id`}}", - "location": "{{user `location`}}", - "vm_size": "{{user `vm_size`}}", - "resource_group_name": "{{user `resource_group`}}", - "storage_account": "{{user `storage_account`}}", - "build_resource_group_name": "{{user `build_resource_group_name`}}", - "temp_resource_group_name": "{{user `temp_resource_group_name`}}", - "capture_container_name": "images", - "capture_name_prefix": "{{user `capture_name_prefix`}}", - "virtual_network_name": "{{user `virtual_network_name`}}", - "virtual_network_resource_group_name": "{{user `virtual_network_resource_group_name`}}", - "virtual_network_subnet_name": "{{user `virtual_network_subnet_name`}}", - "private_virtual_network_with_public_ip": "{{user `private_virtual_network_with_public_ip`}}", - "allowed_inbound_ip_addresses": "{{user `allowed_inbound_ip_addresses`}}", - "os_type": "Linux", - "image_publisher": "Canonical", - "image_offer": "UbuntuServer", - "image_sku": "16.04-LTS", - "os_disk_size_gb": "86" - } - ], - "provisioners": [ - { - "type": "shell", - "inline": [ - "mkdir {{user `image_folder`}}", - "chmod 777 {{user `image_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/apt-mock.sh", - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/base/repos.sh" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/apt.sh", - "environment_vars": [ - "DEBIAN_FRONTEND=noninteractive" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/limits.sh", - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "file", - "source": "{{template_dir}}/scripts/helpers", - "destination": "{{user `helper_script_folder`}}" - }, - { - "type": "file", - "source": "{{template_dir}}/scripts/installers", - "destination": "{{user `installer_script_folder`}}" - }, - { - "type": "file", - "source": "{{ template_dir }}/post-generation", - "destination": "{{user `image_folder`}}" - }, - { - "type": "file", - "source": "{{template_dir}}/scripts/tests", - "destination": "{{user `image_folder`}}" - }, - { - "type": "file", - "source": "{{ template_dir }}/scripts/SoftwareReport", - "destination": "{{user `image_folder`}}" - }, - { - "type": "file", - "source": "{{template_dir}}/toolsets/toolset-1604.json", - "destination": "{{user `installer_script_folder`}}/toolset.json" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/preimagedata.sh" - ], - "environment_vars": [ - "IMAGE_VERSION={{user `image_version`}}", - "IMAGEDATA_FILE={{user `imagedata_file`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/configure-environment.sh" - ], - "environment_vars": [ - "IMAGE_VERSION={{user `image_version`}}", - "IMAGE_OS={{user `image_os`}}", - "HELPER_SCRIPTS={{user `helper_script_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/complete-snap-setup.sh" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/powershellcore.sh" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/Install-PowerShellModules.ps1", - "{{template_dir}}/scripts/installers/Install-AzureModules.ps1" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/docker-compose.sh", - "{{template_dir}}/scripts/installers/docker-moby.sh" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}", - "DOCKERHUB_LOGIN={{user `dockerhub_login`}}", - "DOCKERHUB_PASSWORD={{user `dockerhub_password`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/ansible.sh", - "{{template_dir}}/scripts/installers/azcopy.sh", - "{{template_dir}}/scripts/installers/azure-cli.sh", - "{{template_dir}}/scripts/installers/azure-devops-cli.sh", - "{{template_dir}}/scripts/installers/basic.sh", - "{{template_dir}}/scripts/installers/aliyun-cli.sh", - "{{template_dir}}/scripts/installers/apache.sh", - "{{template_dir}}/scripts/installers/aws.sh", - "{{template_dir}}/scripts/installers/nvm.sh", - "{{template_dir}}/scripts/installers/clang.sh", - "{{template_dir}}/scripts/installers/swift.sh", - "{{template_dir}}/scripts/installers/cmake.sh", - "{{template_dir}}/scripts/installers/codeql-bundle.sh", - "{{template_dir}}/scripts/installers/dotnetcore-sdk.sh", - "{{template_dir}}/scripts/installers/erlang.sh", - "{{template_dir}}/scripts/installers/firefox.sh", - "{{template_dir}}/scripts/installers/gcc.sh", - "{{template_dir}}/scripts/installers/gfortran.sh", - "{{template_dir}}/scripts/installers/git.sh", - "{{template_dir}}/scripts/installers/github-cli.sh", - "{{template_dir}}/scripts/installers/google-chrome.sh", - "{{template_dir}}/scripts/installers/google-cloud-sdk.sh", - "{{template_dir}}/scripts/installers/haskell.sh", - "{{template_dir}}/scripts/installers/heroku.sh", - "{{template_dir}}/scripts/installers/hhvm.sh", - "{{template_dir}}/scripts/installers/java-tools.sh", - "{{template_dir}}/scripts/installers/kubernetes-tools.sh", - "{{template_dir}}/scripts/installers/oc.sh", - "{{template_dir}}/scripts/installers/leiningen.sh", - "{{template_dir}}/scripts/installers/mercurial.sh", - "{{template_dir}}/scripts/installers/miniconda.sh", - "{{template_dir}}/scripts/installers/mono.sh", - "{{template_dir}}/scripts/installers/mysql.sh", - "{{template_dir}}/scripts/installers/mssql-cmd-tools.sh", - "{{template_dir}}/scripts/installers/nodejs.sh", - "{{template_dir}}/scripts/installers/bazel.sh", - "{{template_dir}}/scripts/installers/oras-cli.sh", - "{{template_dir}}/scripts/installers/phantomjs.sh", - "{{template_dir}}/scripts/installers/postgresql.sh", - "{{template_dir}}/scripts/installers/pulumi.sh", - "{{template_dir}}/scripts/installers/ruby.sh", - "{{template_dir}}/scripts/installers/r.sh", - "{{template_dir}}/scripts/installers/rust.sh", - "{{template_dir}}/scripts/installers/julia.sh", - "{{template_dir}}/scripts/installers/sbt.sh", - "{{template_dir}}/scripts/installers/selenium.sh", - "{{template_dir}}/scripts/installers/terraform.sh", - "{{template_dir}}/scripts/installers/packer.sh", - "{{template_dir}}/scripts/installers/vcpkg.sh", - "{{template_dir}}/scripts/installers/dpkg-config.sh", - "{{template_dir}}/scripts/installers/mongodb.sh", - "{{template_dir}}/scripts/installers/nginx.sh", - "{{template_dir}}/scripts/installers/android.sh", - "{{template_dir}}/scripts/installers/pypy.sh", - "{{template_dir}}/scripts/installers/python.sh" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}", - "DEBIAN_FRONTEND=noninteractive" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/Install-Toolset.ps1", - "{{template_dir}}/scripts/installers/Configure-Toolset.ps1" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/homebrew.sh" - ], - "environment_vars": [ - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "DEBIAN_FRONTEND=noninteractive", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" - ], - "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "expect_disconnect": true, - "scripts": [ - "{{template_dir}}/scripts/base/reboot.sh" - ], - "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "pause_before": "60s", - "start_retry_timeout": "10m", - "scripts": [ - "{{template_dir}}/scripts/installers/cleanup.sh" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/apt-mock-remove.sh", - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "inline": [ - "pwsh -File {{user `image_folder`}}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory {{user `image_folder`}}", - "pwsh -File {{user `image_folder`}}/tests/RunAll-Tests.ps1 -OutputDirectory {{user `image_folder`}}" - ], - "environment_vars": [ - "IMAGE_VERSION={{user `image_version`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" - ] - }, - { - "type": "file", - "source": "{{user `image_folder`}}/Ubuntu-Readme.md", - "destination": "{{template_dir}}/Ubuntu1604-README.md", - "direction": "download" - }, - { - "type": "shell", - "scripts":[ - "{{template_dir}}/scripts/installers/post-deployment.sh" - ], - "environment_vars":[ - "HELPER_SCRIPT_FOLDER={{user `helper_script_folder`}}", - "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}", - "IMAGE_FOLDER={{user `image_folder`}}" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/validate-disk-space.sh" - ], - "environment_vars": [ - "RUN_VALIDATION={{user `run_validation_diskspace`}}" - ] - }, - { - "type": "file", - "source": "{{template_dir}}/config/ubuntu1604.conf", - "destination": "/tmp/" - }, - { - "type": "shell", - "inline": [ - "mkdir -p /etc/vsts", - "cp /tmp/ubuntu1604.conf /etc/vsts/machine_instance.conf" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "inline": [ - "sleep 30", - "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - } - ] -} diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 569e4085..bff0b459 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -220,7 +220,6 @@ "{{template_dir}}/scripts/installers/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/oc.sh", "{{template_dir}}/scripts/installers/leiningen.sh", - "{{template_dir}}/scripts/installers/mercurial.sh", "{{template_dir}}/scripts/installers/miniconda.sh", "{{template_dir}}/scripts/installers/mono.sh", "{{template_dir}}/scripts/installers/kotlin.sh", diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json index 5999e6a3..4d7af50f 100644 --- a/images/linux/ubuntu2004.json +++ b/images/linux/ubuntu2004.json @@ -221,7 +221,6 @@ "{{template_dir}}/scripts/installers/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/oc.sh", "{{template_dir}}/scripts/installers/leiningen.sh", - "{{template_dir}}/scripts/installers/mercurial.sh", "{{template_dir}}/scripts/installers/miniconda.sh", "{{template_dir}}/scripts/installers/mono.sh", "{{template_dir}}/scripts/installers/kotlin.sh",