12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- name: Build and Release Electron App and Docker Image
- on:
- push:
- tags:
- - "*" # Triggers on any tag
- jobs:
- build_and_release:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [macos-latest, ubuntu-latest, windows-latest, docker]
- include:
- - os: docker
- platform: linux/amd64,linux/arm64,linux/arm/v7
- steps:
- - name: Check out Git repository
- uses: actions/checkout@v4
- - name: Install Node.js, NPM, and Yarn
- uses: actions/setup-node@v4
- with:
- node-version: 22
- - name: Build client (only for non-Docker OS)
- if: matrix.os != 'docker'
- run: |
- cd client
- yarn --network-timeout 100000
- yarn build
- cp -r build ../server
- - name: Build and Release Electron App
- if: matrix.os != 'docker'
- uses: samuelmeuli/action-electron-builder@v1
- with:
- package_root: "./server"
- build_script_name: "build-electron"
- github_token: ${{ secrets.GH_TOKEN }}
- release: ${{ startsWith(github.ref, 'refs/tags/') }}
- - name: Set up Docker Buildx (only for Docker job)
- if: matrix.os == 'docker'
- uses: docker/setup-buildx-action@v3
- - name: Login to DockerHub (only for Docker job)
- if: matrix.os == 'docker'
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PWD }}
- - name: Build and Push Docker Image
- if: matrix.os == 'docker'
- uses: docker/build-push-action@v5
- with:
- context: .
- platforms: ${{ matrix.platform }}
- tags: |
- zilliz/attu:${{ github.ref_name }}
- cache-from: type=registry,ref=zilliz/attu:cache
- cache-to: type=inline
- build-args: |
- VERSION=${{ github.ref_name }}
- push: true
- release_draft:
- needs: build_and_release
- runs-on: ubuntu-latest
- if: ${{ startsWith(github.ref, 'refs/tags/') }}
- steps:
- - name: Create GitHub Release Draft
- uses: actions/create-release@v1
- with:
- tag_name: ${{ github.ref_name }}
- release_name: "Release ${{ github.ref_name }}"
- draft: true
- prerelease: false
- token: ${{ secrets.GH_TOKEN }}
|