elsa-core/.github/workflows/packages.yml
Sipke Schoorstra d943a0e8bd
Patch 3.1.2 (#5172)
* Remove unused BulkExtensions (#5160)

* Remove unnecessary whitespace in packages.yml

The whitespace after the if conditional in packages.yml was unused and unnecessary. This commit ensures to remove those to promote cleaner, more efficient code.

* Update default package version in GitHub workflows

The package version in the GitHub workflows configuration (.github/workflows/packages.yml) has been updated from 3.1.0 to 3.2.0. This change reflects version updates in the package management system.

* Remove unused BulkExtensions

---------

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>

* Use PolySharp for automatic polyfilling (#5161)

* Remove unnecessary whitespace in packages.yml

The whitespace after the if conditional in packages.yml was unused and unnecessary. This commit ensures to remove those to promote cleaner, more efficient code.

* Update default package version in GitHub workflows

The package version in the GitHub workflows configuration (.github/workflows/packages.yml) has been updated from 3.1.0 to 3.2.0. This change reflects version updates in the package management system.

* Use PolySharp for automatic polyfilling

PolySharp is a design time only dependency which will analyze which polyfills are needed for the currently building target framework and will then source generate only the needed polyfills. Also they're internal by default so they don't conflict.

fixes #5157

---------

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>

* Update patch version in packages workflow

The packages.yml workflow has been updated to reference patch version 3.1.2 instead of 3.1.1. This ensures the workflow correctly identifies and handles updates tagged with this new version.

---------

Co-authored-by: Robin Sue <robinsue@live.de>
2024-04-02 18:52:49 +02:00

114 lines
4.3 KiB
YAML

name: Elsa 3 Packages
on:
workflow_dispatch:
push:
branches:
- 'main'
- 'feature/*'
- 'issue/*'
- 'enhancement/*'
- 'patch/*'
- 'fix/*'
release:
types: [ prereleased, published ]
env:
feedz_feed_source: 'https://f.feedz.io/elsa-workflows/elsa-3/nuget/index.json'
nuget_feed_source: 'https://api.nuget.org/v3/index.json'
jobs:
build:
name: Build packages
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Extract branch name
run: |
BRANCH_NAME=${{ github.ref }} # e.g., refs/heads/main
BRANCH_NAME=${BRANCH_NAME#refs/heads/} # remove the refs/heads/ prefix
# Extract the last part after the last slash of the branch name, if any, e.g., feature/issue-123 -> issue-123 and use it as the version prefix.
PACKAGE_PREFIX=$(echo $BRANCH_NAME | rev | cut -d/ -f1 | rev | tr '_' '-')
# If the branch name is main, use the preview version. Otherwise, use the branch name as the version prefix.
if [[ "${BRANCH_NAME}" == "main" ]]; then
PACKAGE_PREFIX="preview"
fi
echo "Ref: ${{ github.ref }}"
echo "Branch name: ${BRANCH_NAME}"
echo "Package prefix: ${PACKAGE_PREFIX}"
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
echo "PACKAGE_PREFIX=${PACKAGE_PREFIX}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v3
- name: Verify commit exists in branch
run: |
if [[ "${{ github.ref }}" == refs/tags/* && "${{ github.event_name }}" == "release" && "${{ github.event.action }}" == "published" ]]; then
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
git branch --remote --contains | grep origin/patch/3.1.2
else
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
git branch --remote --contains | grep origin/${BRANCH_NAME}
fi
- name: Set VERSION variable
run: |
if [[ "${{ github.ref }}" == refs/tags/* && "${{ github.event_name }}" == "release" && "${{ github.event.action }}" == "published" ]]; then
TAG_NAME=${{ github.ref }} # e.g., refs/tags/3.0.0
TAG_NAME=${TAG_NAME#refs/tags/} # remove the refs/tags/ prefix
echo "VERSION=${TAG_NAME}" >> $GITHUB_ENV
else
echo "VERSION=3.2.0-${PACKAGE_PREFIX}.${{github.run_number}}" >> $GITHUB_ENV
fi
- name: Compile+Test+Pack
run: ./build.sh Compile+Test+Pack --version ${VERSION}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: elsa-nuget-packages
path: packages/*nupkg
if: ${{ github.event_name == 'release' || github.event_name == 'push'}}
publish_preview_feedz:
name: Publish to feedz.io
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
if: ${{ github.event_name == 'release' || github.event_name == 'push'}}
steps:
- name: Download Packages
uses: actions/download-artifact@v3
with:
name: elsa-nuget-packages
- name: Publish to feedz.io
run: dotnet nuget push *.nupkg -k ${{ secrets.FEEDZ_API_KEY }} -s ${{ env.feedz_feed_source }} --skip-duplicate
publish_preview_nuget:
name: Publish preview to nuget.org
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
if: ${{ github.event_name == 'prereleased' && github.event.action == 'published' }}
steps:
- name: Download Packages
uses: actions/download-artifact@v3
with:
name: elsa-nuget-packages
- name: Publish to nuget.org
run: dotnet nuget push *.nupkg -k ${{ secrets.NUGET_API_KEY }} -s ${{ env.nuget_feed_source }} --skip-duplicate
publish_nuget:
name: Publish release to nuget.org
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
if: ${{ github.event_name == 'release' && github.event.action == 'published' }}
steps:
- name: Download Packages
uses: actions/download-artifact@v3
with:
name: elsa-nuget-packages
- name: Publish to nuget.org
run: dotnet nuget push *.nupkg -k ${{ secrets.NUGET_API_KEY }} -s ${{ env.nuget_feed_source }} --skip-duplicate