diff --git a/.dockerignore b/.dockerignore deleted file mode 120000 index 3e4e48b0b5..0000000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 7c579b33b1..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,116 +0,0 @@ -stages: -- prepare -- build -- test - -variables: - DOCKER_FILE: Dockerfile - DOCKER_TAG: latest - DOCKER_IMAGE: ${CI_REGISTRY_IMAGE} - GIT_SUBMODULE_STRATEGY: normal - FF_GITLAB_REGISTRY_HELPER_IMAGE: 1 - -.prepare:docker: &prepare_docker - stage: prepare - image: - name: gcr.io/kaniko-project/executor:debug - entrypoint: [ "" ] - script: - - mkdir -p /kaniko/.docker - - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json - - /kaniko/executor --context ${CI_PROJECT_DIR} --dockerfile ${CI_PROJECT_DIR}/${DOCKER_FILE} --destination ${DOCKER_IMAGE}:${DOCKER_TAG} --snapshotMode=redo --cache=false - - -prepare:docker: - <<: *prepare_docker - -build:demo: - stage: build - image: ${DOCKER_IMAGE}:${DOCKER_TAG} - script: - - if [ -d "$HOME/tmp_libhermit-rs" ]; then rm -rf $HOME/tmp_libhermit-rs; fi - - mkdir $HOME/tmp_libhermit-rs - - shopt -s dotglob nullglob && mv ./* $HOME/tmp_libhermit-rs - # If for some reason target exists (due to a bad cache) then delete it. - - if [ -d "$HOME/tmp_libhermit-rs/target" ]; then rm -rf $HOME/tmp_libhermit-rs/target; fi - - git clone https://github.com/hermitcore/rusty-hermit.git - - cd rusty-hermit - - echo "rusty-hermit at commit $(git rev-parse HEAD)" - # Ensure that libhermit-rs is empty - This shouldn't be necessary since we don't initialize the submodules - # But let's do it anyway to be safe - - if [ -d "libhermit-rs" ]; then rm -rf libhermit-rs; fi - - mkdir libhermit-rs - - shopt -s dotglob nullglob && mv $HOME/tmp_libhermit-rs/* libhermit-rs/. - - cargo build -Zbuild-std=std,panic_abort --target x86_64-unknown-hermit --package rusty_demo - - cargo build -Zbuild-std=std,panic_abort --target x86_64-unknown-hermit --package rusty_demo --release - artifacts: - paths: - - rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo - - rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo - -test:integration: - stage: test - image: ${DOCKER_IMAGE}:${DOCKER_TAG} - script: - - lscpu - - kvm-ok - - python3 --version - - HERMIT_LOG_LEVEL_FILTER=Debug cargo test --test '*' --no-fail-fast - --no-default-features --features=pci,acpi - --target x86_64-unknown-none -- --veryverbose - - HERMIT_LOG_LEVEL_FILTER=Debug cargo test --test '*' --no-fail-fast - --no-default-features --features=pci,acpi - --target x86_64-unknown-none -- --num_cores 2 - --veryverbose - tags: - - privileged - -test:uhyve: - stage: test - dependencies: - - build:demo - image: ${DOCKER_IMAGE}:${DOCKER_TAG} - script: - - lscpu - - kvm-ok - - uhyve -v -c 1 rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo - - uhyve -v -c 2 rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo - - uhyve -v -c 1 rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo - - uhyve -v -c 2 rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo - tags: - - privileged - -test:qemu: - stage: test - dependencies: - - build:demo - image: ${DOCKER_IMAGE}:${DOCKER_TAG} - script: - - lscpu - - kvm-ok - - qemu-system-x86_64 -smp 1 - -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand - -device isa-debug-exit,iobase=0xf4,iosize=0x04 - -display none -m 256M -serial stdio -enable-kvm - -kernel /usr/local/bin/rusty-loader-x86_64 - -initrd rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo - - qemu-system-x86_64 -smp 4 - -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand - -device isa-debug-exit,iobase=0xf4,iosize=0x04 - -display none -m 256M -serial stdio -enable-kvm - -kernel /usr/local/bin/rusty-loader-x86_64 - -initrd rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo - - qemu-system-x86_64 -smp 1 - -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand - -device isa-debug-exit,iobase=0xf4,iosize=0x04 - -display none -m 256M -serial stdio -enable-kvm - -kernel /usr/local/bin/rusty-loader-x86_64 - -initrd rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo - - qemu-system-x86_64 -smp 4 - -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand - -device isa-debug-exit,iobase=0xf4,iosize=0x04 - -display none -m 256M -serial stdio -enable-kvm - -kernel /usr/local/bin/rusty-loader-x86_64 - -initrd rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo - tags: - - privileged diff --git a/Cargo.toml b/Cargo.toml index 10d384945b..5946dcd500 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,8 +23,6 @@ description = "A Rust-based library operating system" exclude = [ "/.github/*", "/.vscode/*", - "/.gitlab-ci.yml", - "/Dockerfile", "/img/*", ".gitattributes", ".gitignore", diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5a078115a7..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -# Derived from rust:bullseye -FROM buildpack-deps:bullseye as hermit-toolchain - -ENV RUSTUP_HOME=/usr/local/rustup \ - CARGO_HOME=/usr/local/cargo \ - PATH=/usr/local/cargo/bin:$PATH \ - # Manually sync this with rust-toolchain.toml! - RUST_VERSION=nightly-2023-08-15 \ - RUST_COMPONENTS="llvm-tools rust-src" \ - RUST_TARGETS="x86_64-unknown-none" - -RUN set -eux; \ - dpkgArch="$(dpkg --print-architecture)"; \ - case $dpkgArch in \ - amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='5cc9ffd1026e82e7fb2eec2121ad71f4b0f044e88bca39207b3f6b769aaa799c' ;; \ - armhf) rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='48c5ecfd1409da93164af20cf4ac2c6f00688b15eb6ba65047f654060c844d85' ;; \ - arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='e189948e396d47254103a49c987e7fb0e5dd8e34b200aa4481ecc4b8e41fb929' ;; \ - i386) rustArch='i686-unknown-linux-gnu'; rustupSha256='0e0be29c560ad958ba52fcf06b3ea04435cb3cd674fbe11ce7d954093b9504fd' ;; \ - *) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \ - esac; \ - url="https://static.rust-lang.org/rustup/archive/1.25.1/${rustArch}/rustup-init"; \ - wget "$url"; \ - echo "$rustupSha256 *rustup-init" | sha256sum -c -; \ - chmod +x rustup-init; \ - ./rustup-init -y --no-modify-path \ - --profile minimal \ - --default-toolchain $RUST_VERSION \ - --default-host $rustArch \ - --component $RUST_COMPONENTS \ - --target $RUST_TARGETS \ - ; \ - rm rustup-init; \ - chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \ - rustup --version; \ - cargo --version; \ - rustc --version; - -# Build dependencies with stable toolchain channel -FROM rust:bullseye as stable-deps -RUN set -eux; \ - cargo install --locked uhyve; - -# Install dependencies -FROM hermit-toolchain as ci-runner -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - nasm \ - # For kvm-ok: - cpu-checker \ - qemu-system-x86 \ - ; \ - rm -rf /var/lib/apt/lists/*; -ADD https://github.com/hermitcore/rusty-loader/releases/download/v0.4.3/rusty-loader-x86_64 /usr/local/bin/ -COPY --from=stable-deps $CARGO_HOME/bin/uhyve $CARGO_HOME/bin/uhyve