diff --git a/sync_nuget_temp_proj.sh b/sync_nuget_temp_proj.sh new file mode 100644 index 0000000..5287f04 --- /dev/null +++ b/sync_nuget_temp_proj.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Переменные +AZURE_FEED=azure +GITLAB_FEED=gitlab +AZURE_FEED_URL="https://pkgs.dev.azure.com/your_org_name/your_project_name/_packaging/your_feed_name/nuget/v3/index.json" +GITLAB_FEED_URL="https://gitlab.com/api/v4/projects/YOUR_PROJECT_ID/packages/nuget" +TEMP_DIR="/opt/dev/nuget-tmp" +AZURE_PAT="your_azure_pat" # Локальный переменная для удобства +GITLAB_PAT="your_gitlab_pat" +# Путь к файлу конфигурации NuGet +#NUGET_CONFIG="NuGet.config" + +# Путь к временной директории для хранения пакетов +TEMP_DIR="./nuget_temp" +mkdir -p $TEMP_DIR + + +# Создать временный .csproj для загрузки всех пакетов +echo ' + + net5.0 + + + + +' > $TEMP_DIR/temp.csproj + +# Загрузить все доступные пакеты с помощью dotnet restore +# Используется пустой .csproj, чтобы добавить все версии пакетов в TEMP_DIR/nuget_temp +dotnet restore $TEMP_DIR/temp.csproj --packages $TEMP_DIR --source $AZURE_FEED #--configfile $NUGET_CONFIG + +# Удалить созданный .csproj после загрузки +rm $TEMP_DIR/temp.csproj + +# Публикация пакетов в GitLab Package Registry +echo "Загрузка пакетов в GitLab Package Registry..." + +for package in $TEMP_DIR/*.nupkg; do + echo "Uploading $package в GitLab..." + + dotnet nuget push "$package" --source $GITLAB_FEED #--configfile $NUGET_CONFIG +done + +# Очистка временной директории +rm -rf $TEMP_DIR + +echo "Синхронизация завершена."