Skip to content

Commit

Permalink
Merge branch 'develop' into release/0.4.1
Browse files Browse the repository at this point in the history
# Conflicts:
#	pyproject.toml
  • Loading branch information
James Wood authored and James Wood committed Jan 15, 2025
2 parents 44af2b3 + 23bc786 commit 3b26273
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 141 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/.release-created.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

name: Release Branch Created

# Run whenever a ref is created https://docs.github.com/en/actions/reference/events-that-trigger-workflows#create
on:
create

jobs:
# First job in the workflow builds and verifies the software artifacts
bump:
name: Bump minor version on develop
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Only run if ref created was a release branch
if:
${{ startsWith(github.ref, 'refs/heads/release/') }}
steps:
# Checks-out the develop branch
- uses: actions/checkout@v4
with:
ref: 'refs/heads/develop'

- uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install Poetry
uses: abatilo/actions-poetry@v3
with:
poetry-version: 1.8.5

- name: Bump minor version
run: |
poetry version ${GITHUB_REF#refs/heads/release/}
poetry version preminor
echo "software_version=$(poetry version | awk '{print $2}')" >> $GITHUB_ENV
- name: Commit Version Bump
run: |
git config --global user.name 'podaac-cumulus-postworkflow-normalizer bot'
git config --global user.email '[email protected]'
git commit -am "/version ${{ env.software_version }}"
git push
177 changes: 43 additions & 134 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,150 +34,59 @@ jobs:
- name: Install Poetry
uses: abatilo/actions-poetry@v3
with:
poetry-version: 1.8.1
poetry-version: 1.8.5

#########################################################################
# Versioning (featuring weird gradle output work-arounds)
# Versioning Summary
#########################################################################
# NOTE: This step is platform-specific
# Retrieve version information for use in the other versioning steps
- name: Get version
id: get-version
run: |
echo "the_service=${{ github.event.repository.name }}" >> $GITHUB_ENV
echo "the_env=$(printenv)" >> $GITHUB_ENV
echo "${{ github.event.repository.name }}"
echo "pyproject_name=$(poetry version | awk '{print $1}')" >> $GITHUB_ENV
poetry version > .temp_version.out
cat .temp_version.out
the_version=$(cat .temp_version.out |grep -v Downloading |grep -v '%' |sed -e 's/cumulus-postworkflow-normalizer *//')
rm .temp_version.out
echo "old_version=$the_version" >> $GITHUB_ENV
echo "the_version=$the_version" >> $GITHUB_ENV
echo "Initial Version: $the_version"

# Pre-Alpha Logic - Use the project version number and add the short hash
# to it
- name: Bump pre-alpha version
# If triggered by push to a feature branch
if: |
startsWith(github.ref, 'refs/heads/issue') ||
startsWith(github.ref, 'refs/heads/dependabot/') ||
startsWith(github.ref, 'refs/heads/feature/')
# At pre-alpha, append git-commit to version, set it into gradle
# property, read the version out and set to build_service_version
- name: Version Management
id: versioning
run: |
the_version=$(echo "${{ env.the_version }}" | sed -e "s/-alpha.*//g")
the_version=$(echo "$the_version" | sed -e "s/-rc.*//g")
new_version="${the_version}+$(git rev-parse --short HEAD)"
echo "the_version=${new_version}" >> $GITHUB_ENV
echo "software_version=${new_version}" >> $GITHUB_ENV
echo "new_version=${new_version}" >> $GITHUB_ENV
echo "Github REF: ${{ github.ref }}"
# Alpha Logic - Use the project version number and add -alpha.1 or bump
# alpha number
- name: Bump alpha version
env:
VERSION: ${{ env.the_version }}
# If triggered by push to the develop branch
if: ${{ github.ref == 'refs/heads/develop' }}
run: |
if [[ ${VERSION} == *"-alpha"* ]]; then
alpha_number=$(echo "${VERSION}" | sed -e "s/^.*-alpha.//g")
alpha_number=$(echo "$alpha_number" | sed -e "s/-rc.*//g")
alpha_number=$((alpha_number+1))
the_version=$(echo "$the_version" | sed -e "s/-alpha.*//g")
the_version=$(echo "$the_version" | sed -e "s/-rc.*//g")
the_version="${the_version}-alpha.$alpha_number"
echo "software_version=${the_version}" >> $GITHUB_ENV
echo "the_version=${the_version}" >> $GITHUB_ENV
else
the_version="${{ env.the_version }}-alpha.1"
echo "software_version=${the_version}" >> $GITHUB_ENV
echo "the_version=${the_version}" >> $GITHUB_ENV
current_version=$(poetry version -s)
base_version=$(echo "$current_version" | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+')
# Version calculation based on branch
if [[ "${{ github.ref }}" =~ ^refs/heads/(issue|feature|dependabot)/ ]]; then
new_version="${base_version%%-*}+$(git rev-parse --short HEAD)"
echo "TARGET_ENV_UPPERCASE=SIT" >> $GITHUB_ENV
elif [[ "${{ github.ref }}" == "refs/heads/develop" ]]; then
echo "TARGET_ENV_UPPERCASE=SIT" >> $GITHUB_ENV
new_version=$(poetry version prerelease -s)
elif [[ "${{ github.ref }}" =~ ^refs/heads/release/ ]]; then
echo "TARGET_ENV_UPPERCASE=UAT" >> $GITHUB_ENV
if [[ ${current_version} =~ rc ]]; then
new_version=$(poetry version prerelease -s)
else
new_version="${GITHUB_REF#refs/heads/release/}rc1"
fi
elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
echo "TARGET_ENV_UPPERCASE=OPS" >> $GITHUB_ENV
new_version=${base_version}
fi
echo "new_version=${the_version}" >> $GITHUB_ENV
echo "venue=sit" >> $GITHUB_ENV
echo "TARGET_ENV_UPPERCASE=SIT" >> $GITHUB_ENV
echo "new_version=${new_version}" >> $GITHUB_ENV
# Release Candidate Logic - Remove -alpha* and add -rc.1, or bump the rc
# number
- name: Bump rc version
if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
env:
VERSION: ${{ env.the_version }}
COMMIT_VERSION: ${{ github.ref }}
- name: Override Environment for Deploy Command
if: contains(github.event.head_commit.message, '/deploy')
run: |
commit_version=$COMMIT_VERSION
commit_version=$(echo "${commit_version}" |sed -e "s/^.*\///g")
commit_version=$(echo "${commit_version}" |sed -e "s/-alpha.*//g")
commit_version=$(echo "${commit_version}" |sed -e "s/-rc.*//g")
echo "COMMIT VERSION: $commit_version"
file_version=${VERSION}
file_version=$(echo "${file_version}" |sed -e "s/-alpha.*//g")
file_version=$(echo "${file_version}" |sed -e "s/-rc.*//g")
echo "FILE VERSION: $file_version"
if [[ "$commit_version" != "$file_version" ]]; then
echo "Commit version and file version are different, using commit version"
VERSION=$commit_version
message="${{ github.event.head_commit.message }}"
override_env=$(echo "$message" | grep -oE '/deploy (sit|uat)' | awk '{print $2}')
if [[ -n "$override_env" ]]; then
override_env_upper=$(echo "$override_env" | tr '[:lower:]' '[:upper:]')
echo "TARGET_ENV_UPPERCASE=${override_env_upper}" >> $GITHUB_ENV
echo "TARGET_ENV_LOWERCASE=${override_env}" >> $GITHUB_ENV
echo "Overriding deployment target to: ${override_env_upper}"
fi
if [[ ${VERSION} == *"-rc"* ]]; then
echo "Bumping up the release candidate number from ${VERSION}"
rc_number=$(echo "${VERSION}" | sed -e "s/^.*-rc.//g")
rc_number=$(echo "${rc_number}" | sed -e "s/-alpha.*//g")
rc_number=$((rc_number+1))
the_version=$(echo "$the_version" | sed -e "s/-rc.*//g")
the_version=$(echo "$the_version" | sed -e "s/-alpha.*//g")
VERSION="${the_version}-rc.${rc_number}"
else
echo "Initializing the first release candidate for ${VERSION}"
VERSION=$(echo "${VERSION}" |sed -e "s/-alpha.*//g")
VERSION="${VERSION}-rc.1"
fi
echo "software_version=${VERSION}" >> $GITHUB_ENV
echo "the_version=${VERSION}" >> $GITHUB_ENV
echo "new_version=${VERSION}" >> $GITHUB_ENV
echo "venue=uat" >> $GITHUB_ENV
echo "TARGET_ENV_UPPERCASE=UAT" >> $GITHUB_ENV
# Release Logic
- name: Release version
# If triggered by push to the main branch
if: ${{ startsWith(github.ref, 'refs/heads/main') }}
env:
VERSION: ${{ env.the_version }}
# Remove -rc.* from end of version string
- name: Set Lowercase Environment
run: |
software_version=$(echo "${VERSION}" | sed -e s/-rc.*//g)
software_version=$(echo "${software_version}" | sed -e s/-alpha.*//g)
echo "software_version=$software_version" >> $GITHUB_ENV
echo "new_version=$software_version" >> $GITHUB_ENV
echo "the_version=$software_version" >> $GITHUB_ENV
echo "venue=ops" >> $GITHUB_ENV
echo "TARGET_ENV_UPPERCASE=OPS" >> $GITHUB_ENV
echo "TARGET_ENV_LOWERCASE=$(echo ${{ env.TARGET_ENV_UPPERCASE }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
#########################################################################
# Versioning Summary
#########################################################################
- name: Versioning Summary
run: |
echo "the_service: ${{ env.the_service }}"
echo "old version : ${{ env.old_version }}"
echo "new version : ${{ env.new_version }}"
echo "the_env: ${{ env.the_env }}"
echo "software_version: ${{ env.software_version }}"
echo "GITHUB REF: ${{ github.ref }}"
echo "VENUE: ${{ env.venue }}"
echo "Target Env Uppercase: ${{ env.TARGET_ENV_UPPERCASE }}"
# NOTE: This step is platform-specific
# Update the version number in the application package itself
- name: Update version number in the application package
run: |
poetry version ${{ env.the_version }}
poetry version ${{ env.new_version }}
#########################################################################
# Install & Test & Snyk
Expand Down Expand Up @@ -245,12 +154,12 @@ jobs:
run: |
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git commit -am "/version ${{ env.the_version }}"
git commit -am "/version ${{ env.new_version }}"
git push
- name: Push Tag
env:
VERSION: ${{ env.the_version }}
VERSION: ${{ env.new_version }}
if: |
github.ref == 'refs/heads/develop' ||
github.ref == 'refs/heads/main' ||
Expand All @@ -276,7 +185,7 @@ jobs:
run: |
poetry run pip install -t package dist/*.whl
cd package/; zip -r ../terraform/postworkflow-normalizer.zip . -x '*.pyc'
cd ../; cd terraform; zip -r ../postworkflow-normalizer-${{ env.the_version }}.zip *
cd ../; cd terraform; zip -r ../postworkflow-normalizer-${{ env.new_version }}.zip *
- name: Upload Release Artifacts
if: |
Expand All @@ -288,9 +197,9 @@ jobs:
github.event.head_commit.message == '/deploy sandbox'
uses: ncipollo/[email protected]
with:
tag: ${{ env.the_version }}
tag: ${{ env.new_version }}
artifacts: "*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
body: "Version ${{ env.the_version }}"
body: "Version ${{ env.new_version }}"
makeLatest: "${{ github.ref == 'refs/heads/main' }}"
prerelease: "${{ github.ref != 'refs/heads/main' }}"
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.4.1]

### Added
- Updated versioning in github actions
### Changed
### Deprecated
### Removed
Expand Down
12 changes: 6 additions & 6 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "cumulus-postworkflow-normalizer"
version = "0.4.1-rc.1"
version = "0.4.1rc1"
description = ""
authors = ["podaac-tva <[email protected]>"]
license = "Apache-2.0"
Expand Down

0 comments on commit 3b26273

Please sign in to comment.