Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
mryel00 committed Oct 26, 2023
2 parents 767c53a + 2700c46 commit afa839c
Show file tree
Hide file tree
Showing 5 changed files with 238 additions and 4 deletions.
91 changes: 91 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Release

on:
workflow_dispatch:
inputs:
version:
type: string
description: New version number in X.Y.Z
required: true

jobs:
update-master-branch:
runs-on: ubuntu-latest
steps:
- uses: everlytic/[email protected]
with:
github_token: ${{ secrets.PAT }}
source_ref: 'develop'
target_branch: 'master'
commit_message_template: '[Automated] Merged {source_ref} into target {target_branch}'

release:
needs: [ 'update-master-branch' ]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Fetch repo
uses: actions/checkout@v3
with:
ref: 'master'
fetch-depth: 0

- name: Get latest tag
id: latest_tag
shell: bash
run: |
echo "TAG_NAME=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_OUTPUT
- name: Generate a changelog
uses: orhun/git-cliff-action@v1
id: generate-changelog
with:
config: ./cliff-release.toml
args: ${{ steps.latest_tag.outputs.TAG_NAME }}..HEAD

- name: Create release and upload build
uses: softprops/action-gh-release@v1
id: create-release
with:
name: v${{ github.event.inputs.version }}
tag_name: v${{ github.event.inputs.version }}
token: ${{ secrets.GITHUB_TOKEN }}
body: ${{ steps.generate-changelog.outputs.content }}

update-changelog:
needs: [ 'release' ]
name: Generate changelog
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: 'master'
token: ${{ secrets.PAT }}
fetch-depth: 0

- name: Get latest tag
id: latest_tag
shell: bash
run: |
echo "TAG_NAME=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_OUTPUT
- name: Generate a changelog
uses: orhun/git-cliff-action@v1
id: git-cliff
with:
config: cliff.toml
args: v0.0.0..${{ steps.latest_tag.outputs.TAG_NAME }}
env:
OUTPUT: ${{ github.workspace }}/CHANGELOG.md

- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'docs(changelog): update changelog'
file_pattern: CHANGELOG.md

- uses: everlytic/[email protected]
with:
github_token: ${{ secrets.PAT }}
source_ref: 'master'
target_branch: 'develop'
commit_message_template: '[Automated] Merged {source_ref} into target {target_branch}'
68 changes: 68 additions & 0 deletions cliff-release.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# configuration file for git-cliff (0.1.0)

[changelog]
# changelog header
header = """
# What's Changed
"""
# template for the changelog body
# https://tera.netlify.app/docs/#introduction
body = """
{% for group, commits in commits | group_by(attribute="group") %}\
### {{ group | split(pat="$") | last | upper_first }}
{% for commit in commits
| filter(attribute="scope")
| sort(attribute="scope") %}
- **{{commit.scope}}**: {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](https://github.com/mainsail-crew/crowsnest/commit/{{ commit.id }})\
{%- if commit.breaking %}
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
{%- endif -%}
{%- endfor -%}
{%- for commit in commits %}
{%- if commit.scope -%}
{% else -%}
{% raw %}\n{% endraw %}\
- {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](https://github.com/mainsail-crew/crowsnest/commit/{{ commit.id }})\
{%- if commit.breaking %}
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
{%- endif -%}
{% endif -%}
{% endfor -%}
{% raw %}\n{% endraw %}
{% endfor %}\n\
"""
# remove the leading and trailing whitespaces from the template
trim = true
# changelog footer
footer = """
"""

[git]
# allow only conventional commits
# https://www.conventionalcommits.org
conventional_commits = true
filter_unconventional = true
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^docs\\(changelog\\):", group = "Changelog", skip = true}, # Old redundant commits
{ message = "^chore\\(changelog\\): update changelog", group = "Changelog", skip = true}, # Old redundant commits
{ message = "^chore: push version number to", group = "9$Other", skip = true}, # Old redundant commits
{ message = "^feat(\\(.*\\))?:", group = "1$Features"},
{ message = "^feature(\\(.*\\))?:", group = "1$Features"},
{ message = "^fix(\\(.*\\))?:", group = "2$Bug Fixes and Improvements"},
{ message = "^docs(\\(.*\\))?:", group = "7$Documentation"},
{ message = "^perf(\\(.*\\))?:", group = "3$Performance"},
{ message = "^refactor(\\(.*\\))?:", group = "4$Refactor"},
{ message = "^style(\\(.*\\))?:", group = "5$Styling"},
{ message = "^test(\\(.*\\))?:", group = "9$Other"},
{ message = "^locale(\\(.*\\))?:", group = "6$Localization"},
{ message = "^chore(\\(.*\\))?:", group = "9$Other"},
{ body = ".*security", group = "Security"},
]
# filter out the commits that are not matched by commit parsers
filter_commits = true
ignore_tags="v*-(beta|rc)*"
# glob pattern for matching git tags
tag_pattern = "v[0-9]*"
75 changes: 75 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# configuration file for git-cliff (0.1.0)

