-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
12 additions
and
134 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
|
@@ -153,16 +25,22 @@ jobs: | |
uses: actions/checkout@v4 | ||
with: | ||
ref: master | ||
- name: Bump version and push tag | ||
id: tag_version | ||
uses: mathieudutour/[email protected] | ||
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 | ||
|
||
|