Найти тему
Тарасов

Net core. C#. Персональный nuget. Github actions.

Оглавление

В этой статье я расскажу как завернуть свою библиотеку в nuget, выложить ее, но так, чтобы ее никто не видел и как потом ей пользоваться.

Погнали

В основе статьи лежит библиотека из

Net core. WebRequest vs HttpClient. Часть 3. Benchmark.
Полный.Застрял.Разработать()14 апреля 2023

Открываем наш репозиторий и создаем Pipeline

-2

Выбираем вкладку Actions, затем жмем set up a workflow yourself.

И вставляем код

-3
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]"
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: ./src
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set VERSION variable from tag
run: echo "VERSION=${GITHUB_REF/refs\/tags\/}" >> $GITHUB_ENV
- name: Pack
run: dotnet pack --configuration Release /p:Version=${VERSION} --output .
- name: Push
run: dotnet nuget push ./DailyPosta.Data.Gpt.${VERSION}.nupkg --source
https://nuget.pkg.github.com/koodalabs/index.json --api-key ${GITHUB_TOKEN}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

На что стоит убрать внимание

1. Раздел push.tags наш пакет будет собираться только если мы запушим тег. И версия строго по шаблону 0.0.0 если вы привыкли ставить v в начале тогда шаблон будет таким - "v[0-9]+.[0-9]+.[0-9]"

2. Раздел defaults.run.working-directory я привык все исходники закидывать в папку src. Поэтому если ваш sln файл лежи в корне репозитория, то убирайте этот раздел

3. Путь куда пушится пакет должен быть корнем вашего Github с добавлением /index.json в конце.

Пушим тег в репозиторий и получаем свой пакет

-4

Готово.