docs: Add logo to specification, and update copyright lines #14
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
# Workflow to create a new release when RELEASE-TAG is included in commit. | |
# | |
# Preconditions: | |
# 1) The tag that is determined from the commit message must not already exist | |
# 2) The workflow does not work if pushing an existing tag. | |
# 3) The precondition ensures this workflow is NOT run if a RELEASE-TAG is | |
# not found in the commit message. | |
# | |
# Action steps: | |
# 1) Set package version number in setup.py and add RELEASE-TAG: line to the commit message | |
# 2) Tag locally with the tag name | |
# DO NOT PUSH THE TAG! * | |
# 3) Push commit (possibly via a pull request) | |
# 4) When pushed or merged to master, the release process will create the remote tag and the release | |
# (Note: Since we use and expect fast-forward merges, "merging" here means fast forwarding | |
# and therefore the local tag should be on the same commit as the one created remotely.) | |
name: Create release tag and publish JSON Schema | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
create_release: | |
if: "contains(github.event.head_commit.message, 'RELEASE-TAG')" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12.3 | |
- name: Install dependencies | |
run: | | |
python -V | |
pip install -r requirements.txt | |
- name: Install IFEX module | |
run: pip install -e . | |
- name: Determine variables | |
run: | | |
echo "TAG=$(echo "${{ github.event.head_commit.message }}" | grep -E '^ *RELEASE-TAG' | awk '{print $2}')" >> "$GITHUB_OUTPUT" | |
echo "HASH=$(git rev-parse HEAD | cut -c 1-16)" >> "$GITHUB_OUTPUT" | |
echo "SHORTHASH=$(git rev-parse HEAD | cut -c 1-10)" >> "$GITHUB_OUTPUT" | |
id: vars | |
- name: Run JSON-Schema generator | |
run: | | |
python output_filters/schema/ifex_to_json_schema.py >temp-schema | |
python output_filters/schema/pretty_print_json.py temp-schema >ifex-core-idl-schema.json | |
sed -i 's/TAG-PLACEHOLDER/${{ steps.vars.outputs.TAG }}/' ifex-core-idl-schema.json | |
- name: Create a new release | |
if: "contains(github.event.head_commit.message, 'RELEASE-TAG')" | |
uses: actions/create-release@v1 | |
id: create_release | |
with: | |
draft: false | |
prerelease: false | |
release_name: "JSON schema for ${{ steps.vars.outputs.TAG }}" | |
tag_name: "${{ steps.vars.outputs.TAG }}" | |
body: | | |
The JSON Schema file for the IFEX Core IDL is a resulting artifact, generated from the internal model representation. | |
This one was generated from commit hash ${{ steps.vars.outputs.HASH }} and was assigned the release-name: ${{ steps.vars.outputs.TAG }}. | |
env: | |
GITHUB_TOKEN: "${{ github.token }}" | |
- name: Upload JSON schema file as a release asset | |
if: "contains(github.event.head_commit.message, 'RELEASE-TAG')" | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} # Defined by previous step | |
asset_path: ./ifex-core-idl-schema.json | |
asset_name: ifex-core-idl-schema.json | |
asset_content_type: application/json | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |