game-ci / docker

Series of CI-specialised docker images for Unity.
https://hub.docker.com/u/unityci
MIT License
392 stars 121 forks source link

Fix Android 2022.2.X+ Build Issues #205

Closed AndrewKahr closed 1 year ago

AndrewKahr commented 1 year ago

Changes

Checklist

Additional Context

Unity has updated the naming of its internal packages for Android. Google has also deprecated the bin/sdkmanager in favor of clitools bin/sdkmanager. Below are the path changes throughout the Unity Versions:

Android NDK

Version ID Destination Rename From Rename To
2019.1.0f1 android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.1.14f1 android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.2.0f1 android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.2.21f1 android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r16b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.3.0f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.3.15f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.4.0f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2019.4.40f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.1.0f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.1.17f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.2.0f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.2.7f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.3.0f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2020.3.46f1 android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r19 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.1.0f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.1.28f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.2.0f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.2.19f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.3.0f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2021.3.22f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2022.1.0f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2022.1.24f1 android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r21d {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2022.2.0f1 android-ndk-r23b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r23b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK
2022.2.13f1 android-ndk-r23b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/android-ndk-r23b {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/NDK

Android OpenJDK

Version ID Destination Rename From Rename To
2019.1.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.1.14f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.2.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.2.21f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.3.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.3.15f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.4.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2019.4.40f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.1.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.1.17f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.2.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.2.7f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.3.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2020.3.46f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.1.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.1.28f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.2.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.2.19f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.3.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2021.3.22f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2022.1.0f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2022.1.24f1 android-open-jdk-8u172-b11 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2022.2.0f1 android-open-jdk-11.0.14.1+1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A
2022.2.13f1 android-open-jdk-11.0.14.1+1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/OpenJDK N/A N/A

Android SDK Platform Tools

Version ID Destination Rename From Rename To
2019.1.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.1.14f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.2.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.2.21f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.3.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.3.15f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.4.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2019.4.40f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.1.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.1.17f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.2.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.2.7f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.3.0f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2020.3.46f1 android-sdk-platform-tools-28.0.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.1.0f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.1.28f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.2.0f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.2.19f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.3.0f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2021.3.22f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2022.1.0f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2022.1.24f1 android-sdk-platform-tools-30.0.4 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2022.2.0f1 android-sdk-platform-tools-32.0.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A
2022.2.13f1 android-sdk-platform-tools-32.0.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK N/A N/A

Android SDK Command Line Tools

Version ID Destination Rename From Rename To
2019.1.0f1 N/A N/A N/A N/A
2019.1.14f1 N/A N/A N/A N/A
2019.2.0f1 N/A N/A N/A N/A
2019.2.21f1 N/A N/A N/A N/A
2019.3.0f1 N/A N/A N/A N/A
2019.3.15f1 N/A N/A N/A N/A
2019.4.0f1 N/A N/A N/A N/A
2019.4.40f1 N/A N/A N/A N/A
2020.1.0f1 N/A N/A N/A N/A
2020.1.17f1 N/A N/A N/A N/A
2020.2.0f1 N/A N/A N/A N/A
2020.2.7f1 N/A N/A N/A N/A
2020.3.0f1 N/A N/A N/A N/A
2020.3.46f1 N/A N/A N/A N/A
2021.1.0f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2021.1.28f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2021.2.0f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2021.2.19f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2021.3.0f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2021.3.22f1 android-sdk-command-line-tools-2.1 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/2.1
2022.1.0f1 android-sdk-command-line-tools-6.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/6.0
2022.1.24f1 android-sdk-command-line-tools-6.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/6.0
2022.2.0f1 android-sdk-command-line-tools-6.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/6.0
2022.2.13f1 android-sdk-command-line-tools-6.0 {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/cmdline-tools {UNITY_PATH}/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/cmdline-tools/6.0

Scripts to Generate the Tables

Build Images (buildall.sh)

#!/bin/bash

set -e

UNITY_VERSION=("2019.1.0f1" "2019.1.14f1" "2019.2.0f1" "2019.2.21f1" "2019.3.0f1" "2019.3.15f1" "2019.4.0f1" "2019.4.40f1" "2020.1.0f1" "2020.1.17f1" "2020.2.0f1" "2020.2.7f1" "2020.3.0f1" "2020.3.46f1" "2021.1.0f1" "2021.1.28f1" "2021.2.0f1" "2021.2.19f1" "2021.3.0f1" "2021.3.22f1" "2022.1.0f1" "2022.1.24f1" "2022.2.0f1" "2022.2.13f1")
HUB_VERSION="3.4.2-beta.1"

docker build ./images/ubuntu/base -t "unityci/base"

docker build ./images/ubuntu/hub -t "unityci/hub" --build-arg hubVersion=$HUB_VERSION

# Loop through the Unity versions and get the changeset for each one
for version in "${UNITY_VERSION[@]}"; do
  UNITY_CHANGESET+=("$(npx unity-changeset $version)")
done

function build_image() {
    version=$1
    changeSet=$2
    docker build --progress=plain ./images/ubuntu/editor -t "unityci/editor:ubuntu-$version-android" \
      --build-arg version=$version \
      --build-arg changeSet=$changeSet \
      --build-arg module=android
}

# Loop through the arrays in parallel
for i in "${!UNITY_VERSION[@]}"; do
  version=${UNITY_VERSION[i]}
  changeSet=${UNITY_CHANGESET[i]}
  build_image $version $changeSet &
done

# Wait for all processes to finish
wait

Pull Modules.json from each image (pullall.sh)

UNITY_VERSIONS=("2019.1.0f1" "2019.1.14f1" "2019.2.0f1" "2019.2.21f1" "2019.3.0f1" "2019.3.15f1" "2019.4.0f1" "2019.4.40f1" "2020.1.0f1" "2020.1.17f1" "2020.2.0f1" "2020.2.7f1" "2020.3.0f1" "2020.3.46f1" "2021.1.0f1" "2021.1.28f1" "2021.2.0f1" "2021.2.19f1" "2021.3.0f1" "2021.3.22f1" "2022.1.0f1" "2022.1.24f1" "2022.2.0f1" "2022.2.13f1")

mkdir -p c:/path/to/folder/modules

for UNITY_VERSION in ${UNITY_VERSIONS[@]}; do
    UNITY_VERSION_PATH_SAFE=$(echo $UNITY_VERSION | tr '.' '-')
    docker run --rm \
        -v "c:/path/to/folder/modules:/modules" \
        unityci/editor:ubuntu-${UNITY_VERSION}-android \
        cp /opt/unity/modules.json /modules/modules-${UNITY_VERSION_PATH_SAFE}.json
done

Generate Markdown (GenerateMD.ps1)

# Define module IDs to extract
$module_ids = @("android-sdk-platform-tools", "android-ndk", "android-open-jdk", "android-sdk-command-line-tools")

# Loop over module IDs
foreach ($module_id in $module_ids) {
    # Create output file for this module ID
    $output_file = "modulemd/$module_id.md"
    Write-Host "Generating $output_file"

    # Create table header
    $table = "| Version | ID | Destination | Rename From | Rename To |`n| --- | --- | --- | --- | --- |`n"

    # Loop over version numbers
    foreach ($version in $version_list) {
        # Replace periods with dashes in version number
        $version_with_dashes = $version -replace "\.", "-"

        # Construct path to module file
        $module_file = "modules/modules-$version_with_dashes.json"

        # Read module data from file
        $json = Get-Content $module_file
        $json = $json.ToString().Replace("preselected", "_preselected")
        $module_data = $json | ConvertFrom-Json

        # Find objects with matching module ID
        $module_objects = $module_data | Where-Object { $_.id -like "$module_id*" }

        # If no matching objects, add N/A to table
        if ($module_objects.Count -eq 0) {
            $table += "| $version | N/A | N/A | N/A | N/A |`n"
            continue
        }

        # Loop over module objects
        foreach ($module_object in $module_objects) {
            # Get values for table
            $id = $module_object.id
            if ([string]::IsNullOrEmpty($id)) { $id = "N/A" }
            $destination = $module_object.destination
            if ([string]::IsNullOrEmpty($destination)) { $destination = "N/A" }
            $rename_from = $module_object.renameFrom
            if ([string]::IsNullOrEmpty($rename_from)) { $rename_from = "N/A" }
            $rename_to = $module_object.renameTo
            if ([string]::IsNullOrEmpty($rename_to)) { $rename_to = "N/A" }

            # Add row to table
            $table += "| $version | $id | $destination | $rename_from | $rename_to |`n"
        }
    }

    # Write table to output file
    $table | Out-File $output_file -Encoding utf8
}
github-actions[bot] commented 1 year ago

Cat Gif