Require release notes for each version bump
Some checks failed
Android CI / build (push) Has been cancelled
Some checks failed
Android CI / build (push) Has been cancelled
This commit is contained in:
12
Makefile
12
Makefile
@@ -9,28 +9,32 @@ APK_PATH := $(ANDROID_DIR)/app/build/outputs/apk/debug/app-debug.apk
|
|||||||
PUBLISHED_APK := $(DOWNLOADS_DIR)/app-debug.apk
|
PUBLISHED_APK := $(DOWNLOADS_DIR)/app-debug.apk
|
||||||
VERSION_FILE := $(META_DIR)/version.json
|
VERSION_FILE := $(META_DIR)/version.json
|
||||||
|
|
||||||
.PHONY: help client-version-bump client-build client-tag client-publish publish \
|
.PHONY: help client-version-bump client-build client-tag client-publish publish require-release-notes \
|
||||||
server-start server-stop server-restart server-status server-rebuild
|
server-start server-stop server-restart server-status server-rebuild
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Targets:"
|
@echo "Targets:"
|
||||||
@echo " make client-build - bump version, build debug APK, create git tag"
|
@echo " make client-build - require release notes, bump version, build debug APK, create git tag"
|
||||||
@echo " make client-tag - create git tag for the current Android version"
|
@echo " make client-tag - create git tag for the current Android version"
|
||||||
@echo " make client-publish - copy APK to website and refresh version metadata"
|
@echo " make client-publish - copy APK to website and refresh version metadata"
|
||||||
@echo " make publish - bump version, build APK, publish client, reload nginx"
|
@echo " make publish - require release notes, bump version, build APK, publish client, reload nginx"
|
||||||
|
@echo " vars: RELEASE_NOTES='- item 1\n- item 2' or RELEASE_NOTES_FILE=/path/to/file"
|
||||||
@echo " make server-start - start nginx"
|
@echo " make server-start - start nginx"
|
||||||
@echo " make server-stop - stop nginx"
|
@echo " make server-stop - stop nginx"
|
||||||
@echo " make server-restart - restart nginx"
|
@echo " make server-restart - restart nginx"
|
||||||
@echo " make server-status - show nginx status"
|
@echo " make server-status - show nginx status"
|
||||||
@echo " make server-rebuild - test nginx config and reload nginx"
|
@echo " make server-rebuild - test nginx config and reload nginx"
|
||||||
|
|
||||||
|
require-release-notes:
|
||||||
|
@$(PROJECT_ROOT)/scripts/update_release_notes.sh
|
||||||
|
|
||||||
client-version-bump:
|
client-version-bump:
|
||||||
@$(PROJECT_ROOT)/scripts/bump_version.sh
|
@$(PROJECT_ROOT)/scripts/bump_version.sh
|
||||||
|
|
||||||
client-tag:
|
client-tag:
|
||||||
@$(PROJECT_ROOT)/scripts/create_version_tag.sh
|
@$(PROJECT_ROOT)/scripts/create_version_tag.sh
|
||||||
|
|
||||||
client-build: client-version-bump
|
client-build: require-release-notes client-version-bump
|
||||||
cd $(ANDROID_DIR) && ./gradlew assembleDebug --no-daemon
|
cd $(ANDROID_DIR) && ./gradlew assembleDebug --no-daemon
|
||||||
@$(PROJECT_ROOT)/scripts/create_version_tag.sh
|
@$(PROJECT_ROOT)/scripts/create_version_tag.sh
|
||||||
|
|
||||||
|
|||||||
@@ -95,10 +95,11 @@
|
|||||||
- `docs/` — документация протокола и архитектуры
|
- `docs/` — документация протокола и архитектуры
|
||||||
|
|
||||||
## Автоматизация
|
## Автоматизация
|
||||||
- `make client-build` — увеличить версию, собрать `debug` APK и создать git-тег `vX.Y.Z`.
|
- `make client-build RELEASE_NOTES='- пункт 1\n- пункт 2'` — обновить `release-notes.txt`, увеличить версию, собрать `debug` APK и создать git-тег `vX.Y.Z`.
|
||||||
- `make client-tag` — создать git-тег для текущей версии вручную.
|
- `make client-tag` — создать git-тег для текущей версии вручную.
|
||||||
- `make client-publish` — опубликовать собранный APK на сайт и обновить `version.json`.
|
- `make client-publish` — опубликовать собранный APK на сайт и обновить `version.json`.
|
||||||
- `make publish` — увеличить версию, собрать APK, опубликовать клиент и перезагрузить `nginx`.
|
- `make publish RELEASE_NOTES='- пункт 1\n- пункт 2'` — обновить release notes, увеличить версию, собрать APK, опубликовать клиент и перезагрузить `nginx`.
|
||||||
|
- Вместо `RELEASE_NOTES` можно передать `RELEASE_NOTES_FILE=/path/to/file`.
|
||||||
- `make server-start|server-stop|server-restart|server-status|server-rebuild` — управление `nginx`.
|
- `make server-start|server-stop|server-restart|server-status|server-rebuild` — управление `nginx`.
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
|||||||
23
scripts/update_release_notes.sh
Executable file
23
scripts/update_release_notes.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
TARGET_FILE="$ROOT_DIR/website/assets/meta/release-notes.txt"
|
||||||
|
|
||||||
|
release_notes="${RELEASE_NOTES:-}"
|
||||||
|
release_notes_file="${RELEASE_NOTES_FILE:-}"
|
||||||
|
|
||||||
|
if [[ -n "$release_notes_file" ]]; then
|
||||||
|
if [[ ! -f "$release_notes_file" ]]; then
|
||||||
|
echo "RELEASE_NOTES_FILE does not exist: $release_notes_file" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cp "$release_notes_file" "$TARGET_FILE"
|
||||||
|
elif [[ -n "$release_notes" ]]; then
|
||||||
|
printf '%s\n' "$release_notes" > "$TARGET_FILE"
|
||||||
|
else
|
||||||
|
echo "Release notes are required. Use RELEASE_NOTES='- item 1\n- item 2' or RELEASE_NOTES_FILE=/path/to/file." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Release notes updated"
|
||||||
Reference in New Issue
Block a user