mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
chore: 使用新的CI流程 (#11)
* fix: wine environment * fix: wine environment * fix: environment * perf: remove recommend * fix: env * Update release.yml * fix: permission of wcsc.exe * fix: 一处越界问题 * fix: pnpm install * fix: wine prepare * fix: wine cfg * feat: error console * fix: 兼容clang * perf: 调整位置 * perf: 带入环境 * fix: version * perf: log * fix: version check * fix: version
This commit is contained in:
parent
002f1b4c33
commit
754a09886e
41
.github/workflows/release.yml
vendored
41
.github/workflows/release.yml
vendored
@ -106,33 +106,19 @@ jobs:
|
|||||||
|
|
||||||
- name: Prepare
|
- name: Prepare
|
||||||
run: |
|
run: |
|
||||||
set -x -u -o pipefail
|
set -x
|
||||||
source /etc/os-release
|
|
||||||
|
|
||||||
# Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts
|
|
||||||
# (see issue https://github.com/actions/virtual-environments/issues/4589)
|
|
||||||
# In detail we:
|
|
||||||
# 1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, e.g. everything PHP
|
|
||||||
# 2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version
|
|
||||||
# 3. Assert that no packages from ppa:ondrej/php are left installed
|
|
||||||
dpkg -l | grep '^ii' | grep -F deb.sury.org | awk '{print $2}' | grep '^php' \
|
|
||||||
| xargs -r -t sudo apt-get remove --yes libpcre2-posix3 libzip4
|
|
||||||
dpkg -l | grep '^ii' | grep -F deb.sury.org | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," \
|
|
||||||
| xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V
|
|
||||||
! dpkg -l | grep '^ii' | grep -F deb.sury.org
|
|
||||||
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y wine64
|
sudo apt upgrade -y
|
||||||
sudo apt-add-repository universe
|
|
||||||
sudo dpkg --add-architecture i386
|
sudo dpkg --add-architecture i386
|
||||||
dpkg --print-foreign-architectures
|
sudo mkdir -pm755 /etc/apt/keyrings
|
||||||
|
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||||
|
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install libwine
|
sudo apt install winehq-stable -y
|
||||||
echo "install wine32..."
|
sudo apt-get install wine-binfmt wine32 -y
|
||||||
sudo apt install wine32
|
|
||||||
sudo apt-get install wine-binfmt
|
|
||||||
sudo update-binfmts --import /usr/share/binfmts/wine
|
sudo update-binfmts --import /usr/share/binfmts/wine
|
||||||
|
wine --version
|
||||||
|
|
||||||
corepack enable
|
corepack enable
|
||||||
ls -l
|
ls -l
|
||||||
@ -144,20 +130,21 @@ jobs:
|
|||||||
chmod +x build/*
|
chmod +x build/*
|
||||||
ls -l build
|
ls -l build
|
||||||
node -v
|
node -v
|
||||||
pnpm install
|
pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: |
|
run: |
|
||||||
ls -l test/wine
|
ls -l test/wine
|
||||||
# ./test/wine/wcc.exe
|
# ./test/wine/wcc.exe
|
||||||
|
sudo apt install -y xvfb curl
|
||||||
pnpm run test-prepare
|
pnpm run test-prepare
|
||||||
sudo apt install -y xvfb
|
|
||||||
ls -l build
|
ls -l build
|
||||||
ls -l test/runner/nwjs/wcc/build/Release
|
ls -l test/runner/nwjs/wcc/build/Release
|
||||||
|
# fix: 预先运行,做一下配置,不然第一次执行会有问题
|
||||||
|
./test/wine/wcc.exe || true
|
||||||
|
./test/wine/wcc.exe -v || true
|
||||||
|
# 需要wine64
|
||||||
pnpm run test
|
pnpm run test
|
||||||
# - uses: ./.github/actions/test
|
|
||||||
# with:
|
|
||||||
# who-to-greet: 'Mona the Octocat'
|
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
name: Create release and upload artifacts
|
name: Create release and upload artifacts
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@ node_modules
|
|||||||
*stderr.json
|
*stderr.json
|
||||||
.cache
|
.cache
|
||||||
*/spec/**/*output.js
|
*/spec/**/*output.js
|
||||||
|
tmp
|
1812
pnpm-lock.yaml
generated
1812
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -46,7 +46,7 @@ namespace WXSS
|
|||||||
/* data */
|
/* data */
|
||||||
public:
|
public:
|
||||||
using STATE = int;
|
using STATE = int;
|
||||||
static int TT[26113];
|
static int TT[26114];
|
||||||
static bool bInited;
|
static bool bInited;
|
||||||
std::string offset_0; // 文件内容
|
std::string offset_0; // 文件内容
|
||||||
std::string offset_24; // 文件路径
|
std::string offset_24; // 文件路径
|
||||||
|
@ -1300,7 +1300,7 @@ namespace WXML {
|
|||||||
/* code */
|
/* code */
|
||||||
if (j->second.offset_56 == -3)
|
if (j->second.offset_56 == -3)
|
||||||
{
|
{
|
||||||
if (a14 & 1 == 0)
|
if ((a14 & 1) == 0)
|
||||||
{
|
{
|
||||||
auto err = this->Error(a2, j->second, j->first, j->second.offset_60);
|
auto err = this->Error(a2, j->second, j->first, j->second.offset_60);
|
||||||
throw "RenderException" + err;
|
throw "RenderException" + err;
|
||||||
|
@ -21,7 +21,7 @@ namespace WXSS
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *DIRECTIVES[] = {"@import", "@charset", "@media", "@keyframes", "@-webkit-keyframes", "@supports", "nth-child", "nth-last-child", "nth-of-type", "nth-last-of-type"};
|
const char *DIRECTIVES[] = {"@import", "@charset", "@media", "@keyframes", "@-webkit-keyframes", "@supports", "nth-child", "nth-last-child", "nth-of-type", "nth-last-of-type"};
|
||||||
int Tokenizer::TT[26113] = {0};
|
int Tokenizer::TT[26114] = {0};
|
||||||
bool Tokenizer::bInited = false;
|
bool Tokenizer::bInited = false;
|
||||||
void Tokenizer::InitTransitTable(/* args */)
|
void Tokenizer::InitTransitTable(/* args */)
|
||||||
{
|
{
|
||||||
|
@ -49,6 +49,7 @@ const wcc = (args: string[], projectPath: string): Promise<string> => {
|
|||||||
args,
|
args,
|
||||||
{
|
{
|
||||||
cwd: projectPath,
|
cwd: projectPath,
|
||||||
|
env: process.env,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const spwanData: any[] = [],
|
const spwanData: any[] = [],
|
||||||
@ -69,11 +70,19 @@ const wcc = (args: string[], projectPath: string): Promise<string> => {
|
|||||||
resolve(result);
|
resolve(result);
|
||||||
} else {
|
} else {
|
||||||
process.stderr.write(
|
process.stderr.write(
|
||||||
"wine error:" +
|
"wine error:\n" +
|
||||||
Buffer.concat(errData).toString()
|
Buffer.concat(errData).toString()
|
||||||
);
|
);
|
||||||
|
process.stderr.write(
|
||||||
|
"stdout:\n" +
|
||||||
|
Buffer.concat(spwanData).toString()
|
||||||
|
);
|
||||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
// process.stderr.write(Buffer.concat(spwanData).toString());
|
||||||
reject(n);
|
reject({
|
||||||
|
code: n,
|
||||||
|
stdout: Buffer.concat(spwanData).toString(),
|
||||||
|
stderr: Buffer.concat(errData).toString(),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Xvfb :98 & # Start xvfb on display :98
|
Xvfb :98 & # Start xvfb on display :98
|
||||||
export DISPLAY=:98
|
export DISPLAY=:98
|
||||||
set -x
|
set -ex
|
||||||
root_dir=$(cd `dirname $0`/../../.. && pwd -P)
|
root_dir=$(cd `dirname $0`/../../.. && pwd -P)
|
||||||
cur_dir=$(cd `dirname $0` && pwd -P)
|
cur_dir=$(cd `dirname $0` && pwd -P)
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ docker_start(){
|
|||||||
--env=TZ=Asia/Shanghai\
|
--env=TZ=Asia/Shanghai\
|
||||||
--volume=winehome:/home/wineuser\
|
--volume=winehome:/home/wineuser\
|
||||||
-p 8083:8083\
|
-p 8083:8083\
|
||||||
scottyhardy/docker-wine:stable-9.0-20240804\
|
scottyhardy/docker-wine\
|
||||||
wine /workspace/cache/nwjs-sdk-v$nw_version-win-x64/nw.exe
|
wine /workspace/cache/nwjs-sdk-v$nw_version-win-x64/nw.exe
|
||||||
|
|
||||||
i=0
|
i=0
|
||||||
|
@ -16,7 +16,11 @@ describe("wcc - empty", function () {
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
w = (await windows.wcc(args, projectPath)).replace(/\r\n/g, '\n')
|
w = (await windows.wcc(args, projectPath)).replace(/\r\n/g, '\n')
|
||||||
}catch{}
|
}
|
||||||
|
catch(err: any){
|
||||||
|
console.error('error:', err)
|
||||||
|
w = err.stdout.replace(/\r\n/g, '\n')
|
||||||
|
}
|
||||||
const n = await linux.wcc(args, projectPath);
|
const n = await linux.wcc(args, projectPath);
|
||||||
const storagePath = path.resolve(
|
const storagePath = path.resolve(
|
||||||
__dirname,
|
__dirname,
|
||||||
@ -28,7 +32,7 @@ describe("wcc - empty", function () {
|
|||||||
|
|
||||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||||
assert.equal(w, n);
|
assert.equal(n, w, `wine: ${w}\n\nlinux: ${n}`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
0
test/wine/wcc.exe
Normal file → Executable file
0
test/wine/wcc.exe
Normal file → Executable file
0
test/wine/wcsc.exe
Normal file → Executable file
0
test/wine/wcsc.exe
Normal file → Executable file
2
tools/install-nwjs-dependency.sh
Executable file
2
tools/install-nwjs-dependency.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo apt-get install -y libxdamage1 libxcomposite-dev libxkbcommon-x11-0 libcups2 libnss3-dev libxrandr2 libgbm-dev libpangocairo-1.0-0 libasound2 libatspi2.0-0
|
5
tools/run-test-with-docker.sh
Normal file
5
tools/run-test-with-docker.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
root_dir=$(cd `dirname $0`/.. && pwd -P)
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user