mirror of
https://github.com/wiz0u/WTelegramClient.git
synced 2025-12-06 06:52:01 +01:00
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
name: Dev build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore: [ '.**', 'Examples/**', '**.md' ]
|
|
|
|
env:
|
|
PROJECT_PATH: src/WTelegramClient.csproj
|
|
CONFIGURATION: Release
|
|
RELEASE_NOTES: ${{ github.event.head_commit.message }}
|
|
|
|
jobs:
|
|
build:
|
|
permissions:
|
|
id-token: write # enable GitHub OIDC token issuance for this job
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 30
|
|
- name: Determine version
|
|
run: |
|
|
git fetch --depth=30 --tags
|
|
DESCR_TAG=$(git describe --tags)
|
|
COMMITS=${DESCR_TAG#*-}
|
|
COMMITS=${COMMITS%-*}
|
|
LAST_TAG=${DESCR_TAG%%-*}
|
|
NEXT_VERSION=${LAST_TAG%.*}.$((${LAST_TAG##*.} + 1))-dev.$COMMITS
|
|
RELEASE_VERSION=${{vars.RELEASE_VERSION}}-dev.$COMMITS
|
|
if [[ "$RELEASE_VERSION" > "$NEXT_VERSION" ]] then VERSION=$RELEASE_VERSION; else VERSION=$NEXT_VERSION; fi
|
|
echo Last tag: $LAST_TAG · Next version: $NEXT_VERSION · Release version: $RELEASE_VERSION · Build version: $VERSION
|
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
|
|
# - name: Setup .NET
|
|
# uses: actions/setup-dotnet@v4
|
|
# with:
|
|
# dotnet-version: 8.0.x
|
|
- name: Pack
|
|
run: |
|
|
RELEASE_NOTES=${RELEASE_NOTES//$'\n'/%0A}
|
|
RELEASE_NOTES=${RELEASE_NOTES//\"/%22}
|
|
RELEASE_NOTES=${RELEASE_NOTES//,/%2C}
|
|
RELEASE_NOTES=${RELEASE_NOTES//;/%3B}
|
|
dotnet pack $PROJECT_PATH --configuration $CONFIGURATION -p:Version=$VERSION -p:ReleaseNotes="$RELEASE_NOTES" --output packages
|
|
# - name: Upload artifact
|
|
# uses: actions/upload-artifact@v4
|
|
# with:
|
|
# name: packages
|
|
# path: packages/*.nupkg
|
|
|
|
- name: NuGet login (OIDC → temp API key)
|
|
uses: NuGet/login@v1
|
|
id: login
|
|
with:
|
|
user: ${{ secrets.NUGET_USER }}
|
|
- name: Nuget push
|
|
run: dotnet nuget push packages/*.nupkg --api-key ${{steps.login.outputs.NUGET_API_KEY}} --skip-duplicate --source https://api.nuget.org/v3/index.json
|
|
|
|
- name: Deployment Notification
|
|
env:
|
|
JSON: |
|
|
{
|
|
"status": "success", "complete": true, "commitMessage": ${{ toJSON(env.RELEASE_NOTES) }},
|
|
"message": "{ \"commitId\": \"${{ github.sha }}\", \"buildNumber\": \"${{ env.VERSION }}\", \"repoName\": \"${{ github.repository }}\"}"
|
|
}
|
|
run: |
|
|
curl -X POST -H "Content-Type: application/json" -d "$JSON" ${{ secrets.DEPLOYED_WEBHOOK }}
|