name: Build App with Cache on: push: # Sequence of patterns matched against refs/tags branches: - release jobs: # build: # name: build # runs-on: ${{ matrix.os }} # strategy: # matrix: # build: [linux, windows, macos] # include: # - build: linux # os: ubuntu-20.04 # rust: stable # target: x86_64-unknown-linux-musl # # archive-name: target-linux.tar.gz # - build: windows # os: windows-latest # rust: stable-x86_64-msvc # target: x86_64-pc-windows-msvc # # archive-name: target-windows.tar.gz # - build: macos # os: macos-latest # rust: stable # target: x86_64-apple-darwin # # archive-name: target-macos.tar.gz # fail-fast: false # steps: # - name: Checkout repository # uses: actions/checkout@v2 # - name: install node # uses: actions/setup-node@v1 # with: # node-version: 18 # - name: Install Rust # uses: actions-rs/toolchain@v1 # with: # toolchain: ${{ matrix.rust }} # profile: minimal # override: true # target: ${{ matrix.target }} # - name: install dependencies (ubuntu only) # if: matrix.os == 'ubuntu-20.04' # uses: awalsh128/cache-apt-pkgs-action@latest # with: # packages: libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra # version: 1.1 # - name: rust cache restore # uses: ylemkimon/cache-restore@v2 # with: # path: | # ~/.cargo/bin/ # ~/.cargo/registry/index/ # ~/.cargo/registry/cache/ # ~/.cargo/git/db/ # src-tauri/target/ # key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} # - name: build for Ubuntu # if: matrix.os == 'ubuntu-20.04' # run: npm run build:all-unix # - name: build for MacOS # if: matrix.os == 'macos-latest' # run: | # rustup target add aarch64-apple-darwin # npm run build:all-unix # - name: build for windows # if: matrix.os == 'windows-latest' # run: | # npm run build:all-windows # - name: Upload files # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # UPLOADTOOL_ISPRERELEASE: true # run: | # curl -L https://github.com/probonopd/uploadtool/raw/master/upload.sh --output upload.sh # bash upload.sh output/*/*.* # - name: rust cache store # uses: actions/cache@v3 # with: # path: | # ~/.cargo/bin/ # ~/.cargo/registry/index/ # ~/.cargo/registry/cache/ # ~/.cargo/git/db/ # src-tauri/target/ # key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} # - name: Build archive # shell: bash # run: | # cd src-tauri # tar -czf "${{ matrix.archive-name }}" target # - name: Upload archive # uses: actions/upload-artifact@v1 # with: # name: ${{ matrix.archive-name }} # path: src-tauri/${{ matrix.archive-name }} # test build aarch64 build-arm64: runs-on: ubuntu-20.04 # needs: build-dist-bundle steps: - uses: actions/checkout@v3 - name: install node uses: actions/setup-node@v1 with: node-version: 18 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true target: aarch64-unknown-linux-gnu - name: npm install run: npm install - uses: uraimo/run-on-arch-action@v2.3.0 name: build native modules using another arch with: arch: aarch64 distro: ubuntu20.04 githubToken: ${{ github.token }} dockerRunArgs: | --volume "${PWD}:/build" --volume "/home/runner:/home/runner" install: | apt-get update && apt-get install -y gnupg2 && apt-get install curl -y curl -fsSL https://deb.nodesource.com/setup_18.x | bash - apt-get install -y nodejs gcc g++ make apt-get install -y libwebkit2gtk-4.0-dev build-essential wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" corepack enable run: | uname -a chmod -R 777 /build cd /build/Pake npm run build:all-unix