Skip to content

Commit

Permalink
MRG: Merge pull request #2 from aerosense-ai/enhancement/simplify-fin…
Browse files Browse the repository at this point in the history
…alisation

Simplify analysis finalisation
  • Loading branch information
cortadocodes authored Sep 15, 2022
2 parents b62e538 + 90bbad0 commit d45ac06
Show file tree
Hide file tree
Showing 8 changed files with 140 additions and 11 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/python-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: python-ci

on:
push:
branches-ignore:
- main

jobs:
check-semantic-version:
if: "!contains(github.event.head_commit.message, 'skipci')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# Set fetch-depth to 0 to fetch all tags (necessary for git-mkver to determine the correct semantic version).
fetch-depth: 0
- uses: actions/setup-python@v2
- name: Install git-mkver
run: |
curl -L https://github.com/idc101/git-mkver/releases/download/v1.2.1/git-mkver-linux-amd64-1.2.1.tar.gz \
| tar xvz \
&& sudo mv git-mkver /usr/local/bin
- name: Install semantic version checker
run: pip install git+https://github.com/octue/conventional-commits
- name: Check version
run: check-semantic-version setup.py
30 changes: 30 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# This workflow releases a new version of the package.

name: Release

# Only trigger when a pull request into main branch is merged.
on:
pull_request:
types: [closed]
branches:
- main

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Get package version
run: echo "PACKAGE_VERSION=$(python setup.py --version)" >> $GITHUB_ENV

- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, no need to create your own.
with:
tag_name: ${{ env.PACKAGE_VERSION }}
release_name: ${{ github.event.pull_request.title }}
body: ${{ github.event.pull_request.body }}
draft: false
prerelease: false
35 changes: 35 additions & 0 deletions .github/workflows/update-pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# This workflow updates the pull request description with an auto-generated section containing the categorised commit
# message headers of the commits since the last pull request merged into main. The auto generated section is enveloped
# between two comments: "<!--- START AUTOGENERATED NOTES --->" and "<!--- END AUTOGENERATED NOTES --->". Anything
# outside these in the description is left untouched. Auto-generated updates can be skipped for a commit if
# "<!--- SKIP AUTOGENERATED NOTES --->" is added to the pull request description.

name: update-pull-request

# Only trigger for pull requests into main branch.
on:
pull_request:
branches:
- main

jobs:
description:
if: "!contains(github.event.pull_request.body, '<!--- SKIP AUTOGENERATED NOTES --->')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# Set fetch-depth to 0 to fetch all commit history (necessary for compiling pull request description).
fetch-depth: 0
- name: Install release note compiler
run: pip install git+https://github.com/octue/conventional-commits
- name: Compile new pull request description
run: |
echo 'PULL_REQUEST_NOTES<<EOF' >> $GITHUB_ENV
echo "$(compile-release-notes PULL_REQUEST_START --pull-request-url=${{ github.event.pull_request.url }} --api-token=${{ secrets.GITHUB_TOKEN }})" >> $GITHUB_ENV
echo EOF >> $GITHUB_ENV
- name: Update pull request body
uses: riskledger/update-pr-description@v2
with:
body: ${{ env.PULL_REQUEST_NOTES }}
token: ${{ secrets.GITHUB_TOKEN }}
12 changes: 5 additions & 7 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
import os
import tempfile

import coolname
from octue.cloud import storage
from octue.resources import Datafile, Dataset
from octue.utils.processes import run_subprocess_and_log_stdout_and_stderr
from octue.utils.threads import run_logged_subprocess


logger = logging.getLogger(__name__)
Expand All @@ -30,7 +28,7 @@ def run(analysis):
input_file = input_dataset.files.one()

logger.info("Starting turbsim analysis.")
run_subprocess_and_log_stdout_and_stderr(command=["turbsim", input_file.local_path], logger=logger)
run_logged_subprocess(command=["turbsim", input_file.local_path], logger=logger)

old_output_filename = os.path.splitext(input_file.local_path)[0] + OUTPUT_EXTENSION

Expand All @@ -45,8 +43,8 @@ def run(analysis):

analysis.output_manifest.datasets["turbsim"] = Dataset(name="turbsim", path=new_temporary_directory)

analysis.finalise(
upload_output_datasets_to=storage.path.join(analysis.output_location, coolname.generate_slug())
)
# Explicitly call `finalise` here instead of relying on implicit finalisation so the temporary directory
# still exists when it's called.
analysis.finalise()

logger.info("Finished turbsim analysis.")
41 changes: 41 additions & 0 deletions mkver.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
tagPrefix: ""
defaults {
tag: false
tagMessageFormat: "Release/{Tag}"
preReleaseFormat: "RC{PreReleaseNumber}"
buildMetaDataFormat: "{Branch}.{ShortHash}"
includeBuildMetaData: false
whenNoValidCommitMessages: IncrementPatch
patches: [setup.py]
}

patches: [
{
name: setup.py
filePatterns: ["setup.py"]
replacements: [
{
find: "version=\"{VersionRegex}\""
replace: "version=\"{Version}\""
}
]
}
]

commitMessageActions: [
# Disable major version increments while package is still in beta (i.e. keep the version below 1.0.0).
{
pattern: "BREAKING CHANGE"
action: IncrementMinor
}
{
pattern: "BREAKING-CHANGE"
action: IncrementMinor
}

# All new features require a minor version increase.
{
pattern: "FEA:"
action: IncrementMinor
}
]
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

setup(
name="turbsim-service",
version="0.1.0",
version="0.1.1",
author="cortadocodes <[email protected]>",
py_modules=["app"],
install_requires=[
"coolname>=1.1,<2",
"octue==0.26.0",
"octue==0.35.1",
],
)
2 changes: 1 addition & 1 deletion tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def test_app(self):
input_manifest = Manifest(datasets={"turbsim": "gs://openfast-data/testing/turbsim"})

# Mock running an OpenFAST analysis by creating an empty output file.
with patch("app.run_subprocess_and_log_stdout_and_stderr", self._create_mock_output_file):
with patch("app.run_logged_subprocess", self._create_mock_output_file):
analysis = runner.run(input_manifest=input_manifest.serialise())

self.assertIsNone(analysis.output_values)
Expand Down
1 change: 0 additions & 1 deletion tests/test_deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ def test_cloud_run_deployment(self):
input_manifest = Manifest(datasets={"turbsim": "gs://openfast-data/testing/turbsim"})

child = Child(
name="turbsim-service",
id="aerosense/turbsim-service",
backend={"name": "GCPPubSubBackend", "project_name": os.environ["TEST_PROJECT_NAME"]},
)
Expand Down

0 comments on commit d45ac06

Please sign in to comment.