В этой статье я расскажу как завернуть свою библиотеку в nuget, выложить ее, но так, чтобы ее никто не видел и как потом ей пользоваться.
Погнали
В основе статьи лежит библиотека из
Открываем наш репозиторий и создаем Pipeline
Выбираем вкладку Actions, затем жмем set up a workflow yourself.
И вставляем код
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 в конце.
Пушим тег в репозиторий и получаем свой пакет
Готово.