Skip to content

Commit

Permalink
Merge pull request #645 from DeepRank/release_3.1.0_gcroci2
Browse files Browse the repository at this point in the history
release: v3.1.0
  • Loading branch information
gcroci2 authored Sep 16, 2024
2 parents 9e59b7e + e8e31f3 commit a465ad4
Show file tree
Hide file tree
Showing 37 changed files with 1,842 additions and 1,361 deletions.
17 changes: 0 additions & 17 deletions .bumpversion.cfg

This file was deleted.

17 changes: 17 additions & 0 deletions .bumpversion.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[tool.bumpversion]
current_version = "3.1.0"

[[tool.bumpversion.files]]
filename = "pyproject.toml"
search = 'version = "{current_version}"'
replace = 'version = "{new_version}"'

[[tool.bumpversion.files]]
filename = "CITATION.cff"
search = 'version: "{current_version}"'
replace = 'version: "{new_version}"'

[[tool.bumpversion.files]]
filename = "deeprank2/__init__.py"
search = '__version__ = "{current_version}"'
replace = '__version__ = "{new_version}"'
70 changes: 70 additions & 0 deletions .github/workflows/_ghcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# SPDX-FileCopyrightText: 2022 Dusan Mijatovic (dv4all)
# SPDX-FileCopyrightText: 2022 dv4all
# SPDX-FileCopyrightText: 2024 Ewan Cahen (Netherlands eScience Center) <[email protected]>
# SPDX-FileCopyrightText: 2024 Netherlands eScience Center
#
# SPDX-License-Identifier: Apache-2.0

name: reusable ghcr.io module

on:
workflow_call:
inputs:
ghcr_user:
required: true
description: User for logging to ghcr.io (use github.actor)
type: string
base_image_name:
required: true
description: Base image name incl. ghcr.io
type: string
image_tag:
required: true
description: Image tag (version)
type: string
dockerfile:
required: true
description: Location and name of docker file
type: string
docker_context:
required: true
description: Docker context for the build command
type: string
secrets:
token:
required: true
outputs:
image_created:
description: Full image name after upload to ghcr.io
value: ${{jobs.build_and_push.outputs.image_build}}
image_uploaded:
description: Confirmation that image is uploaded to ghcr.io
value: ${{jobs.build_and_push.outputs.image_pushed}}

jobs:
build_and_push:
name: build and push image
runs-on: ubuntu-22.04
outputs:
image_build: ${{steps.build_image.outputs.image_build}}
image_pushed: ${{steps.build_image.outputs.image_pushed}}
steps:
- name: checkout
# https://github.com/actions/checkout
uses: actions/checkout@v4
- name: build
id: build_image
run: |
IMAGE_TAG_VERSION=${{inputs.base_image_name}}:${{inputs.image_tag}}
IMAGE_TAG_LASTEST=${{inputs.base_image_name}}:latest
echo image_tag_version $IMAGE_TAG_VERSION
docker build -t $IMAGE_TAG_VERSION -t $IMAGE_TAG_LASTEST -f ${{inputs.dockerfile}} ${{inputs.docker_context}}
echo "{image_build}={$IMAGE_TAG_VERSIONvalue}" >> $GITHUB_OUTPUT
- name: push to ghcr.io
id: push_image
run: |
echo login
echo "${{secrets.token}}" | docker login https://ghcr.io -u ${{inputs.ghcr_user}} --password-stdin
echo push auth image with all tags
docker push ${{inputs.base_image_name}} --all-tags
echo "{image_build}={$IMAGE_TAG_VERSIONvalue}" >> $GITHUB_OUTPUT
4 changes: 2 additions & 2 deletions .github/workflows/build-latest-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: build (latest release)
# Only trigger, when the release workflow succeeded
on:
workflow_run:
workflows: ["Build and upload to PyPI"]
workflows: ["Build and upload to PyPI and ghcr.io"]
types:
- completed

Expand All @@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"] # ["3.10", "3.11"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-repo-frozen-env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"] # ["3.10", "3.11"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-repo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"] # ["3.10", "3.11"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cffconvert.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
validate:
name: "validate"
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Check out a copy of the repository
uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coveralls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:

