eggplants/pyjlyric

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
name: Release Package

# need to setup:
# secrets.PYPI_TOKEN (See: https://pypi.org/help/#apitoken)

on:
  push:
    tags:
    - v*
env:
  PYTHON_VERSION: '3.11'
  PROJECT_NAME: pyjlyric

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - id: create_release
      uses: actions/create-release@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false
  pypi:
    needs: release
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
      with:
        persist-credentials: false
    - name: Build and publish to pypi
      uses: JRubics/poetry-publish@v2.0
      with:
        pypi_token: ${{ secrets.PYPI_TOKEN }}
  ghcr:
    needs: release
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: docker/metadata-action@v5
      id: meta
      with:
        images: ghcr.io/${{ github.repository }}
        tags: |
          type=semver,pattern={{version}}
          type=semver,pattern={{major}}.{{minor}}
    - uses: docker/login-action@v3
      with:
        registry: ghcr.io
        username: ${{ github.repository_owner }}
        password: ${{ secrets.GITHUB_TOKEN }}
    - uses: docker/build-push-action@v6
      with:
        context: .
        push: true
        tags: ${{ steps.meta.outputs.tags }}
        labels: ${{ steps.meta.outputs.labels }}
        build-args: |
          VERSION=${{ github.event.release.tag_name }}