forked from mainsail-crew/crowsnest
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'upstream/master' into pynest
- Loading branch information
Showing
27 changed files
with
1,001 additions
and
72 deletions.
There are no files selected for viewing
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
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
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@v4 | ||
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@v2 | ||
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@v4 | ||
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@v2 | ||
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}' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ on: | |
pull_request: | ||
branches: | ||
- 'master' | ||
- 'develop' | ||
paths: | ||
- '**.sh' | ||
- 'webcamd' | ||
|
Large diffs are not rendered by default.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
#### crowsnest - A webcam Service for multiple Cams and Stream Services. | ||
#### | ||
#### Written by Stephan Wendel aka KwadFan <[email protected]> | ||
#### Copyright 2021 - till today | ||
#### Copyright 2021 - 2023 | ||
#### Co-authored by Patrick Gehrsitz aka mryel00 <[email protected]> | ||
#### Copyright 2023 - till today | ||
#### https://github.com/mainsail-crew/crowsnest | ||
#### | ||
#### This File is distributed under GPLv3 | ||
|
@@ -39,8 +41,13 @@ help: ## Shows this help | |
|
||
update: ## Update crowsnest (fetches and pulls repository changes) | ||
@git fetch && git pull | ||
@bash -c 'bin/build.sh --reclone' | ||
${MAKE} build | ||
|
||
report: ## Generate report.txt | ||
@if [ -f ~/report.txt ]; then rm -f ~/report.txt; fi | ||
@bash -c 'tools/dev-helper.sh -a >> ~/report.txt' | ||
@sed -ri 's/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g' ~/report.txt | ||
|
||
fixworkingdirectory: ## Fix service file WorkingDirectory path | ||
@sudo sed -i "s~\(WorkingDirectory=\).*~\1$$PWD~" /etc/systemd/system/crowsnest.service |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,7 +3,9 @@ | |
#### crowsnest - A webcam Service for multiple Cams and Stream Services. | ||
#### | ||
#### Written by Stephan Wendel aka KwadFan <[email protected]> | ||
#### Copyright 2021 - till today | ||
#### Copyright 2021 - 2024 | ||
#### Co-authored by Patrick Gehrsitz aka mryel00 <[email protected]> | ||
#### Copyright 2024 - till today | ||
#### https://github.com/mainsail-crew/crowsnest | ||
#### | ||
#### This File is distributed under GPLv3 | ||
|
@@ -39,7 +41,7 @@ fi | |
# Camera-streamer repo | ||
CSTREAMER_PATH="camera-streamer" | ||
if [[ -z "${CROWSNEST_CAMERA_STREAMER_REPO_SHIP}" ]]; then | ||
CROWSNEST_CAMERA_STREAMER_REPO_SHIP="https://github.com/ayufan-research/camera-streamer.git" | ||
CROWSNEST_CAMERA_STREAMER_REPO_SHIP="https://github.com/ayufan/camera-streamer.git" | ||
fi | ||
if [[ -z "${CROWSNEST_CAMERA_STREAMER_REPO_BRANCH}" ]]; then | ||
CROWSNEST_CAMERA_STREAMER_REPO_BRANCH="master" | ||
|
@@ -73,6 +75,30 @@ is_raspberry_pi() { | |
fi | ||
} | ||
|
||
is_bookworm() { | ||
if [[ -f /etc/os-release ]]; then | ||
grep -cq "bookworm" /etc/os-release &> /dev/null && echo "1" || echo "0" | ||
fi | ||
} | ||
|
||
is_pi5() { | ||
if [[ -f /proc/device-tree/model ]] && | ||
grep -q "Raspberry Pi 5" /proc/device-tree/model; then | ||
echo "1" | ||
else | ||
echo "0" | ||
fi | ||
} | ||
|
||
is_ubuntu_arm() { | ||
if [[ "$(is_raspberry_pi)" = "1" ]] && | ||
grep -q "ubuntu" /etc/os-release; then | ||
echo "1" | ||
else | ||
echo "0" | ||
fi | ||
} | ||
|
||
### Get avail mem | ||
get_avail_mem() { | ||
grep "MemTotal" /proc/meminfo | awk '{print $2}' | ||
|
@@ -83,10 +109,10 @@ get_avail_mem() { | |
delete_apps() { | ||
for path in "${ALL_PATHS[@]}"; do | ||
if [[ ! -d "${path}" ]]; then | ||
printf "'%s' does not exist! Delete skipped ...\n" "${path}" | ||
printf "'%s' does not exist! Delete ... [SKIPPED]\n" "${path}" | ||
fi | ||
if [[ -d "${path}" ]]; then | ||
printf "Deleting '%s' ... \n" "${path}" | ||
printf "Deleting '%s' ... [DONE]\n" "${path}" | ||
rm -rf "${path}" | ||
fi | ||
done | ||
|
@@ -108,18 +134,26 @@ clone_ustreamer() { | |
clone_cstreamer() { | ||
## Special handling because only supported on Raspberry Pi | ||
[[ -n "${CROWSNEST_UNATTENDED}" ]] || CROWSNEST_UNATTENDED="0" | ||
if [[ "$(is_raspberry_pi)" = "0" ]] && [[ "${CROWSNEST_UNATTENDED}" = "0" ]]; then | ||
printf "WARN: Cloning camera-streamer skipped! Device is not supported!" | ||
if { [[ "$(is_raspberry_pi)" = "0" ]] || | ||
[[ "$(is_pi5)" = "1" ]] || | ||
[[ "$(is_ubuntu_arm)" = "1" ]]; } && | ||
[[ "${CROWSNEST_UNATTENDED}" = "0" ]]; then | ||
printf "Device is not supported! Cloning camera-streamer ... [SKIPPED]\n" | ||
return | ||
fi | ||
if [[ -d "${BASE_CN_BIN_PATH}"/"${CSTREAMER_PATH}" ]]; then | ||
printf "%s already exist ... [SKIPPED]\n" "${CSTREAMER_PATH}" | ||
return | ||
fi | ||
if [[ "$(is_bookworm)" = "1" ]]; then | ||
printf "\nBookworm detected!\n" | ||
printf "Using main branch of camera-streamer for Bookworm ...\n\n" | ||
CROWSNEST_CAMERA_STREAMER_REPO_BRANCH="main" | ||
fi | ||
git clone "${CROWSNEST_CAMERA_STREAMER_REPO_SHIP}" \ | ||
-b "${CROWSNEST_CAMERA_STREAMER_REPO_BRANCH}" \ | ||
"${BASE_CN_BIN_PATH}"/"${CSTREAMER_PATH}" \ | ||
"${CLONE_FLAGS[@]}" --recursive | ||
"${CLONE_FLAGS[@]}" --recurse-submodules --shallow-submodules | ||
} | ||
|
||
### Clone Apps | ||
|
@@ -134,10 +168,14 @@ clone_apps() { | |
### Run 'make clean' in cloned folders | ||
clean_apps() { | ||
for app in "${ALL_PATHS[@]}"; do | ||
printf "\nRunning 'make clean' in %s ... \n" "${app}" | ||
pushd "${app}" &> /dev/null || exit 1 | ||
make clean | ||
popd &> /dev/null || exit 1 | ||
if [[ ! -d "${app}" ]]; then | ||
printf "'%s' does not exist! Clean ... [SKIPPED]\n" "${app}" | ||
else | ||
printf "\nRunning 'make clean' in %s ... \n" "${app}" | ||
pushd "${app}" &> /dev/null || exit 1 | ||
make clean | ||
popd &> /dev/null || exit 1 | ||
fi | ||
done | ||
printf "\nRunning 'make clean' ... [DONE]\n" | ||
} | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# 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 | striptags | trim | 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="") }}](<REPO>/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="") }}](<REPO>/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 = """ | ||
""" | ||
|
||
# postprocessors | ||
postprocessors = [ | ||
{ pattern = '(\(<REPO>/pull/[0-9]+\)\)) \| .+', replace = "${1}" }, | ||
{ pattern = '<REPO>', replace = "https://github.com/mainsail-crew/crowsnest" }, # replace repository URL | ||
] | ||
|
||
[git] | ||
# allow only conventional commits | ||
# https://www.conventionalcommits.org | ||
conventional_commits = true | ||
filter_unconventional = true | ||
# regex for parsing and grouping commits | ||
commit_parsers = [ | ||
# Commits to skip | ||
{ message = "^docs\\(changelog\\):", group = "Changelog", skip = true}, # Old redundant commits | ||
{ message = "^chore: push version number to", group = "9$Other", skip = true}, # Old redundant commits | ||
{ message = "^chore\\(changelog\\): update changelog", group = "Changelog", skip = true}, # Old redundant commits | ||
|
||
# Commits to parse | ||
{ message = "^feat(\\(.*\\))?:", group = "<!-- 1 -->Features"}, | ||
{ message = "^feature(\\(.*\\))?:", group = "<!-- 1 -->Features"}, | ||
{ message = "^fix(\\(.*\\))?:", group = "<!-- 2 -->Bug Fixes and Improvements"}, | ||
{ message = "^perf(\\(.*\\))?:", group = "<!-- 3 -->Performance"}, | ||
{ message = "^refactor(\\(.*\\))?:", group = "<!-- 4 -->Refactor"}, | ||
{ message = "^style(\\(.*\\))?:", group = "<!-- 5 -->Styling"}, | ||
{ message = "^locale(\\(.*\\))?:", group = "<!-- 6 -->Localization"}, | ||
{ message = "^docs(\\(.*\\))?:", group = "<!-- 7 -->Documentation"}, | ||
{ message = "^test(\\(.*\\))?:", group = "<!-- 8 -->Other"}, | ||
{ message = "^chore(\\(.*\\))?:", group = "<!-- 8 -->Other"}, | ||
{ body = ".*security", group = "Security"}, | ||
] | ||
commit_preprocessors = [ | ||
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/pull/${2}))" }, | ||
] | ||
# 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]*" |
Oops, something went wrong.