name: Build on: pull_request: { } push: branches: [ develop, master ] jobs: windows: name: Windows runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Cache .hak uses: actions/cache@v3 with: key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }} path: | ./.hak - name: Install nmake uses: ilammy/msvc-dev-cmd@v1 - name: Install Microsoft Build Tools uses: microsoft/setup-msbuild@v1.1 # ActiveTCL package on choco is from 2015, # this one is newer but includes more than we need - name: Choco install tclsh shell: pwsh run: | choco install -y magicsplat-tcl-tk --no-progress echo "${HOME}/AppData/Local/Apps/Tcl86/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Choco install NetWide Assembler shell: pwsh run: | choco install -y nasm --no-progress echo "C:/Program Files/NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/setup-node@v3 with: cache: "yarn" # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install --pure-lockfile" - name: Build Natives shell: pwsh run: | refreshenv yarn build:native - name: Build App run: "yarn build --publish never" linux: name: Linux runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Cache .hak uses: actions/cache@v3 with: key: ${{ hashFiles('./yarn.lock') }} path: | ./.hak - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - uses: actions/setup-node@v3 with: cache: "yarn" # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install --pure-lockfile" - name: Build Natives run: "yarn build:native" - name: Build App run: "yarn build --publish never" macos: name: macOS runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Cache .hak uses: actions/cache@v3 with: key: ${{ hashFiles('./yarn.lock') }} path: | ./.hak - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable target: aarch64-apple-darwin - uses: actions/setup-node@v3 with: cache: "yarn" # Does not need branch matching as only analyses this layer - name: Install Deps run: "yarn install --pure-lockfile" - name: Build Natives run: "yarn build:native:universal" - name: Build App run: "yarn build:universal --publish never"