Skip to content

Commit

Permalink
Fix some issues with automatic release publication (#407)
Browse files Browse the repository at this point in the history
* Only release source package...

... and leave commented out some code that would implement better testing
before uploading to Pypi.

* Remove unneeded comments

* Update publish_release.yml

* Update publish_release.yml

* Update publish_release.yml
  • Loading branch information
Takishima authored Jun 25, 2021
1 parent f0a0c1e commit 10b4077
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 39 deletions.
82 changes: 43 additions & 39 deletions .github/workflows/publish_release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: "Publish new release"

on:
workflow_dispatch:
push:
tags:
- v[0-9]+.*
Expand All @@ -14,78 +15,59 @@ jobs:
packaging:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'pull_request' && github.event.pull_request.merged == true)
if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'pull_request' && github.event.pull_request.merged == true) || github.event_name == 'workflow_dispatch'
strategy:
matrix:
os: [ubuntu-20.04, windows-2019, macos-10.15]
os:
- ubuntu-latest

steps:
- uses: actions/checkout@v2
if: github.event_name != 'workflow_dispatch'

- uses: actions/checkout@v2
if: github.event_name == 'workflow_dispatch'
with:
ref: 'master'

- name: Get history and tags for SCM versioning to work
run: |
git fetch --prune --unshallow
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Extract version from tag name (Unix)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && runner.os != 'Windows'
run: |
TAG_NAME="${GITHUB_REF/refs\/tags\//}"
VERSION=${TAG_NAME#v}
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
# ========================================================================

- name: Extract version from branch name (for release branches) (Unix)
if: github.event_name == 'pull_request' && startsWith(github.event.pull_request.head.ref, 'release/') && runner.os != 'Windows'
run: |
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
VERSION=${BRANCH_NAME#release/}
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
git tag v${RELEASE_VERSION} master
git tag v${VERSION} master
- name: Extract version from branch name (for hotfix branches) (Unix)
if: github.event_name == 'pull_request' && startsWith(github.event.pull_request.head.ref, 'hotfix/') && runner.os != 'Windows'
run: |
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
VERSION=${BRANCH_NAME#hotfix/}
git tag v${VERSION} master
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
git tag v${RELEASE_VERSION} master
- name: Extract version from tag name (Windows)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && runner.os == 'Windows'
run: |
$TAG_NAME = $GITHUB_REF -replace "refs/tags/",""
$VERSION = $TAG_NAME -replace "v",""
Write-Output "RELEASE_VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# ------------------------------------------------------------------------

- name: Extract version from branch name (for release branches) (Windows)
if: github.event_name == 'pull_request' && startsWith(github.event.pull_request.head.ref, 'release/') && runner.os == 'Windows'
run: |
$BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
$VERSION = $BRANCH_NAME -replace "release/",""
git tag v${VERSION} master
Write-Output "RELEASE_VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
git tag v${RELEASE_VERSION} master
- name: Extract version from branch name (for hotfix branches) (Unix)
- name: Extract version from branch name (for hotfix branches) (Windows)
if: github.event_name == 'pull_request' && startsWith(github.event.pull_request.head.ref, 'hotfix/') && runner.os == 'Windows'
run: |
$BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
$VERSION = $BRANCH_NAME -replace "hotfix/",""
git tag v${VERSION} master
Write-Output "RELEASE_VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
git tag v${RELEASE_VERSION} master
- name: Build wheels
uses: joerick/cibuildwheel@v1.11.1
env:
CIBW_ARCHS: auto64
CIBW_SKIP: cp27-* pp* cp35-*
CIBW_BEFORE_BUILD: python -m pip install pybind11
# ========================================================================

- name: Build source distribution
if: runner.os == 'Linux'
Expand All @@ -101,11 +83,21 @@ jobs:
name: packages
path: ./wheelhouse/*


release:
name: Publish new release
runs-on: ubuntu-latest
needs: packaging
needs:
- packaging
steps:
- name: Extract version from tag name (workflow_dispatch)
if: github.event_name == 'workflow_dispatch'
run: |
TAG_NAME=$(git describe --tags `git rev-list --tags --max-count=1`)
VERSION=${TAG_NAME#v}
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
- name: Extract version from tag name
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
run: |
Expand All @@ -130,8 +122,18 @@ jobs:
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
# ------------------------------------------------------------------------
# Checkout repository to get CHANGELOG

- uses: actions/checkout@v2
if: github.event_name != 'workflow_dispatch'

- uses: actions/checkout@v2
if: github.event_name == 'workflow_dispatch'
with:
ref: 'master'

# ------------------------------------------------------------------------
# Downloads all to directories matching the artifact names
- uses: actions/download-artifact@v2

Expand Down Expand Up @@ -164,7 +166,7 @@ jobs:
upload_to_pypi:
name: Upload to PyPI
runs-on: ubuntu-latest
needs: release # Only upload to PyPi if everything was successful
needs: release
steps:
- uses: actions/setup-python@v2

Expand All @@ -181,7 +183,9 @@ jobs:
master_to_develop_pr:
name: Merge master back into develop
runs-on: ubuntu-latest
needs: release # Only create PR if everything was successful
needs:
- release
- upload_to_pypi
steps:
- name: Merge master into develop branch
uses: thomaseizinger/create-pull-request@1.1.0
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Fix GitHub workflow for publishing a new release


## [0.6.0] - 2021-06-23

### Added
Expand Down

0 comments on commit 10b4077

Please sign in to comment.