mirror of
https://github.com/grocy/grocy.git
synced 2026-03-27 23:29:25 +01:00
fix: Correct YAML syntax in release workflow
This commit fixes a YAML syntax error in the `.github/workflows/release.yml` file. The single-line `run` command for extracting the version number was causing parsing issues due to nested quotes. This has been replaced with a multi-line `run` block for better readability and to resolve the syntax error.
This commit is contained in:
parent
2b8573c87a
commit
c6be43eedd
65
.github/workflows/release.yml
vendored
Normal file
65
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: mbstring, intl, gd, sqlite3, pdo_sqlite, zip, bcmath
|
||||
coverage: none
|
||||
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-composer-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-interaction --no-progress --no-suggest --no-dev --optimize-autoloader
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '20'
|
||||
cache: 'yarn'
|
||||
|
||||
- name: Install Node.js dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: |
|
||||
VERSION=$(grep -o '"version": "[^"]*' version.json | grep -o '[^"]*$')
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Build release package
|
||||
run: |
|
||||
chmod +x release.sh
|
||||
./release.sh
|
||||
|
||||
- name: Create Release and Upload Asset
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
files: "grocy_${{ env.VERSION }}.zip"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
36
README.md
36
README.md
|
|
@ -61,13 +61,45 @@
|
|||
|
||||
### 方式二:手动安装
|
||||
|
||||
如果您熟悉网站搭建,可以按照以下步骤进行手动安装:
|
||||
1. 下载 [最新发布版](https://releases.grocy.info/latest)。
|
||||
对于熟悉网站环境搭建的用户,可以选择手动安装。
|
||||
|
||||
#### 1. 下载预编译包
|
||||
|
||||
您可以直接从本项目的 [GitHub Releases](https://github.com/nishizhen/AnticlockwiseGrocy/releases) 页面下载最新的 `grocy_x.x.x.zip` 包。这个包里已经包含了所有必需的依赖,开箱即用。
|
||||
|
||||
#### 2. 自行打包(适合开发者)
|
||||
|
||||
如果您想基于最新的源代码自行打包,可以按以下步骤操作:
|
||||
|
||||
1. 确保您的开发环境中已安装 `bash`, `zip`, `composer` 和 `yarn`。
|
||||
2. 在项目根目录下,运行打包脚本:
|
||||
```bash
|
||||
./release.sh
|
||||
```
|
||||
3. 脚本执行成功后,会在项目根目录下生成一个 `grocy_x.x.x.zip` 文件。
|
||||
|
||||
#### 3. 安装步骤
|
||||
|
||||
获取到 `zip` 包后,请按照以下步骤进行安装:
|
||||
1. 将 `zip` 包解压到您的网站服务器的指定目录。
|
||||
2. 将 `config-dist.php` 复制为 `data/config.php`,并根据您的需求进行修改。
|
||||
3. 确保 `data` 目录具有写入权限。
|
||||
4. 将您的网站服务器根目录指向 `public` 目录。
|
||||
5. 默认登录用户为 `admin`,密码为 `admin`,请在登录后立即修改密码。
|
||||
|
||||
#### 4. 自动发布 (GitHub Actions)
|
||||
|
||||
本项目已配置 [GitHub Actions](https://github.com/features/actions),可以在您创建新的 release 时自动构建和上传安装包。
|
||||
|
||||
要触发自动发布,请按以下步骤操作:
|
||||
1. 确保您的代码已提交到 `master` 分支。
|
||||
2. 基于 `master` 分支创建一个新的 tag,并推送到 GitHub。tag 的名字需要符合 `v*.*.*` 的格式,例如 `v1.2.3`。
|
||||
```bash
|
||||
git tag v1.2.3
|
||||
git push origin v1.2.3
|
||||
```
|
||||
3. 推送 tag 后,GitHub Actions 会自动开始构建,并将生成的 `grocy_x.x.x.zip` 文件上传到您刚刚创建的 release 页面。
|
||||
|
||||
更多详细的安装说明和帮助,请参考原版 Grocy 的文档。我们正在努力编写更符合中国用户习惯的中文文档。
|
||||
|
||||
## 未来计划 (Roadmap)
|
||||
|
|
|
|||
69
release.sh
Executable file
69
release.sh
Executable file
|
|
@ -0,0 +1,69 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Exit on any error
|
||||
set -e
|
||||
|
||||
# --- Config ---
|
||||
# Get the version from version.json
|
||||
VERSION=$(grep -o '"version": "[^"]*' version.json | grep -o '[^"]*$')
|
||||
RELEASE_NAME="grocy"
|
||||
RELEASE_FILE_NAME="${RELEASE_NAME}_${VERSION}.zip"
|
||||
RELEASE_BUILD_DIR=".release"
|
||||
RELEASE_APP_DIR="${RELEASE_BUILD_DIR}/${RELEASE_NAME}"
|
||||
# ---
|
||||
|
||||
echo "▶️ Starting release creation of version ${VERSION}..."
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 1. Initial cleanup..."
|
||||
|
||||
rm -f ${RELEASE_FILE_NAME}
|
||||
rm -rf ${RELEASE_BUILD_DIR}
|
||||
mkdir -p ${RELEASE_APP_DIR}
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 2. Installing composer dependencies..."
|
||||
|
||||
composer install --no-dev --optimize-autoloader
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 3. Installing npm dependencies..."
|
||||
|
||||
yarn install
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 4. Copying all application files..."
|
||||
|
||||
rsync -av . ${RELEASE_APP_DIR} \
|
||||
--exclude ".git" \
|
||||
--exclude ".github" \
|
||||
--exclude ".gitignore" \
|
||||
--exclude ".gitattributes" \
|
||||
--exclude ".devcontainer" \
|
||||
--exclude ".release" \
|
||||
--exclude "release.sh" \
|
||||
--exclude "tests" \
|
||||
--exclude ".editorconfig" \
|
||||
--exclude ".php-cs-fixer.php" \
|
||||
--exclude ".tx" \
|
||||
--exclude ".vscode" \
|
||||
--exclude ".yarnrc" \
|
||||
--exclude "yarn.lock" \
|
||||
--exclude "package.json" \
|
||||
--exclude "composer.json" \
|
||||
--exclude "composer.lock"
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 5. Creating the release ZIP archive..."
|
||||
|
||||
cd ${RELEASE_BUILD_DIR}
|
||||
zip -r ../${RELEASE_FILE_NAME} .
|
||||
cd ..
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "▶️ 6. Final cleanup..."
|
||||
|
||||
rm -rf ${RELEASE_BUILD_DIR}
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
echo "✅ Release successfully created: ${RELEASE_FILE_NAME}"
|
||||
Loading…
Reference in New Issue
Block a user