pyapp-org/pyapp

View on GitHub
.github/workflows/pre-release.yml

Summary

Maintainability
Test Coverage
# Match pre release beta tags on release branches.
name: Pre-release

on:
  push:
    branches:
      - release*
    tags:
      # Matches 1.2b3 and 1.2.3b4
      - "[0-9]+.[0-9]+[ab][0-9]+"
      - "[0-9]+.[0-9]+.[0-9]+[ab][0-9]+"

jobs:
  pre-release:
    runs-on: ubuntu-latest
    name: Build pre-release package

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-python@master
        name: Setup Python 3.8
        with:
          python-version: 3.8

      - name: Install dependencies
        run: python -m pip install -U poetry

      - name: Build Package
        id: build_package
        run: |
          rm -rf dist
          poetry build
          cd dist
          echo "::set-output name=source::$(ls *.tar.gz)"
          echo "::set-output name=wheel::$(ls *.whl)"
      
      - name: Create a Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Pre-release ${{ github.ref }}
          prerelease: true
    
      - name: Upload Release Wheel
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./dist/${{ steps.build_package.outputs.wheel }}
          asset_name: ${{ steps.build_package.outputs.wheel }}
          asset_content_type: application/x-pywheel+zip

      - name: Upload Release Source
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./dist/${{ steps.build_package.outputs.source }}
          asset_name: ${{ steps.build_package.outputs.source }}
          asset_content_type: application/x-tar+gzip