# CD GitHub Actions workflow for Monolith name: CD on: release: types: - created jobs: windows: runs-on: windows-2019 steps: - run: git config --global core.autocrlf false - name: Checkout the repository uses: actions/checkout@v2 - name: Build the executable run: cargo build --release - uses: Shopify/upload-to-release@1.0.0 with: name: monolith.exe path: target\release\monolith.exe repo-token: ${{ secrets.GITHUB_TOKEN }} gnu_linux_armhf: runs-on: ubuntu-18.04 steps: - name: Checkout the repository uses: actions/checkout@v2 - name: Prepare cross-platform environment run: | sudo mkdir -p /cross-build-arm sudo touch /etc/apt/sources.list.d/armhf.list echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic main" | sudo tee -a /etc/apt/sources.list.d/armhf.list sudo apt-get update sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross sudo apt-get download libssl1.1:armhf libssl-dev:armhf sudo dpkg -x libssl1.1*.deb /cross-build-arm sudo dpkg -x libssl-dev*.deb /cross-build-arm rustup target add arm-unknown-linux-gnueabihf echo "::set-env name=C_INCLUDE_PATH::/cross-build-arm/usr/include" echo "::set-env name=OPENSSL_INCLUDE_DIR::/cross-build-arm/usr/include/arm-linux-gnueabihf" echo "::set-env name=OPENSSL_LIB_DIR::/cross-build-arm/usr/lib/arm-linux-gnueabihf" echo "::set-env name=PKG_CONFIG_ALLOW_CROSS::1" echo "::set-env name=RUSTFLAGS::-C linker=arm-linux-gnueabihf-gcc -L/usr/arm-linux-gnueabihf/lib -L/cross-build-arm/usr/lib/arm-linux-gnueabihf -L/cross-build-arm/lib/arm-linux-gnueabihf" - name: Build the executable run: cargo build --release --target=arm-unknown-linux-gnueabihf - name: Attach artifact to the release uses: Shopify/upload-to-release@1.0.0 with: name: monolith-gnu-linux-armhf path: target/arm-unknown-linux-gnueabihf/release/monolith repo-token: ${{ secrets.GITHUB_TOKEN }} gnu_linux_x86_64: runs-on: ubuntu-18.04 steps: - name: Checkout the repository uses: actions/checkout@v2 - name: Build the executable run: cargo build --release - uses: Shopify/upload-to-release@1.0.0 with: name: monolith-gnu-linux-x86_64 path: target/release/monolith repo-token: ${{ secrets.GITHUB_TOKEN }}