Skip to content

修复(CI): env LIB (2) #22

修复(CI): env LIB (2)

修复(CI): env LIB (2) #22

Workflow file for this run

name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- run: cd p && ./gradlew assembleDebug
- uses: actions/upload-artifact@v4
with:
name: app-debug.apk
path: p/app/build/outputs/apk/debug/app-debug.apk
# 组装 apk 安装所需的一堆文件, 方便安装
setup-apk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ui-vue (pmim-ibus)
- uses: robinraju/release-downloader@v1
with:
repository: "fm-elpac/pmim-ibus"
tag: "v0.1.8"
fileName: "ui-vue-dist.tar.zst"
# plugin (pmim-ibus)
- uses: robinraju/release-downloader@v1
with:
repository: "fm-elpac/pmim-ibus"
tag: "v0.1.8"
fileName: "pmim-plugin.tar.zst"
# pmim-server
- uses: robinraju/release-downloader@v1
with:
repository: "fm-elpac/pmim"
tag: "v0.1.5"
fileName: "pmim-server.tar.zst"
# pmim-data
- uses: robinraju/release-downloader@v1
with:
repository: "fm-elpac/pmim-data"
tag: "v0.1.2"
fileName: "pmim_sys.db.zst"
# 构建目录
- run: mkdir build1 && mkdir files
# 解压文件
- run: mv ui-vue-dist.tar.zst build1 && cd build1 && tar -xvf ui-vue-dist.tar.zst
- run: mv pmim-plugin.tar.zst build1 && cd build1 && tar -xvf pmim-plugin.tar.zst
- run: mv pmim-server.tar.zst build1 && cd build1 && tar -xvf pmim-server.tar.zst
- run: mv pmim_sys.db.zst build1 && cd build1 && zstd -d pmim_sys.db.zst
# DEBUG
- run: find build1
# 开始组装
- run: mv build1/server files/
- run: mkdir -p files/server/plugin && cp -r build1/plugin/* files/server/plugin
- run: cp -r build1/ui-vue/dist/* files/server/static/
- run: mv build1/ui-vue/dist files/ui
# DEBUG
- run: find files
# 不带数据库
- uses: actions/upload-artifact@v4
with:
name: setup-pmim-apk
path: files
# 带数据库
- run: mkdir files/pmim
- run: mv build1/pmim_sys.db files/pmim/
# DEBUG
- run: find files
- uses: actions/upload-artifact@v4
with:
name: setup-pmim-apk-db
path: files
# 自动构建 deno 运行环境 (termux-pacman/glibc-packages glibc-runner)
setup-deno:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# deno
- uses: robinraju/release-downloader@v1
with:
repository: "denoland/deno"
tag: "v1.43.3"
fileName: "deno-aarch64-unknown-linux-gnu.zip"
- run: unzip deno-aarch64-unknown-linux-gnu.zip
# termux-pacman/gpkg
- run: curl -O https://service.termux-pacman.dev/gpkg/aarch64/gpkg.json
- run: curl -v https://service.termux-pacman.dev/gpkg/aarch64/$(cat gpkg.json | jq -r '."glibc".FILENAME') -o glibc.tar.xz
- run: curl -v https://service.termux-pacman.dev/gpkg/aarch64/$(cat gpkg.json | jq -r '."gcc-libs-glibc".FILENAME') -o gcc-libs-glibc.tar.xz
- run: tar -xvf glibc.tar.xz
- run: tar -xvf gcc-libs-glibc.tar.xz
# 开始组装
- run: mkdir -p setup-deno/lib
- run: cp deno setup-deno/
- run: |
LIB=data/data/com.termux/files/usr/glibc/lib
cp $LIB/ld-linux-aarch64.so.1 \
$LIB/libc.so.6 \
$LIB/libm.so.6 \
$LIB/libpthread.so.0 \
$LIB/libgcc_s.so.1 \
$LIB/libdl.so.2 \
setup-deno/lib
# patchelf
- run: |
patchelf \
--set-rpath /data/data/io.github.fm_elpac.pmim_apk/files/setup/lib \
--set-interpreter /data/data/io.github.fm_elpac.pmim_apk/files/setup/lib/ld-linux-aarch64.so.1 \
setup-deno/deno
# 组装完毕
- run: mv setup-deno setup
- uses: actions/upload-artifact@v4
with:
name: setup-deno
path: setup