Skip to content

Commit

Permalink
Merge pull request #5 from MercuryWorkshop/copy-master
Browse files Browse the repository at this point in the history
Merge with latest changes
  • Loading branch information
Percslol authored Dec 23, 2023
2 parents a1b71d7 + 0373533 commit f5965a3
Show file tree
Hide file tree
Showing 111 changed files with 4,616 additions and 3,155 deletions.
144 changes: 144 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: CI

on:
push:
pull_request:

jobs:
jshint:
name: JSHint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Run JSHint
run: sudo npm install -g jshint; make jshint

test:
runs-on: ubuntu-latest
name: Build and test
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup toolchain
run: |
rustup toolchain install stable --profile minimal
rustup target add wasm32-unknown-unknown
rustup component add rustfmt
- name: Install APT packages
run: |
sudo apt-get update -y
sudo apt-get install nasm gdb qemu-system-x86 libc6-dev-i386 -y
- name: Build all-debug
run: make all-debug

- name: Build all
run: make all

- name: Build fallback
run: make build/v86-fallback.wasm

- name: Fetch kvm-unit-test cache
uses: actions/cache@v3
id: cache-kvm-unit-test
with:
path: tests/kvm-unit-tests/
key: ${{ runner.os }}-kvm-unit-test

- name: Build kvm-unit-test
if: steps.cache-kvm-unit-test.outputs.cache-hit != 'true'
run: (cd tests/kvm-unit-tests && ./configure && make x86/realmode.flat)

- name: Run kvm-unit-test
run: tests/kvm-unit-tests/run.js tests/kvm-unit-tests/x86/realmode.flat

- name: Fetch namsmtests cache
uses: actions/cache@v3
id: cache-nasmtests
with:
path: tests/nasm/build/
key: ${{ runner.os }}-nasmtests

- name: Run nasmtests
run: MAX_PARALLEL_TESTS=1 make nasmtests

- name: Run nasmtests-force-jit
run: MAX_PARALLEL_TESTS=1 make nasmtests-force-jit

- name: Run rust-test
run: make rust-test

- name: Fetch image cache
uses: actions/cache@v3
id: cache-images
with:
path: images/
key: ${{ runner.os }}-images-v2

- name: Download uncached images
if: steps.cache-images.outputs.cache-hit != 'true'
run: wget -nv -P images/ https://k.copy.sh/{linux.iso,linux3.iso,linux4.iso,buildroot-bzimage.bin,TinyCore-11.0.iso,oberon.img,msdos.img,openbsd-floppy.img,kolibri.img,windows101.img,os8.img,freedos722.img,mobius-fd-release5.img}

- name: Run api-tests
run: make api-tests

- name: Run qemutests
run: make qemutests

- name: Run qemutests-release
run: make qemutests-release

- name: Run jitpagingtests
run: make jitpagingtests

- name: Run integration tests
run: MAX_PARALLEL_TESTS=1 make tests

- name: Run expect tests
run: make expect-tests

- name: Upload the artifact
uses: actions/upload-artifact@v3
with:
name: v86
path: |
build/libv86*.js
build/libv86*.js.map
build/v86*.wasm
upload:
name: Upload release
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/master'

steps:
- name: Delete old release and tag
uses: dev-drprasad/[email protected]
with:
delete_release: true
tag_name: latest
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Get artifacts
uses: actions/download-artifact@v3
with:
name: v86
path: build

- name: Display structure of downloaded files
run: ls -R

- name: Release to GitHub
uses: ncipollo/release-action@v1
with:
name: Latest Release
tag: latest
commit: master
body: ${{ github.event.head_commit.message }}
artifacts: "build/libv86*.js,build/libv86*.js.map,build/v86*.wasm"
prerelease: true
82 changes: 0 additions & 82 deletions .github/workflows/main.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/release.yml

This file was deleted.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ opt-level = 2
overflow-checks = false

