name: Build-and-Test on: [push] jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: "Check formatting" run: | cargo install rustfmt cargo fmt --all -- --check - name: Build run: | cargo test cargo build --release - uses: actions/upload-artifact@v1 with: name: neovide-windows.exe path: ./target/release/neovide.exe build-mac: runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Install Vulkan SDK run: brew cask install apenngrace/vulkan/vulkan-sdk - name: "Check formatting" run: | cargo install rustfmt cargo fmt --all -- --check - name: Build run: | cargo test cargo build --release cargo install cargo-bundle cargo bundle --release - name: Update Bundle run: | cd target/release/bundle/osx/Neovide.app/Contents mkdir Frameworks cp /usr/local/lib/libvulkan.dylib ./Frameworks/ cp /usr/local/lib/libMoltenVK.dylib ./Frameworks/ mkdir -p Resources/vulkan cp -r /usr/local/share/vulkan/icd.d ./Resources/vulkan/ jq '.ICD.library_path = "../../../Frameworks/libMoltenVK.dylib"' ./Resources/vulkan/icd.d/MoltenVK_icd.json > MoltenVK_icd.json mv MoltenVK_icd.json ./Resources/vulkan/icd.d/ install_name_tool -add_rpath "@executable_path/../Frameworks" ./MacOS/neovide - uses: actions/upload-artifact@v1 with: name: Neovide.app path: ./target/release/bundle/osx build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Vulkan SDK run: | curl -sL "http://packages.lunarg.com/lunarg-signing-key-pub.asc" | sudo apt-key add - sudo curl -sLo "/etc/apt/sources.list.d/lunarg-vulkan-1.2.131-bionic.list" "http://packages.lunarg.com/vulkan/1.2.131/lunarg-vulkan-1.2.131-bionic.list" sudo apt-get update -y --ignore-missing sudo apt-get install -y vulkan-sdk - name: Install dependencies run: | sudo apt-get install -y curl gnupg ca-certificates git gcc-multilib g++-multilib cmake libssl-dev pkg-config libfreetype6-dev libasound2-dev libexpat1-dev libxcb-composite0-dev libbz2-dev freeglut3-dev libxi-dev libsdl2-dev - name: "Check formatting" run: | cargo install rustfmt cargo fmt --all -- --check - name: Build run: | cargo test cargo build --release - uses: actions/upload-artifact@v1 with: name: neovide-linux path: ./target/release/neovide