name: Upload Python Package permissions: contents: write on: push: # Sequence of patterns matched against refs/tags tags: - '*' # Push events to matching v*, i.e. v1.0, v20.15.10 # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: release: name: Create Release runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v3 with: # by default, it uses a depth of 1 # this fetches all history so that we can read each commit fetch-depth: 0 - name: Generate Changelog run: .gitea/release_message.sh > release_message.md - name: Release uses: softprops/action-gh-release@v1 with: body_path: release_message.md deploy: needs: release runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install dependencies run: | python -m pip install --upgrade pip pip install setuptools wheel twine - name: Check version match run: | REPOSITORY_NAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}' | tr '-' '_'') if [ "$(cat $REPOSITORY_NAME/VERSION)" = "${GITHUB_REF_NAME:1}" ] ; then echo "Version matches successfully!" else echo "Version must match!" exit -1 fi - name: Build and publish env: GITEA_USERNAME: gitearobot GITEA_PASSWORD: ${{ secrets.PACKAGE_GITEA_PAT }} run: | REPOSITORY_OWNER=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $1}') REPOSITORY_NAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}' | tr '-' '_'') dotnet nuget add source --name gitea --username $GITEA_USERNAME --password $GITEA_PASSWORD https://git.disi.dev/api/packages/$REPOSITORY_OWNER/nuget/index.json dotnet pack --include-symbols --include-source -p:PackageVersion=$(cat $REPOSITORY_NAME/VERSION) DotnetTestLib.sln dotnet nuget push --source gitea $REPOSITORY_NAME/bin/Release/$REPOSITORY_NAME.$(cat $REPOSITORY_NAME/VERSION).nupkg dotnet nuget push --source gitea $REPOSITORY_NAME/bin/Release/$REPOSITORY_NAME.$(cat $REPOSITORY_NAME/VERSION).symbols.nupkg