[profile.dev]
lto = false
lto = true
opt-level = 2
panic = "abort"
overflow-checks = false
Expand Down
23 changes: 13 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,10 @@ CLOSURE_FLAGS=\
--jscomp_error unknownDefines\
--jscomp_error visibility\
--use_types_for_optimization\
--assume_function_wrapper\
--summary_detail_level 3\
--language_in ECMASCRIPT_2017\
--language_out ECMASCRIPT_2017
--language_in ECMASCRIPT_2020\
--language_out ECMASCRIPT_2020

CARGO_FLAGS_SAFE=\
--target wasm32-unknown-unknown \
Expand All @@ -75,10 +76,10 @@ CARGO_FLAGS_SAFE=\
-C link-args="build/zstddeclib.o" \
--verbose

CARGO_FLAGS=$(CARGO_FLAGS_SAFE) -C target-feature=+bulk-memory
CARGO_FLAGS=$(CARGO_FLAGS_SAFE) -C target-feature=+bulk-memory -C target-feature=+multivalue -C target-feature=+simd128

CORE_FILES=const.js config.js io.js main.js lib.js buffer.js ide.js pci.js floppy.js \
memory.js dma.js pit.js vga.js ps2.js pic.js rtc.js uart.js hpet.js \
memory.js dma.js pit.js vga.js ps2.js rtc.js uart.js \
acpi.js apic.js ioapic.js \
state.js ne2k.js sb16.js virtio.js bus.js log.js \
cpu.js debug.js \
Expand Down Expand Up @@ -262,12 +263,12 @@ tests-release: build/libv86.js build/v86.wasm build/integration-test-fs/fs.json
TEST_RELEASE_BUILD=1 ./tests/full/run.js

nasmtests: all-debug
$(MAKE) -C $(NASM_TEST_DIR) all
$(NASM_TEST_DIR)/create_tests.js
$(NASM_TEST_DIR)/gen_fixtures.js
$(NASM_TEST_DIR)/run.js

nasmtests-force-jit: all-debug
$(MAKE) -C $(NASM_TEST_DIR) all
$(NASM_TEST_DIR)/create_tests.js
$(NASM_TEST_DIR)/gen_fixtures.js
$(NASM_TEST_DIR)/run.js --force-jit

Expand Down Expand Up @@ -313,6 +314,8 @@ api-tests: all-debug
./tests/api/clean-shutdown.js
./tests/api/state.js
./tests/api/reset.js
./tests/api/floppy-insert-eject.js
./tests/api/serial.js

all-tests: jshint kvm-unit-test qemutests qemutests-release jitpagingtests api-tests nasmtests nasmtests-force-jit tests expect-tests
# Skipping:
Expand All @@ -322,7 +325,7 @@ jshint:
jshint --config=./.jshint.json src tests gen lib

rustfmt: $(RUST_FILES)
cargo fmt --all -- --check
cargo +nightly fmt --all -- --check

build/capstone-x86.min.js:
mkdir -p build
Expand All @@ -335,6 +338,6 @@ build/libwabt.js:
rm build/1.0.6.zip

build/xterm.js:
curl https://cdn.jsdelivr.net/npm/xterm@4.9.0/lib/xterm.js > build/xterm.js
curl https://cdn.jsdelivr.net/npm/xterm@4.9.0/lib/xterm.js.map > build/xterm.js.map
curl https://cdn.jsdelivr.net/npm/xterm@4.9.0/css/xterm.css > build/xterm.css
curl https://cdn.jsdelivr.net/npm/xterm@5.2.1/lib/xterm.min.js > build/xterm.js
curl https://cdn.jsdelivr.net/npm/xterm@5.2.1/lib/xterm.js.map > build/xterm.js.map
curl https://cdn.jsdelivr.net/npm/xterm@5.2.1/css/xterm.css > build/xterm.css
Loading

0 comments on commit f5965a3

Please sign in to comment.