Skip to content

Commit

Permalink
ci: try auto-generating release tag
Browse files Browse the repository at this point in the history
  • Loading branch information
aleaf committed Oct 18, 2024
1 parent 0509d94 commit ba2df21
Showing 1 changed file with 12 additions and 134 deletions.
146 changes: 12 additions & 134 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,142 +3,14 @@ on:
push:
branches:
- master
- v[0-9]+.[0-9]+.[0-9]+*
# branchname trigger if we had the ability to auto-prep release PRs
# (turned off for doi-usgs org)
#- v[0-9]+.[0-9]+.[0-9]+*
release:
types:
- published

jobs:
prep:
name: Prepare release
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref_name != 'master' }}
permissions:
contents: write
defaults:
run:
shell: bash
steps:

- name: Checkout release branch
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get latest release version number
id: get_version
uses: battila7/get-version-action@v2

- name: Setup Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/test_environment.yml
cache-environment: true
cache-downloads: true
create-args: >-
python=${{ matrix.python-version }}
init-shell: >-
bash
- name: Conda info
shell: bash -l {0}
run: micromamba info

- name: Install dependencies
shell: bash -l {0}
run: |
if [[ ! -d "$HOME/.local/bin" ]]; then
mkdir -p "$HOME/.local/bin";
fi
# copy modflow bins to local dir to add to PATH later
if [ "$RUNNER_OS" == "Windows" ]; then
d="win"
elif [ "$RUNNER_OS" == "macOS" ]; then
d="mac"
elif [ "$RUNNER_OS" == "Linux" ]; then
d="linux"
else
d="unexpectedos"
exit 1
fi
echo bin/$d/. >> $GITHUB_PATH
echo $GITHUB_PATH
- name: Test install from git
shell: bash -l {0}
run: |
pip install git+https://github.com/doi-usgs/sfrmaker@develop
cd ..
python -c "import sfrmaker"
cd sfrmaker
- name: Install SFRmaker and ipykernel
shell: bash -l {0}
run: |
pip install -e .
python -m ipykernel install --user --name sfrmaker_ci --display-name "sfrmaker_ci"
- name: Test with latest PyPI flopy
shell: bash -l {0}
if: ${{ matrix.python-version == 3.11}}
run: pip install flopy --force-reinstall

- name: Conda list
shell: bash -l {0}
run: |
micromamba list
pip list
- name: Run tests and upload coverage
shell: bash -l {0}
timeout-minutes: 60
run: |
coverage run -m pytest -v --durations=20 --timeout=120
- name: Upload coverage
shell: bash -l {0}
run: |
coverage report -m
codecov
- name: Push release branch
run: |
git config core.sharedRepository true
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git commit --allow-empty -m "ci(release): Version ${{ steps.get_version.outputs.version }}"
git push origin "${{ github.ref_name }}"
pr:
name: Draft release PR
needs: prep
if: ${{ github.event_name == 'push' && !(contains(github.ref_name, 'rc')) }}
runs-on: ubuntu-latest #ubuntu-22.04
permissions:
contents: write
pull-requests: write
defaults:
run:
shell: bash -l {0}
steps:

- name: Checkout release branch
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}

- name: Draft pull request
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
ref="${{ github.ref_name }}"
ver="${ref#"v"}"
title="Release $ver"
body='
# SFRmaker '$ver'
The release can be approved by merging this pull request into `master`. This will trigger a final job to publish the release to PyPI.
'
gh pr create -B "master" -H "$ref" --title "$title" --draft --body "$body"

release:
name: Create Release
Expand All @@ -153,16 +25,22 @@ jobs:
uses: actions/checkout@v4
with:
ref: master
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/github-tag-action@v6.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
tag_name: ${{ steps.tag_version.outputs.new_tag }}
release_name: Release ${{ steps.tag_version.outputs.new_tag }}
body: |
Changes in this Release:
Changes in this Release:
${{ steps.tag_version.outputs.changelog }}
draft: false
prerelease: false

Expand Down

0 comments on commit ba2df21

Please sign in to comment.