[changelog]
# changelog header
header = """
<!-- THIS FILE IS UPDATED AUTOMATICALLY, ANY CHANGES WILL BE OVERRIDDEN -->
# Changelog
All notable changes to Crowsnest will be documented in this file.\n
"""
# template for the changelog body
# https://tera.netlify.app/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}](https://github.com/mainsail-crew/crowsnest/releases/tag/{{version}}) - {{ timestamp | date(format="%Y-%m-%d") }}
\
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}\
### {{ group | split(pat="$") | last | upper_first }}
{% for commit in commits
| filter(attribute="scope")
| sort(attribute="scope") %}
- **{{commit.scope}}**: {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](https://github.com/mainsail-crew/crowsnest/commit/{{ commit.id }})\
{%- if commit.breaking %}
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
{%- endif -%}
{%- endfor -%}
{%- for commit in commits %}
{%- if commit.scope -%}
{% else -%}
{% raw %}\n{% endraw %}\
- {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](https://github.com/mainsail-crew/crowsnest/commit/{{ commit.id }})\
{%- if commit.breaking %}
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
{%- endif -%}
{% endif -%}
{% endfor -%}
{% raw %}\n{% endraw %}
{% endfor %}\n\
"""
# remove the leading and trailing whitespaces from the template
trim = true
# changelog footer
footer = """
"""

[git]
# allow only conventional commits
# https://www.conventionalcommits.org
conventional_commits = true
filter_unconventional = false
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^docs\\(changelog\\):", group = "Changelog", skip = true}, # Old redundant commits
{ message = "^chore\\(changelog\\): update changelog", group = "Changelog", skip = true}, # Old redundant commits
{ message = "^chore: push version number to", group = "9$Other", skip = true}, # Old redundant commits
{ message = "^feat(\\(.*\\))?:", group = "1$Features"},
{ message = "^feature(\\(.*\\))?:", group = "1$Features"},
{ message = "^fix(\\(.*\\))?:", group = "2$Bug Fixes and Improvements"},
{ message = "^docs(\\(.*\\))?:", group = "7$Documentation"},
{ message = "^perf(\\(.*\\))?:", group = "3$Performance"},
{ message = "^refactor(\\(.*\\))?:", group = "4$Refactor"},
{ message = "^style(\\(.*\\))?:", group = "5$Styling"},
{ message = "^test(\\(.*\\))?:", group = "9$Other"},
{ message = "^locale(\\(.*\\))?:", group = "6$Localization"},
{ message = "^chore(\\(.*\\))?:", group = "9$Other"},
{ body = ".*security", group = "Security"},
{ message = "release v2.1.2", group = "Release"}, # workaround for v2.1.2 release
]
# filter out the commits that are not matched by commit parsers
filter_commits = true
ignore_tags="v*-(beta|rc)*"
# glob pattern for matching git tags
tag_pattern = "v[0-9]*"
4 changes: 2 additions & 2 deletions libs/init_stream.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ function construct_streamer {
if [[ "$(is_raspberry_pi)" = "1" ]] && [[ "$(is_ubuntu_arm)" = "0" ]]; then
MULTI_INSTANCES+=( "${cams}" )
else
log_msg "WARN: Mode 'multi' is not supported on your device!"
log_msg "WARN: Falling back to Mode 'mjpg'"
log_msg "WARN: Mode 'camera-streamer' is not supported on your device!"
log_msg "WARN: Falling back to Mode 'ustreamer'"
MJPG_INSTANCES+=( "${cams}" )
fi
;;
Expand Down
4 changes: 2 additions & 2 deletions libs/messages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ function help_msg {

function deprecated_msg_1 {
log_msg "Parameter 'streamer' is deprecated!"
log_msg "Please use mode: [ mjpg | multi ]"
log_msg "Please use mode: [ ustreamer | camera-streamer ]"
log_msg "ERROR: Please update your crowsnest.conf! Stopped."
}

function unknown_mode_msg {
log_msg "WARN: Unknown Mode configured!"
log_msg "WARN: Using 'mode: mjpg' as fallback!"
log_msg "WARN: Using 'mode: ustreamer' as fallback!"
}

## v4l2_control lib
Expand Down

0 comments on commit afa839c

Please sign in to comment.