jobs:
paper:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Paper Draft
steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fair-software.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
verify:
if: github.event.pull_request.draft == false
name: "fair-software"
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: fair-software/[email protected]
name: Measure compliance with fair-software.eu recommendations
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand All @@ -57,6 +57,6 @@ jobs:
python3 --version
- name: Check linting and formatting using ruff
run: |
python3 -m pip install ruff
python3 -m pip install ruff==0.5.1
ruff check || (echo "Please ensure you have the latest version of ruff (`ruff -V`) installed locally." && (exit 1))
ruff format --check || (echo "Please ensure you have the latest version of ruff (`ruff -V`) installed locally." && (exit 1))
2 changes: 1 addition & 1 deletion .github/workflows/markdown-link-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
markdown-link-check:
if: github.event.pull_request.draft == false
name: Check markdown links
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: gaurav-nelson/github-action-markdown-link-check@v1
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/notebooks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
python-version: ["3.10"] # ["3.10", "3.11"]

# https://github.com/marketplace/actions/setup-miniconda#use-a-default-shell
Expand All @@ -54,9 +54,11 @@ jobs:
- name: Download the data for the tutorials
shell: bash -l {0}
run: |
wget https://zenodo.org/records/8349335/files/data_raw.zip
wget https://zenodo.org/records/13709906/files/data_raw.zip
unzip data_raw.zip -d data_raw
mv data_raw tutorials
echo listing files in data_raw:
ls tutorials/data_raw
- name: Run tutorial notebooks
run: pytest --nbmake tutorials
139 changes: 139 additions & 0 deletions .github/workflows/release_github.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Draft GitHub Release

on:
workflow_dispatch:
inputs:
version_level:
description: "Semantic version level increase."
required: true
type: choice
options:
- patch
- minor
- major

permissions:
contents: write
pull-requests: write

jobs:
draft_release:
runs-on: "ubuntu-latest"
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: true

steps:
- name: Display selection
run: |
echo "Branch selected: '${{ github.ref_name }}'"
echo "Release level selected: '${{ github.event.inputs.version_level }}'"
- name: Ensure that permitted release branch was selected
if: ${{ github.ref_name == 'main' || github.ref_name == 'dev' }}
run: |
echo "Branch selected: '${{ github.ref_name }}'"
echo "Releasing from main or dev branch is not permitted, please select a different release branch."
exit 1
- name: Check GitHub Token Validity
run: |
echo "-- Validating GitHub Token"
status_code=$(curl -o /dev/null -s -w "%{http_code}" -H "Authorization: token ${{ secrets.GH_RELEASE }}" https://api.github.com/user)
if [ "$status_code" -ne 200 ]; then
echo "Error: GitHub token is invalid or expired. Please update your token in secrets."
echo "Instructions can be found at: https://github.com/DeepRank/deeprank2/blob/main/README.dev.md#updating-the-token"
exit 1
else
echo "GitHub token is valid."
fi
- name: Checkout repository
uses: actions/checkout@v4
with:
# token with admin priviliges to override brach protection on main and dev
token: ${{ secrets.GH_RELEASE }}
ref: main
fetch-depth: 0

- name: Configure git
run: |
git config user.email "[email protected]"
git config user.name "GitHub Actions"
git pull
- name: Merge changes into main
run: |
git switch main
git merge origin/${{ github.ref_name }} --no-ff --no-commit
git commit --no-edit
- name: Bump version
id: bump
run: |
echo "-- install bump-my-version"
python3 -m pip install bump-my-version
echo "-- bump the version"
bump-my-version bump ${{ github.event.inputs.version_level }} --commit --tag
echo "-- push bumped version"
echo "RELEASE_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
git push --tags -f
git push
- name: Create GitHub Release
id: create_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create ${{ steps.bump.outputs.RELEASE_TAG }} \
--title="Release ${{ steps.bump.outputs.RELEASE_TAG }}" \
--generate-notes \
--draft
tidy_workspace:
# only run if action above succeeds
needs: draft_release
runs-on: "ubuntu-latest"
defaults:
run:
shell: bash -l {0}

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# token with admin priviliges to override brach protection on main and dev
token: ${{ secrets.GH_RELEASE }}
fetch-depth: 0

- name: Configure git
run: |
git config user.email "[email protected]"
git config user.name "GitHub Actions"
git pull
- name: Close PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "-- searching for associated PR"
pr_number=$(gh pr list --head ${{ github.ref_name }} --json number --jq '.[0].number')
if [ -n "$pr_number" ]; then
echo "-- closing PR #$pr_number"
gh pr close $pr_number
else
echo "-- no open pull request found for branch $branch_name"
fi
- name: Merge updates into dev
run: |
git switch dev
git merge origin/main
git push
- name: Delete release branch other than main or dev
run: |
echo "-- deleting branch '${{ github.ref_name }}'"
git push origin -d ${{ github.ref_name }}
Loading

0 comments on commit a465ad4

Please sign in to comment.