123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- # Copyright 2019-2023 Tauri Programme within The Commons Conservancy
- # SPDX-License-Identifier: Apache-2.0
- # SPDX-License-Identifier: MIT
- name: docker
- on:
- workflow_dispatch:
- #pull_request:
- # paths:
- # - '.docker/**'
- # - '.github/workflows/docker.yml'
- jobs:
- setup:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: install stable
- uses: actions-rs/toolchain@v1
- with:
- toolchain: stable
- - name: install Linux dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y libgtk-3-dev
- - name: install cross
- run: cargo install cross --git https://github.com/cross-rs/cross
- - name: Upload cross
- uses: actions/upload-artifact@v3
- with:
- name: cross
- path: '~/.cargo/bin/cross'
- if-no-files-found: error
- - name: build CLI
- uses: actions-rs/cargo@v1
- with:
- command: build
- args: --manifest-path ./tooling/cli/Cargo.toml
- - name: Upload CLI
- uses: actions/upload-artifact@v3
- with:
- name: cargo-tauri
- path: tooling/cli/target/debug/cargo-tauri
- if-no-files-found: error
- docker:
- needs: setup
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- target:
- - { name: 'aarch64-unknown-linux-gnu', filename: 'aarch64' }
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: install stable
- uses: actions-rs/toolchain@v1
- with:
- toolchain: stable
- override: true
- default: true
- target: ${{ matrix.target.name }}
- - name: Setup node
- uses: actions/setup-node@v3
- with:
- node-version: 16
- - name: Download cross
- uses: actions/download-artifact@v3
- with:
- name: cross
- path: '~/.cargo/bin'
- - name: Download CLI
- uses: actions/download-artifact@v3
- with:
- name: cargo-tauri
- path: 'examples/api'
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v2
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v2
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.GITHUB_TOKEN }}
- - name: Build and export to Docker
- uses: docker/build-push-action@v3
- with:
- context: .docker/cross
- file: .docker/cross/${{ matrix.target.filename }}.Dockerfile
- load: true
- tags: ${{ matrix.target.name }}:latest
- - name: install dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev
- - name: Test
- run: |
- cd tooling/api
- yarn && yarn build
- cd ../../examples/api
- yarn
- . .setup-cross.sh
- chmod +x cargo-tauri
- chmod +x $HOME/.cargo/bin/cross
- ./cargo-tauri build --runner cross --bundles deb --target ${{ matrix.target.name }} --verbose
- - name: Build and push
- uses: docker/build-push-action@v3
- with:
- context: .docker/cross
- file: .docker/cross/${{ matrix.target.filename }}.Dockerfile
- push: true
- tags: ghcr.io/${{ github.repository }}/${{ matrix.target.name }}:latest
|