sync_nuget/sync_nuget_temp_proj.sh

49 lines
1.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 '<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="PackagePlaceholder" Version="1.0.0" />
</ItemGroup>
</Project>' > $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 "Синхронизация завершена."