Skip to content

feat: 去除登陆,去除功能限制 #55

feat: 去除登陆,去除功能限制

feat: 去除登陆,去除功能限制 #55

Workflow file for this run

name: Build Release
on:
push:
tags:
- '*-bare*'
workflow_dispatch:
# ref https://docs.github.com/zh/actions/learn-github-actions/variables
env:
repo_name_android: "siyuan-android"
repo_name: "siyuan"
repo_owner: "mouyase"
package_json: "app/package.json"
jobs:
create_release:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
release_version: ${{ steps.release_info.outputs.release_version }}
version: ${{ steps.version.outputs.value }}
packageManager: ${{ steps.packageManager.outputs.value }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install PyGithub
- name: Extract version from package.json
uses: sergeysova/jq-action@v2
id: version
with:
cmd: 'jq .version ${{ env.package_json }} -r'
- name: Extract electronVersion from package.json
uses: sergeysova/jq-action@v2
id: electronVersion
with:
cmd: "jq .devDependencies.electron ${{ env.package_json }} -r"
- name: Extract packageManager from package.json
uses: sergeysova/jq-action@v2
id: packageManager
with:
cmd: "jq .packageManager ${{ env.package_json }} -r"
- name: Gather Release Information
id: release_info
run: |
echo "release_version=$(git tag | head -1)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release
id: create_release
uses: ncipollo/release-action@v1
with:
name: ${{ steps.release_info.outputs.release_version }}
tag: ${{ github.ref }}
body: ${{ env.release_body }}
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
# build:
# runs-on: ${{ matrix.config.os }}
# name: ${{ matrix.config.name }}
# needs: create_release
# strategy:
# matrix:
# config:
# - os: ubuntu-20.04
# name: ubuntu build linux.AppImage
# kernel_path: "../app/kernel-linux/SiYuan-Kernel"
# build_args_prefix: "-s -w -X"
# build_args_suffix: "Mode=prod"
# electron_args: "dist-linux"
# goos: "linux"
# goarch: "amd64"
# suffix: "linux.AppImage"
# - os: ubuntu-20.04
# name: ubuntu build linux.tar.gz
# kernel_path: "../app/kernel-linux/SiYuan-Kernel"
# build_args_prefix: "-s -w -X"
# build_args_suffix: "Mode=prod"
# electron_args: "dist-linux"
# goos: "linux"
# goarch: "amd64"
# suffix: "linux.tar.gz"
# - os: macos-latest
# name: macos build mac.dmg
# kernel_path: "../app/kernel-darwin/SiYuan-Kernel"
# build_args_prefix: "-s -w -X"
# build_args_suffix: "Mode=prod"
# electron_args: "dist-darwin"
# goos: "darwin"
# goarch: "amd64"
# suffix: "mac.dmg"
# - os: macos-latest
# name: macos build mac-arm64.dmg
# kernel_path: "../app/kernel-darwin-arm64/SiYuan-Kernel"
# build_args_prefix: "-s -w -X"
# build_args_suffix: "Mode=prod"
# electron_args: "dist-darwin-arm64"
# goos: "darwin"
# goarch: "arm64"
# suffix: "mac-arm64.dmg"
# - os: windows-latest
# name: windows build win.exe
# kernel_path: "../app/kernel/SiYuan-Kernel.exe"
# build_args_prefix: "-s -w -H=windowsgui -X"
# build_args_suffix: "Mode=prod"
# electron_args: "dist"
# goos: "windows"
# gobin: "bin"
# mingwsys: "MINGW64"
# goarch: "amd64"
# suffix: "win.exe"
# steps:
# - uses: actions/checkout@v4
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}
# - name: Set up MingGW
# uses: msys2/setup-msys2@v2
# if: "contains( matrix.config.goos, 'windows')"
# with:
# install: p7zip mingw-w64-x86_64-lua
# - name: Set up Go
# uses: actions/setup-go@v5
# with:
# go-version-file: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel/go.mod
# - run: go version
# - name: Set up goversioninfo
# run: go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo && go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo
# if: "contains( matrix.config.goos, 'windows')"
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel
# env:
# GO111MODULE: on
# CGO_ENABLED: 1
# GOOS: ${{ matrix.config.goos }}
# GOPATH: ${{ github.workspace }}/go
# GOARCH: ${{ matrix.config.goarch }}
# - name: Set up Node
# uses: actions/setup-node@v4
# with:
# node-version: 20
# - name: Install Node pnpm
# run: npm install -g ${{ needs.create_release.outputs.packageManager }}
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app
# - name: Install Node Dependencies
# run: pnpm install --no-frozen-lockfile
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app
# - name: Building UI
# run: pnpm run build
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app
# - name: Remove Build Directory
# uses: JesseTG/[email protected]
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/build
# - name: Remove Kernel Directory for Linux
# uses: JesseTG/[email protected]
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/kernel-linux
# - name: Remove Kernel Directory for Windows
# uses: JesseTG/[email protected]
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/kernel
# - name: Remove Kernel Directory for macOS
# uses: JesseTG/[email protected]
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/kernel-darwin
# - name: Remove Kernel Directory for macOS ARM64
# uses: JesseTG/[email protected]
# with:
# path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/kernel-darwin-arm64
# - name: Generate Icon Resource and Properties/Version Info For Windows
# run: ${{ github.workspace }}\go\${{ matrix.config.gobin }}\goversioninfo -platform-specific=true -icon="resource\icon.ico" -manifest="resource\goversioninfo.exe.manifest"
# if: "contains( matrix.config.goos, 'windows')"
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel
# - name: Building Kernel
# run: go build --tags fts5 -o "${{ matrix.config.kernel_path }}" -v -ldflags "${{ matrix.config.build_args_prefix }} github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel/util.${{ matrix.config.build_args_suffix }}"
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel
# env:
# GO111MODULE: on
# CGO_ENABLED: 1
# GOOS: ${{ matrix.config.goos }}
# GOPATH: ${{ github.workspace }}/go
# GOARCH: ${{ matrix.config.goarch }}
# - name: Building Electron App
# run: pnpm run ${{ matrix.config.electron_args }}
# working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app
# - name: Upload Release
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_name: siyuan-${{ needs.create_release.outputs.release_version }}-${{ matrix.config.suffix }}
# asset_path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app/build/siyuan-${{ needs.create_release.outputs.version }}-${{ matrix.config.suffix }}
# asset_content_type: application/octet-stream
build_android:
name: Build Android
runs-on: ubuntu-20.04
needs: create_release
steps:
- name: Checkout Go Project
uses: actions/checkout@v4
with:
path: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}
- name: Checkout Android Project
uses: actions/checkout@v4
with:
repository: ${{ env.repo_owner }}/${{ env.repo_name_android }}
path: ${{ github.workspace }}/android
- name: MakeDir
run: |
mkdir -p ${{ github.workspace }}/android/app/libs
mkdir -p ${{ github.workspace }}/android/app/src/main/assets
- uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: '17'
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel/go.mod
- run: go version
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Node pnpm
run: npm install -g ${{ needs.create_release.outputs.packageManager }}
- name: Build Resource
run: |
pnpm install && pnpm run build:mobile
zip -r ${{ github.workspace }}/android/app/src/main/assets/app.zip appearance/ guide/ stage/ changelogs/
working-directory: ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/app
- name: Create SignFile
run: |
echo -n "$KEY_STORE_FILE_BASE64" | base64 -d > ${{ github.workspace }}/android/app/siyuan-android.jks
env:
KEY_STORE_FILE_BASE64: ${{ secrets.KEY_STORE_FILE_BASE64 }}
- name: Build Kernel
run: |
go install golang.org/x/mobile/cmd/gomobile@latest
go install golang.org/x/mobile/cmd/gobind@latest
export PATH="${PATH}:${{ github.workspace }}/go/bin"
cd ${{ github.workspace }}/go/src/github.com/${{ env.repo_owner }}/${{ env.repo_name }}/kernel
gomobile init
gomobile bind --tags fts5 -ldflags '-s -w' -v -o ${{ github.workspace }}/android/app/libs/kernel.aar -androidapi 24 ./mobile/
rm ${{ github.workspace }}/android/app/libs/kernel-sources.jar
env:
GO111MODULE: on
CGO_ENABLED: 1
GOPATH: ${{ github.workspace }}/go
- name: Build Android
run: |
cd ${{ github.workspace }}/android
chmod +x ./gradlew
./gradlew assembleOfficialRelease
- uses: r0adkll/sign-android-release@v1
id: sign_app
with:
releaseDirectory: ${{ github.workspace }}/android/app/build/outputs/apk/official/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Upload Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: siyuan-${{ needs.create_release.outputs.release_version }}-android.apk
asset_path: ${{steps.sign_app.outputs.signedReleaseFile}}
asset_content_type: application/octet-stream