From dde1e7173ba4692a1d5cdff9e29706386459b2b0 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Mon, 3 Mar 2025 20:38:52 -0800 Subject: [PATCH 01/33] Adding ARM builds --- .github/workflows/internal-test-build.yml | 51 +++++++++++++---------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/.github/workflows/internal-test-build.yml b/.github/workflows/internal-test-build.yml index eb7d173..21873d0 100644 --- a/.github/workflows/internal-test-build.yml +++ b/.github/workflows/internal-test-build.yml @@ -10,32 +10,41 @@ jobs: name: Build self-contained executables runs-on: ubuntu-latest container: mcr.microsoft.com/dotnet/sdk:8.0 + strategy: + matrix: + platform: [windows, mac, linux] + runtime: [win-x64, win-arm64, osx-x64, osx-arm64, linux-x64, linux-arm64] + include: + - platform: windows + platform-short: win + runtime: win-x64 + - platform: windows + platform-short: win + runtime: win-arm64 + - platform: mac + platform-short: mac + runtime: osx-x64 + - platform: mac + platform-short: mac + runtime: osx-arm64 + - platform: linux + platform-short: linux + runtime: linux-x64 + - platform: linux + platform-short: linux + runtime: linux-arm64 steps: - name: Check .NET version run: dotnet --version - name: Checkout source code uses: actions/checkout@v3 - - name: Execute Action build-with-plugins for Windows + - name: Execute Action build-with-plugins uses: ./.github/actions/build-with-plugins - id: build-with-plugins-win with: - platform: windows - platform-short: win - runtime: win-x64 - build-version: 0.0.${{ github.run_number }} - - name: Execute Action build-with-plugins for MacOS - uses: ./.github/actions/build-with-plugins - id: build-with-plugins-mac - with: - platform: mac - platform-short: mac - runtime: osx-x64 - build-version: 0.0.${{ github.run_number }} - - name: Execute Action build-with-plugins for Linux - uses: ./.github/actions/build-with-plugins - id: build-with-plugins-linux - with: - platform: linux - platform-short: linux - runtime: linux-x64 + platform: ${{ matrix.platform }} + platform-short: ${{ matrix.platform-short }} + runtime: ${{ matrix.runtime }} build-version: 0.0.${{ github.run_number }} + env: + PLATFORM: ${{ matrix.platform }} + RUNTIME: ${{ matrix.runtime }} \ No newline at end of file From 7bc4d854f652173fe116f1e701cd3dd77ef8c349 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 05:36:40 -0800 Subject: [PATCH 02/33] remove matrix define --- .github/workflows/internal-test-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/internal-test-build.yml b/.github/workflows/internal-test-build.yml index 21873d0..d68fbaa 100644 --- a/.github/workflows/internal-test-build.yml +++ b/.github/workflows/internal-test-build.yml @@ -12,8 +12,6 @@ jobs: container: mcr.microsoft.com/dotnet/sdk:8.0 strategy: matrix: - platform: [windows, mac, linux] - runtime: [win-x64, win-arm64, osx-x64, osx-arm64, linux-x64, linux-arm64] include: - platform: windows platform-short: win From 6093da2a3fa5d88ff771892886959c41d0676761 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 05:44:03 -0800 Subject: [PATCH 03/33] Switch to runtime for output --- .github/actions/build-with-plugins/action.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index d093ca1..b205ed4 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -22,7 +22,7 @@ runs: dotnet publish \ Core/Cosmos.DataTransfer.Core/Cosmos.DataTransfer.Core.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }} \ + --output ${{ inputs.runtime }} \ --self-contained true \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=true \ @@ -37,7 +37,7 @@ runs: dotnet publish \ Extensions/Cosmos/Cosmos.DataTransfer.CosmosExtension/Cosmos.DataTransfer.CosmosExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -52,7 +52,7 @@ runs: dotnet publish \ Extensions/Json/Cosmos.DataTransfer.JsonExtension/Cosmos.DataTransfer.JsonExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -67,7 +67,7 @@ runs: dotnet publish \ Extensions/AzureTableAPI/Cosmos.DataTransfer.AzureTableAPIExtension/Cosmos.DataTransfer.AzureTableAPIExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -82,7 +82,7 @@ runs: dotnet publish \ Extensions/Mongo/Cosmos.DataTransfer.MongoExtension/Cosmos.DataTransfer.MongoExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -97,7 +97,7 @@ runs: dotnet publish \ Extensions/SqlServer/Cosmos.DataTransfer.SqlServerExtension/Cosmos.DataTransfer.SqlServerExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -112,7 +112,7 @@ runs: dotnet publish \ Extensions/Parquet/Cosmos.DataTransfer.ParquetExtension/Cosmos.DataTransfer.ParquetExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -127,7 +127,7 @@ runs: dotnet publish \ Extensions/CognitiveSearch/Cosmos.DataTransfer.CognitiveSearchExtension/Cosmos.DataTransfer.CognitiveSearchExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -142,7 +142,7 @@ runs: dotnet publish \ Extensions/Csv/Cosmos.DataTransfer.CsvExtension/Cosmos.DataTransfer.CsvExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -157,7 +157,7 @@ runs: dotnet publish \ Extensions/PostgreSQL/Cosmos.DataTransfer.PostgresqlExtension.csproj \ --configuration Release \ - --output ${{ inputs.platform-short }}/Extensions \ + --output ${{ inputs.runtime }}/Extensions \ --self-contained false \ --runtime ${{ inputs.runtime }} \ -p:PublishSingleFile=false \ @@ -170,4 +170,4 @@ runs: uses: actions/upload-artifact@v4 with: name: ${{ inputs.platform }}-package - path: ${{ inputs.platform-short }}/ + path: ${{ inputs.runtime }}/ From f16abfebc3ec76f5576d07446a8fa9eb71b7cb54 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 06:30:39 -0800 Subject: [PATCH 04/33] try a different action name --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index b205ed4..8174bd1 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -169,5 +169,5 @@ runs: - name: Upload package uses: actions/upload-artifact@v4 with: - name: ${{ inputs.platform }}-package + name: ${{ inputs.runtime }}-package path: ${{ inputs.runtime }}/ From c3f844d88764850711a766453fd7e260fcb9be19 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 08:27:01 -0800 Subject: [PATCH 05/33] use tar for linux --- .github/actions/build-with-plugins/action.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 8174bd1..84716ad 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -166,8 +166,20 @@ runs: -p:PublishReadyToRun=false \ -p:PublishTrimmed=false \ -p:Version=${{ inputs.build-version }} + - name: Create tar archive + if: startsWith(inputs.platform, 'linux') + shell: bash + run: | + tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} - name: Upload package + if: !startsWith(inputs.platform, 'linux') uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package path: ${{ inputs.runtime }}/ + - name: Upload tar archive + if: startsWith(inputs.platform, 'linux') + uses: actions/upload-artifact@v4 + with: + name: ${{ inputs.runtime }}-package-tar + path: ${{ inputs.runtime }}-package.tar.gz From 08ce787cb6512a1965109d49b86d50fc8b7886b5 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 16:39:47 -0800 Subject: [PATCH 06/33] add quote around !startwith --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 84716ad..22589ac 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -172,7 +172,7 @@ runs: run: | tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} - name: Upload package - if: !startsWith(inputs.platform, 'linux') + if: "!startsWith(inputs.platform, 'linux') uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package From ff79771e621782e8ac3d951220637d422ae09e52 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 16:47:23 -0800 Subject: [PATCH 07/33] trying with wrapped --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 22589ac..25b642b 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -172,7 +172,7 @@ runs: run: | tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} - name: Upload package - if: "!startsWith(inputs.platform, 'linux') + if: !(startsWith(inputs.platform, 'linux')) uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package From 3e9f865f20cc0ebcce53a6c449d0f674e66db109 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 18:31:05 -0800 Subject: [PATCH 08/33] true the != --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 25b642b..78719cf 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -172,7 +172,7 @@ runs: run: | tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} - name: Upload package - if: !(startsWith(inputs.platform, 'linux')) + if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package From 01f398ef52cb149c17b4aab05e4ec01aabf078ac Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 20:35:00 -0800 Subject: [PATCH 09/33] trying to debug tar --- .github/actions/build-with-plugins/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 78719cf..69f0458 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -170,6 +170,7 @@ runs: if: startsWith(inputs.platform, 'linux') shell: bash run: | + ls -la ${{ inputs.runtime }} tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} - name: Upload package if: startsWith(inputs.platform, 'linux') != true From fb4e3a943ea57bb0cd80888c0a8c347f9c69e2b0 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 21:19:10 -0800 Subject: [PATCH 10/33] Try adding a slash --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 69f0458..a6f3d24 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -171,7 +171,7 @@ runs: shell: bash run: | ls -la ${{ inputs.runtime }} - tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} + tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ - name: Upload package if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 From d6196d966571e8049477080c70ec81858789170f Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Tue, 4 Mar 2025 21:21:21 -0800 Subject: [PATCH 11/33] Add verbose logging --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index a6f3d24..2e1eabf 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -171,7 +171,7 @@ runs: shell: bash run: | ls -la ${{ inputs.runtime }} - tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ + tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ -v - name: Upload package if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 From 7ce4cd1380ded5979d09a2755743437c21e7209a Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 5 Mar 2025 15:56:12 -0800 Subject: [PATCH 12/33] Try different paths --- .github/actions/build-with-plugins/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 2e1eabf..d297877 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -171,7 +171,7 @@ runs: shell: bash run: | ls -la ${{ inputs.runtime }} - tar -czvf ${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ -v + tar -czvf ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} -v - name: Upload package if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 @@ -183,4 +183,4 @@ runs: uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package-tar - path: ${{ inputs.runtime }}-package.tar.gz + path: ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz From 90f7488cb5c007d21737fc4423d332fc815fbe8f Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 5 Mar 2025 16:11:15 -0800 Subject: [PATCH 13/33] Actually tell tar what to archive --- .github/actions/build-with-plugins/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index d297877..5273bf8 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -171,7 +171,7 @@ runs: shell: bash run: | ls -la ${{ inputs.runtime }} - tar -czvf ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} -v + tar -czvf ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} . -v - name: Upload package if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 From 7dc4c675f80042d1971a05afbecb1c395018dfcc Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 5 Mar 2025 16:20:41 -0800 Subject: [PATCH 14/33] fix pathing --- .github/actions/build-with-plugins/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 5273bf8..78a872f 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -171,7 +171,7 @@ runs: shell: bash run: | ls -la ${{ inputs.runtime }} - tar -czvf ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }} . -v + tar -czvf ${{ inputs.runtime }}-package/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ . -v - name: Upload package if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 @@ -183,4 +183,4 @@ runs: uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package-tar - path: ${{ inputs.runtime }}/${{ inputs.runtime }}-package.tar.gz + path: ${{ inputs.runtime }}-package/${{ inputs.runtime }}-package.tar.gz From 8c243b7d30bebc63d6e052b9ceb63ac51a3861b8 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 5 Mar 2025 16:37:59 -0800 Subject: [PATCH 15/33] Create directory --- .github/actions/build-with-plugins/action.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index 78a872f..a471ed3 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -170,7 +170,11 @@ runs: if: startsWith(inputs.platform, 'linux') shell: bash run: | + # check if the directory exists ls -la ${{ inputs.runtime }} + # create a directory for the tar file + mkdir -p ${{ inputs.runtime }}-package + # create the tar file tar -czvf ${{ inputs.runtime }}-package/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ . -v - name: Upload package if: startsWith(inputs.platform, 'linux') != true From bdcfcbb3fbe64f4eecb291d78eb128674aba6b91 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Sat, 8 Mar 2025 10:26:53 -0800 Subject: [PATCH 16/33] Add to readme --- .github/actions/build-with-plugins/action.yml | 19 +------------------ README.md | 13 ++++++++++++- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index a471ed3..a35b4f6 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -166,25 +166,8 @@ runs: -p:PublishReadyToRun=false \ -p:PublishTrimmed=false \ -p:Version=${{ inputs.build-version }} - - name: Create tar archive - if: startsWith(inputs.platform, 'linux') - shell: bash - run: | - # check if the directory exists - ls -la ${{ inputs.runtime }} - # create a directory for the tar file - mkdir -p ${{ inputs.runtime }}-package - # create the tar file - tar -czvf ${{ inputs.runtime }}-package/${{ inputs.runtime }}-package.tar.gz -C ${{ inputs.runtime }}/ . -v - name: Upload package - if: startsWith(inputs.platform, 'linux') != true uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package - path: ${{ inputs.runtime }}/ - - name: Upload tar archive - if: startsWith(inputs.platform, 'linux') - uses: actions/upload-artifact@v4 - with: - name: ${{ inputs.runtime }}-package-tar - path: ${{ inputs.runtime }}-package/${{ inputs.runtime }}-package.tar.gz + path: ${{ inputs.runtime }}/ \ No newline at end of file diff --git a/README.md b/README.md index fa16276..8edd61b 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,10 @@ The Azure Cosmos DB Desktop Data Migration Tool is an open-source project contai ## Quick Installation -To use the tool, download the latest zip file for your platform (win-x64, mac-x64, or linux-x64) from [Releases](https://github.com/AzureCosmosDB/data-migration-desktop-tool/releases) and extract all files to your desired install location. To begin a data transfer operation, first populate the `migrationsettings.json` file with appropriate settings for your data source and sink (see [detailed instructions](#using-the-command-line) below or [review examples](ExampleConfigs.md)), and then run the application from a command line: `dmt.exe` on Windows or `dmt` on other platforms. +To use the tool, download the latest archive file for your platform (win-x64, win-arm64, mac-x64, mac-arm64, linux-x64, linux-arm64) from [Releases](https://github.com/AzureCosmosDB/data-migration-desktop-tool/releases) and extract all files to your desired install location. To begin a data transfer operation, first populate the `migrationsettings.json` file with appropriate settings for your data source and sink (see [detailed instructions](#using-the-command-line) below or [review examples](ExampleConfigs.md)), and then run the application from a command line: `dmt.exe` on Windows or `dmt` on other platforms. + +If using RBAC (Role Based Access Control) (migrate-passwordless)[https://learn.microsoft.com/azure/cosmos-db/nosql/migrate-passwordless?tabs=sign-in-azure-cli%2Cdotnet%2Cazure-portal-create%2Cazure-portal-associate%2Capp-service-identity] ensure you are authenticated with Azure see (Troubleshoot Azure Identity authentication issues +)[https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/TROUBLESHOOTING.md] One common way to authenticate is using the Azure CLI (How to install the Azure CLI)[https://learn.microsoft.com/cli/azure/install-azure-cli] and `az login` ## Extension documentation @@ -204,6 +207,14 @@ This tutorial outlines how to use the Azure Cosmos DB Desktop Data Migration Too > **Note**: Before you run the tool on macOS, you'll need to follow Apple's instructions on how to [Open a Mac app from an unidentified developer](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). + **Using Linux** + + ```bash + ./dmt + ``` + + > **Note**: Use the `--settings` option with a file path to specify a different settings file (overriding the default **migrationsettings.json** file). This facilitates automating running of different migration jobs in a programmatic loop. + ## Creating Extensions 1. Decide what type of extension you want to create. There are 3 different types of extensions and each of those can be implemented to read data, write data, or both. From 70103167d065701e2e32b284e579e6574b9cf7a4 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Sun, 9 Mar 2025 12:18:48 -0700 Subject: [PATCH 17/33] Modify release to have ARM --- .github/workflows/release.yml | 136 ++++++++++++++++++++++------------ 1 file changed, 87 insertions(+), 49 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 57a64da..a9626e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,71 +6,109 @@ on: description: 'Version number to build and release' required: true jobs: + build-package: + name: Build self-contained executables + runs-on: ubuntu-latest + container: mcr.microsoft.com/dotnet/sdk:8.0 + strategy: + matrix: + include: + - platform: windows + platform-short: win + runtime: win-x64 + - platform: windows + platform-short: win + runtime: win-arm64 + - platform: mac + platform-short: mac + runtime: osx-x64 + - platform: mac + platform-short: mac + runtime: osx-arm64 + - platform: linux + platform-short: linux + runtime: linux-x64 + - platform: linux + platform-short: linux + runtime: linux-arm64 + steps: + - name: Check .NET version + run: dotnet --version + - name: Checkout source code + uses: actions/checkout@v3 + - name: Execute Action build-with-plugins + uses: ./.github/actions/build-with-plugins + with: + platform: ${{ matrix.platform }} + platform-short: ${{ matrix.platform-short }} + runtime: ${{ matrix.runtime }} + build-version: ${{ inputs.release-tag }} + github-release: name: Create GitHub release runs-on: ubuntu-latest needs: build-package permissions: contents: write + strategy: + matrix: + include: + - platform: windows + platform-short: win + runtime: win-x64 + - platform: windows + platform-short: win + runtime: win-arm64 + - platform: mac + platform-short: mac + runtime: osx-x64 + - platform: mac + platform-short: mac + runtime: osx-arm64 + - platform: linux + platform-short: linux + runtime: linux-x64 + - platform: linux + platform-short: linux + runtime: linux-arm64 steps: - - name: Download Windows x64 package + - name: Download package uses: actions/download-artifact@v4 with: - name: windows-package - path: windows-package - - name: Download macOS x64 package - uses: actions/download-artifact@v4 - with: - name: mac-package - path: mac-package - - name: Download Linux x64 package - uses: actions/download-artifact@v4 - with: - name: linux-package - path: linux-package + name: ${{ matrix.runtime }} + path: ${{ matrix.runtime }} + - name: Extract Linux package + if: matrix.platform == 'linux' + run: | + tar -xzf dmt-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }} . - name: Package output files run: | - zip -r dmt-${{ inputs.release-tag }}-win-x64.zip windows-package/* - zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip mac-package/* - zip -r dmt-${{ inputs.release-tag }}-linux-x64.zip linux-package/* + zip -r dmt-${{ matrix.runtime }} ${{ matrix.runtime }}/* - name: Create GitHub release + if: matrix.platform == 'windows' uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | - dmt-${{ inputs.release-tag }}-win-x64.zip - dmt-${{ inputs.release-tag }}-mac-x64.zip - dmt-${{ inputs.release-tag }}-linux-x64.zip - build-package: - name: Build self-contained executables - runs-on: ubuntu-latest - container: mcr.microsoft.com/dotnet/sdk:8.0 - steps: - - name: Check .NET version - run: dotnet --version - - name: Checkout source code - uses: actions/checkout@v3 - - name: Execute Action build-with-plugins for Windows - uses: ./.github/actions/build-with-plugins - id: build-with-plugins-win + dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip + - name: Create GitHub release + if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' + uses: softprops/action-gh-release@v1 with: - platform: windows - platform-short: win - runtime: win-x64 - build-version: ${{ inputs.release-tag }} - - name: Execute Action build-with-plugins for MacOS - uses: ./.github/actions/build-with-plugins - id: build-with-plugins-mac + tag_name: ${{ inputs.release-tag }} + files: | + dmt-${{ inputs.release-tag }}-mac-x64.zip + - name: Create GitHub release + if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' + uses: softprops/action-gh-release@v1 with: - platform: mac - platform-short: mac - runtime: osx-x64 - build-version: ${{ inputs.release-tag }} - - name: Execute Action build-with-plugins for Linux - uses: ./.github/actions/build-with-plugins - id: build-with-plugins-linux + tag_name: ${{ inputs.release-tag }} + files: | + dmt-${{ inputs.release-tag }}-mac-arm64.zip + - name: Create GitHub release + if: matrix.platform == 'linux' + uses: softprops/action-gh-release@v1 with: - platform: linux - platform-short: linux - runtime: linux-x64 - build-version: ${{ inputs.release-tag }} + tag_name: ${{ inputs.release-tag }} + files: | + dmt-${{ inputs.release-tag }}.tar.gz \ No newline at end of file From 0a867526e746cfba6d9f52e50bbcfa9c7c3dfce1 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Sun, 9 Mar 2025 12:33:26 -0700 Subject: [PATCH 18/33] add package to name --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9626e0..1b19a87 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,7 +75,7 @@ jobs: - name: Download package uses: actions/download-artifact@v4 with: - name: ${{ matrix.runtime }} + name: ${{ matrix.runtime }}-package path: ${{ matrix.runtime }} - name: Extract Linux package if: matrix.platform == 'linux' @@ -104,7 +104,7 @@ jobs: with: tag_name: ${{ inputs.release-tag }} files: | - dmt-${{ inputs.release-tag }}-mac-arm64.zip + dmt-${{ inputs.release-tag }}-mac-x64.zip - name: Create GitHub release if: matrix.platform == 'linux' uses: softprops/action-gh-release@v1 From a5a725adb2a5616c24b8fac36347eab6ef6c0e2a Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Mon, 10 Mar 2025 05:46:01 -0700 Subject: [PATCH 19/33] fix release --- .github/workflows/release.yml | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1b19a87..064f783 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -77,38 +77,47 @@ jobs: with: name: ${{ matrix.runtime }}-package path: ${{ matrix.runtime }} - - name: Extract Linux package + - name: Package output files ${{ matrix.runtime }} if: matrix.platform == 'linux' run: | - tar -xzf dmt-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }} . - - name: Package output files + tar -czvf dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }}/ . + - name: Package output files ${{ matrix.runtime }} + if: matrix.platform == 'windows' + run: | + zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }} ${{ matrix.runtime }}/* + - name: Package output files ${{ matrix.runtime }} + if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' + run: | + zip -r dmt-${{ inputs.release-tag }}-mac-x64 ${{ matrix.runtime }}/* + - name: Package output files ${{ matrix.runtime }} + if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' run: | - zip -r dmt-${{ matrix.runtime }} ${{ matrix.runtime }}/* - - name: Create GitHub release + zip -r dmt-${{ inputs.release-tag }}-mac-arm64 ${{ matrix.runtime }}/* + - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'windows' uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip - - name: Create GitHub release + - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | dmt-${{ inputs.release-tag }}-mac-x64.zip - - name: Create GitHub release + - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | dmt-${{ inputs.release-tag }}-mac-x64.zip - - name: Create GitHub release + - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'linux' uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | - dmt-${{ inputs.release-tag }}.tar.gz \ No newline at end of file + dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz \ No newline at end of file From 2605e9ad962d2ec14e2d86136237873f7a7bd0a7 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Mon, 10 Mar 2025 18:04:40 -0700 Subject: [PATCH 20/33] Add .zip --- .github/actions/build-with-plugins/action.yml | 2 +- .github/workflows/release.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/build-with-plugins/action.yml b/.github/actions/build-with-plugins/action.yml index a35b4f6..05c4f02 100644 --- a/.github/actions/build-with-plugins/action.yml +++ b/.github/actions/build-with-plugins/action.yml @@ -170,4 +170,4 @@ runs: uses: actions/upload-artifact@v4 with: name: ${{ inputs.runtime }}-package - path: ${{ inputs.runtime }}/ \ No newline at end of file + path: ${{ inputs.runtime }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 064f783..fc09da2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,15 +84,15 @@ jobs: - name: Package output files ${{ matrix.runtime }} if: matrix.platform == 'windows' run: | - zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }} ${{ matrix.runtime }}/* + zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip ${{ matrix.runtime }}/* - name: Package output files ${{ matrix.runtime }} if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' run: | - zip -r dmt-${{ inputs.release-tag }}-mac-x64 ${{ matrix.runtime }}/* + zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip ${{ matrix.runtime }}/* - name: Package output files ${{ matrix.runtime }} if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' run: | - zip -r dmt-${{ inputs.release-tag }}-mac-arm64 ${{ matrix.runtime }}/* + zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip ${{ matrix.runtime }}/* - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'windows' uses: softprops/action-gh-release@v1 @@ -113,7 +113,7 @@ jobs: with: tag_name: ${{ inputs.release-tag }} files: | - dmt-${{ inputs.release-tag }}-mac-x64.zip + dmt-${{ inputs.release-tag }}-mac-arm64.zip - name: Create GitHub release ${{ matrix.runtime }} if: matrix.platform == 'linux' uses: softprops/action-gh-release@v1 From da62e2f5bcd2aa398354c8f61b4150a1617ad4dd Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Mon, 10 Mar 2025 18:16:37 -0700 Subject: [PATCH 21/33] Reduce --- .github/workflows/release.yml | 78 ++++++++++------------------------- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc09da2..7b89209 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,74 +50,40 @@ jobs: needs: build-package permissions: contents: write - strategy: - matrix: - include: - - platform: windows - platform-short: win - runtime: win-x64 - - platform: windows - platform-short: win - runtime: win-arm64 - - platform: mac - platform-short: mac - runtime: osx-x64 - - platform: mac - platform-short: mac - runtime: osx-arm64 - - platform: linux - platform-short: linux - runtime: linux-x64 - - platform: linux - platform-short: linux - runtime: linux-arm64 steps: - name: Download package uses: actions/download-artifact@v4 with: name: ${{ matrix.runtime }}-package path: ${{ matrix.runtime }} - - name: Package output files ${{ matrix.runtime }} - if: matrix.platform == 'linux' - run: | - tar -czvf dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }}/ . - - name: Package output files ${{ matrix.runtime }} - if: matrix.platform == 'windows' - run: | - zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip ${{ matrix.runtime }}/* - - name: Package output files ${{ matrix.runtime }} - if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' - run: | - zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip ${{ matrix.runtime }}/* - - name: Package output files ${{ matrix.runtime }} - if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' + - name: Package output files run: | - zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip ${{ matrix.runtime }}/* - - name: Create GitHub release ${{ matrix.runtime }} - if: matrix.platform == 'windows' - uses: softprops/action-gh-release@v1 + if [[ "${{ matrix.platform }}" == "linux" ]]; then + tar -czvf dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }}/ . + elif [[ "${{ matrix.platform }}" == "mac" && "${{ matrix.runtime }}" == "osx-x64" ]]; then + zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip ${{ matrix.runtime }}/* + elif [[ "${{ matrix.platform }}" == "mac" && "${{ matrix.runtime }}" == "osx-arm64" ]]; then + zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip ${{ matrix.runtime }}/* + else + zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip ${{ matrix.runtime }}/* + - name: Upload package + uses: actions/upload-artifact@v4 with: - tag_name: ${{ inputs.release-tag }} - files: | + name: ${{ matrix.runtime }}-package + path: | + dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz + dmt-${{ inputs.release-tag }}-mac-x64.zip + dmt-${{ inputs.release-tag }}-mac-arm64.zip dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip - - name: Create GitHub release ${{ matrix.runtime }} - if: matrix.platform == 'mac' && matrix.runtime == 'osx-x64' + - name: Create GitHub release + if: always() uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | + dmt-${{ inputs.release-tag }}-win-x64.zip + dmt-${{ inputs.release-tag }}-win-arm64.zip dmt-${{ inputs.release-tag }}-mac-x64.zip - - name: Create GitHub release ${{ matrix.runtime }} - if: matrix.platform == 'mac' && matrix.runtime == 'osx-arm64' - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{ inputs.release-tag }} - files: | dmt-${{ inputs.release-tag }}-mac-arm64.zip - - name: Create GitHub release ${{ matrix.runtime }} - if: matrix.platform == 'linux' - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{ inputs.release-tag }} - files: | - dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz \ No newline at end of file + dmt-${{ inputs.release-tag }}-linux-x64.tar.gz + dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz \ No newline at end of file From f8560896b8152e41b00a753321efe8af73e2d512 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Mon, 10 Mar 2025 18:30:39 -0700 Subject: [PATCH 22/33] add matrix --- .github/workflows/release.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b89209..9f37f6d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,6 +50,27 @@ jobs: needs: build-package permissions: contents: write + strategy: + matrix: + include: + - platform: windows + platform-short: win + runtime: win-x64 + - platform: windows + platform-short: win + runtime: win-arm64 + - platform: mac + platform-short: mac + runtime: osx-x64 + - platform: mac + platform-short: mac + runtime: osx-arm64 + - platform: linux + platform-short: linux + runtime: linux-x64 + - platform: linux + platform-short: linux + runtime: linux-arm64 steps: - name: Download package uses: actions/download-artifact@v4 From 03bb4392a602efffe4eba76f465cec7c881562dc Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Fri, 14 Mar 2025 20:00:27 -0700 Subject: [PATCH 23/33] fix end of file issue --- .github/workflows/release.yml | 72 ++++++++++++----------------------- 1 file changed, 25 insertions(+), 47 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f37f6d..24980fb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,7 @@ on: release-tag: description: 'Version number to build and release' required: true + jobs: build-package: name: Build self-contained executables @@ -16,21 +17,27 @@ jobs: - platform: windows platform-short: win runtime: win-x64 + artifact-name: dmt-${{ inputs.release-tag }}-win-x64.zip - platform: windows platform-short: win runtime: win-arm64 + artifact-name: dmt-${{ inputs.release-tag }}-win-arm64.zip - platform: mac platform-short: mac runtime: osx-x64 + artifact-name: dmt-${{ inputs.release-tag }}-macOS-x64.zip - platform: mac platform-short: mac runtime: osx-arm64 + artifact-name: dmt-${{ inputs.release-tag }}-macOS-arm64.zip - platform: linux platform-short: linux runtime: linux-x64 + artifact-name: dmt-${{ inputs.release-tag }}-linux-x64.tar.gz - platform: linux platform-short: linux runtime: linux-arm64 + artifact-name: dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz steps: - name: Check .NET version run: dotnet --version @@ -43,68 +50,39 @@ jobs: platform-short: ${{ matrix.platform-short }} runtime: ${{ matrix.runtime }} build-version: ${{ inputs.release-tag }} - - github-release: - name: Create GitHub release - runs-on: ubuntu-latest - needs: build-package - permissions: - contents: write - strategy: - matrix: - include: - - platform: windows - platform-short: win - runtime: win-x64 - - platform: windows - platform-short: win - runtime: win-arm64 - - platform: mac - platform-short: mac - runtime: osx-x64 - - platform: mac - platform-short: mac - runtime: osx-arm64 - - platform: linux - platform-short: linux - runtime: linux-x64 - - platform: linux - platform-short: linux - runtime: linux-arm64 - steps: - - name: Download package - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.runtime }}-package - path: ${{ matrix.runtime }} - name: Package output files run: | if [[ "${{ matrix.platform }}" == "linux" ]]; then - tar -czvf dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz -C ${{ matrix.runtime }}/ . - elif [[ "${{ matrix.platform }}" == "mac" && "${{ matrix.runtime }}" == "osx-x64" ]]; then - zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip ${{ matrix.runtime }}/* - elif [[ "${{ matrix.platform }}" == "mac" && "${{ matrix.runtime }}" == "osx-arm64" ]]; then - zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip ${{ matrix.runtime }}/* + tar -czvf ${{ matrix.artifact-name }} -C ${{ matrix.runtime }}/ . else - zip -r dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip ${{ matrix.runtime }}/* + zip -r ${{ matrix.artifact-name }} ${{ matrix.runtime }}/* + fi - name: Upload package uses: actions/upload-artifact@v4 with: name: ${{ matrix.runtime }}-package path: | - dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.tar.gz - dmt-${{ inputs.release-tag }}-mac-x64.zip - dmt-${{ inputs.release-tag }}-mac-arm64.zip - dmt-${{ inputs.release-tag }}-${{ matrix.runtime }}.zip + ${{ matrix.artifact-name }} + + create-release: + name: Create GitHub release + runs-on: ubuntu-latest + needs: build-package + permissions: + contents: write + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: . - name: Create GitHub release - if: always() uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} files: | dmt-${{ inputs.release-tag }}-win-x64.zip dmt-${{ inputs.release-tag }}-win-arm64.zip - dmt-${{ inputs.release-tag }}-mac-x64.zip - dmt-${{ inputs.release-tag }}-mac-arm64.zip + dmt-${{ inputs.release-tag }}-macOS-x64.zip + dmt-${{ inputs.release-tag }}-macOS-arm64.zip dmt-${{ inputs.release-tag }}-linux-x64.tar.gz dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz \ No newline at end of file From a615f2d08440105caf9424ab38c7c1395570b0ab Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Fri, 14 Mar 2025 20:09:01 -0700 Subject: [PATCH 24/33] correct if statement for sh not bash --- .github/workflows/release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 24980fb..a97a661 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,9 @@ jobs: build-version: ${{ inputs.release-tag }} - name: Package output files run: | - if [[ "${{ matrix.platform }}" == "linux" ]]; then + # for linux, use tar to create a compressed archive + # for macOS and Windows, use zip to create a compressed archive + if [ "${{ matrix.platform }}" == "linux" ]; then tar -czvf ${{ matrix.artifact-name }} -C ${{ matrix.runtime }}/ . else zip -r ${{ matrix.artifact-name }} ${{ matrix.runtime }}/* From 1baacad8132ee034154b53e5dcbb8c65aa7ac31e Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Fri, 14 Mar 2025 21:01:54 -0700 Subject: [PATCH 25/33] remove == which isn't supported in sh --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a97a661..c68143e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,7 +54,7 @@ jobs: run: | # for linux, use tar to create a compressed archive # for macOS and Windows, use zip to create a compressed archive - if [ "${{ matrix.platform }}" == "linux" ]; then + if [ "${{ matrix.platform }}" = "linux" ]; then tar -czvf ${{ matrix.artifact-name }} -C ${{ matrix.runtime }}/ . else zip -r ${{ matrix.artifact-name }} ${{ matrix.runtime }}/* From 507b43934fbf26fa0e802245ecd68811d912e41d Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Fri, 14 Mar 2025 21:16:05 -0700 Subject: [PATCH 26/33] remove my comments --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c68143e..88fa202 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,8 +52,6 @@ jobs: build-version: ${{ inputs.release-tag }} - name: Package output files run: | - # for linux, use tar to create a compressed archive - # for macOS and Windows, use zip to create a compressed archive if [ "${{ matrix.platform }}" = "linux" ]; then tar -czvf ${{ matrix.artifact-name }} -C ${{ matrix.runtime }}/ . else From 78fb34a4a9c344137eeada3f70383b846963e2fa Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 19 Mar 2025 21:45:48 -0700 Subject: [PATCH 27/33] Move package to release section --- .github/workflows/release.yml | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 88fa202..7193439 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,27 +17,21 @@ jobs: - platform: windows platform-short: win runtime: win-x64 - artifact-name: dmt-${{ inputs.release-tag }}-win-x64.zip - platform: windows platform-short: win runtime: win-arm64 - artifact-name: dmt-${{ inputs.release-tag }}-win-arm64.zip - platform: mac platform-short: mac runtime: osx-x64 - artifact-name: dmt-${{ inputs.release-tag }}-macOS-x64.zip - platform: mac platform-short: mac runtime: osx-arm64 - artifact-name: dmt-${{ inputs.release-tag }}-macOS-arm64.zip - platform: linux platform-short: linux runtime: linux-x64 - artifact-name: dmt-${{ inputs.release-tag }}-linux-x64.tar.gz - platform: linux platform-short: linux runtime: linux-arm64 - artifact-name: dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz steps: - name: Check .NET version run: dotnet --version @@ -50,19 +44,6 @@ jobs: platform-short: ${{ matrix.platform-short }} runtime: ${{ matrix.runtime }} build-version: ${{ inputs.release-tag }} - - name: Package output files - run: | - if [ "${{ matrix.platform }}" = "linux" ]; then - tar -czvf ${{ matrix.artifact-name }} -C ${{ matrix.runtime }}/ . - else - zip -r ${{ matrix.artifact-name }} ${{ matrix.runtime }}/* - fi - - name: Upload package - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.runtime }}-package - path: | - ${{ matrix.artifact-name }} create-release: name: Create GitHub release @@ -75,6 +56,14 @@ jobs: uses: actions/download-artifact@v4 with: path: . + - name: Package output files + run: | + zip -r dmt-${{ inputs.release-tag }}-win-x64.zip win-x64-package/* + zip -r dmt-${{ inputs.release-tag }}-win-arm64.zip win-arm64-package/* + zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip osx-x64-package/* + zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip osx-arm64-package/* + zip -r dmt-${{ inputs.release-tag }}-linux-x64.zip linux-x64-package/* + zip -r dmt-${{ inputs.release-tag }}-linux-arm64.zip linux-arm64-package/* - name: Create GitHub release uses: softprops/action-gh-release@v1 with: @@ -82,7 +71,7 @@ jobs: files: | dmt-${{ inputs.release-tag }}-win-x64.zip dmt-${{ inputs.release-tag }}-win-arm64.zip - dmt-${{ inputs.release-tag }}-macOS-x64.zip - dmt-${{ inputs.release-tag }}-macOS-arm64.zip - dmt-${{ inputs.release-tag }}-linux-x64.tar.gz - dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz \ No newline at end of file + dmt-${{ inputs.release-tag }}-mac-x64.zip + dmt-${{ inputs.release-tag }}-mac-arm64.zip + dmt-${{ inputs.release-tag }}-linux-x64.zip + dmt-${{ inputs.release-tag }}-linux-arm64.zip \ No newline at end of file From a2abac99da0b5c07a9d3b5008ae3ed4ddef24b7a Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Wed, 19 Mar 2025 21:50:26 -0700 Subject: [PATCH 28/33] Switch to tar for linux --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7193439..e29a95e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,8 +62,8 @@ jobs: zip -r dmt-${{ inputs.release-tag }}-win-arm64.zip win-arm64-package/* zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip osx-x64-package/* zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip osx-arm64-package/* - zip -r dmt-${{ inputs.release-tag }}-linux-x64.zip linux-x64-package/* - zip -r dmt-${{ inputs.release-tag }}-linux-arm64.zip linux-arm64-package/* + tar -czvf dmt-${{ inputs.release-tag }}-linux-x64.tar.gz linux-x64-package/* + tar -czvf dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz linux-arm64-package/* - name: Create GitHub release uses: softprops/action-gh-release@v1 with: @@ -73,5 +73,5 @@ jobs: dmt-${{ inputs.release-tag }}-win-arm64.zip dmt-${{ inputs.release-tag }}-mac-x64.zip dmt-${{ inputs.release-tag }}-mac-arm64.zip - dmt-${{ inputs.release-tag }}-linux-x64.zip - dmt-${{ inputs.release-tag }}-linux-arm64.zip \ No newline at end of file + dmt-${{ inputs.release-tag }}-linux-x64.tar.gz + dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz \ No newline at end of file From 46b56e1c0acc5454e9c6bbe113241136955f79f9 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Thu, 20 Mar 2025 08:22:05 -0700 Subject: [PATCH 29/33] rename folders to historical context --- .github/workflows/release.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e29a95e..249e945 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,8 +60,16 @@ jobs: run: | zip -r dmt-${{ inputs.release-tag }}-win-x64.zip win-x64-package/* zip -r dmt-${{ inputs.release-tag }}-win-arm64.zip win-arm64-package/* + + # rename from osx to mac to retain previous naming convention + mv osx-x64-package mac-x64-package zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip osx-x64-package/* + + # rename from osx to mac to retain previous naming convention + mv osx-arm64-package mac-arm64-package zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip osx-arm64-package/* + + # create linux packages using tar as supposed to zip. tar is more common for linux packages tar -czvf dmt-${{ inputs.release-tag }}-linux-x64.tar.gz linux-x64-package/* tar -czvf dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz linux-arm64-package/* - name: Create GitHub release From 5edbaa98d5d07d7e31c57757b8f7352c7336add6 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Thu, 20 Mar 2025 08:25:20 -0700 Subject: [PATCH 30/33] Actually compress the right folder --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 249e945..2e387b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -63,11 +63,11 @@ jobs: # rename from osx to mac to retain previous naming convention mv osx-x64-package mac-x64-package - zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip osx-x64-package/* + zip -r dmt-${{ inputs.release-tag }}-mac-x64.zip mac-x64-package/* # rename from osx to mac to retain previous naming convention mv osx-arm64-package mac-arm64-package - zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip osx-arm64-package/* + zip -r dmt-${{ inputs.release-tag }}-mac-arm64.zip mac-arm64-package/* # create linux packages using tar as supposed to zip. tar is more common for linux packages tar -czvf dmt-${{ inputs.release-tag }}-linux-x64.tar.gz linux-x64-package/* From 1ccbbcc6914be3638ecfd7cd6e62937e2058958a Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Thu, 20 Mar 2025 08:29:06 -0700 Subject: [PATCH 31/33] include the runtime in the step --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2e387b4..922c7d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,7 +37,7 @@ jobs: run: dotnet --version - name: Checkout source code uses: actions/checkout@v3 - - name: Execute Action build-with-plugins + - name: Execute Action build-with-plugins ${{ matrix.runtime }} uses: ./.github/actions/build-with-plugins with: platform: ${{ matrix.platform }} From 2b7209ef352344de82063213152e7818bf645f1e Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Thu, 20 Mar 2025 08:30:12 -0700 Subject: [PATCH 32/33] add the release tag to the final step --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 922c7d8..5347a6f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,7 +72,7 @@ jobs: # create linux packages using tar as supposed to zip. tar is more common for linux packages tar -czvf dmt-${{ inputs.release-tag }}-linux-x64.tar.gz linux-x64-package/* tar -czvf dmt-${{ inputs.release-tag }}-linux-arm64.tar.gz linux-arm64-package/* - - name: Create GitHub release + - name: Create GitHub release ${{ inputs.release-tag }} uses: softprops/action-gh-release@v1 with: tag_name: ${{ inputs.release-tag }} From fd8b0f909e3cf020ea8f8c6f429a09ef5a5930d8 Mon Sep 17 00:00:00 2001 From: Phil Nachreiner Date: Fri, 21 Mar 2025 20:17:48 -0700 Subject: [PATCH 33/33] Update README.md Good catch Copilot! Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 8edd61b..4b84ee7 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,7 @@ The Azure Cosmos DB Desktop Data Migration Tool is an open-source project contai To use the tool, download the latest archive file for your platform (win-x64, win-arm64, mac-x64, mac-arm64, linux-x64, linux-arm64) from [Releases](https://github.com/AzureCosmosDB/data-migration-desktop-tool/releases) and extract all files to your desired install location. To begin a data transfer operation, first populate the `migrationsettings.json` file with appropriate settings for your data source and sink (see [detailed instructions](#using-the-command-line) below or [review examples](ExampleConfigs.md)), and then run the application from a command line: `dmt.exe` on Windows or `dmt` on other platforms. -If using RBAC (Role Based Access Control) (migrate-passwordless)[https://learn.microsoft.com/azure/cosmos-db/nosql/migrate-passwordless?tabs=sign-in-azure-cli%2Cdotnet%2Cazure-portal-create%2Cazure-portal-associate%2Capp-service-identity] ensure you are authenticated with Azure see (Troubleshoot Azure Identity authentication issues -)[https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/TROUBLESHOOTING.md] One common way to authenticate is using the Azure CLI (How to install the Azure CLI)[https://learn.microsoft.com/cli/azure/install-azure-cli] and `az login` - +If using RBAC (Role Based Access Control) [migrate-passwordless](https://learn.microsoft.com/azure/cosmos-db/nosql/migrate-passwordless?tabs=sign-in-azure-cli%2Cdotnet%2Cazure-portal-create%2Cazure-portal-associate%2Capp-service-identity) ensure you are authenticated with Azure see [Troubleshoot Azure Identity authentication issues](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/TROUBLESHOOTING.md) One common way to authenticate is using the Azure CLI [How to install the Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli) and `az login` ## Extension documentation Multiple extensions are provided in this repository. Find the documentation for the usage and configuration of each using the links provided: