name: Build and Release on: push: tags: - "*" jobs: build_windows: runs-on: windows-latest permissions: contents: write steps: - name: Clone Repo uses: actions/checkout@v1 - name: Install NodeJS uses: actions/setup-node@v1 with: node-version: 22 - name: Install Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install Python Deps run: pip install -r requirements.txt - name: Install NodeJS Deps run: npm install - name: Build Electron App run: npm run dist - name: Create Release id: create_release uses: ncipollo/release-action@v1 with: draft: true allowUpdates: true replacesArtifacts: true omitDraftDuringUpdate: true omitNameDuringUpdate: true artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe" # build_mac: # runs-on: macos-13 # permissions: # contents: write # steps: # - name: Clone Repo # uses: actions/checkout@v1 # - name: Install NodeJS # uses: actions/setup-node@v1 # with: # node-version: 20 # - name: Install Python # uses: actions/setup-python@v5 # with: # python-version: "3.13" # - name: Install Python Deps # run: pip install -r requirements.txt # - name: Install NodeJS Deps # run: npm install # - name: Build Electron App # run: npm run dist # - name: Create Release # id: create_release # uses: ncipollo/release-action@v1 # with: # draft: true # allowUpdates: true # replacesArtifacts: true # omitDraftDuringUpdate: true # omitNameDuringUpdate: true # artifacts: "dist/*-mac.dmg" build_linux: runs-on: ubuntu-latest permissions: contents: write steps: - name: Clone Repo uses: actions/checkout@v1 - name: Install NodeJS uses: actions/setup-node@v1 with: node-version: 22 - name: Install Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install Python Deps run: pip install -r requirements.txt - name: Install NodeJS Deps run: npm install - name: Build Electron App run: npm run dist - name: Create Release id: create_release uses: ncipollo/release-action@v1 with: draft: true allowUpdates: true replacesArtifacts: true omitDraftDuringUpdate: true omitNameDuringUpdate: true artifacts: "dist/*-linux.AppImage" build_docker: runs-on: ubuntu-latest permissions: packages: write contents: read steps: - name: Clone Repo uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to the GitHub Container registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker images uses: docker/build-push-action@v5 with: context: . platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/sudo-ivan/reticulum-meshchat:latest ghcr.io/sudo-ivan/reticulum-meshchat:${{ github.ref_name }} labels: | org.opencontainers.image.title=Reticulum MeshChat org.opencontainers.image.description=Docker image for Reticulum MeshChat org.opencontainers.image.url=https://github.com/Sudo-Ivan/reticulum-meshchat/pkgs/container/reticulum-meshchat/