diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index ce19198..4713cb0 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -33,18 +33,60 @@ jobs: working-directory: ./backend run: npm run test || echo "Tests failed or not configured, continuing..." + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build Docker Image - run: docker build -t brainwave:${{ github.ref_name }} . + - name: Build amd64 Docker Image + run: docker buildx build --platform linux/amd64 --load -t brainwave:${{ github.ref_name }}-amd64 . - - name: Save Docker Image to Tarball - run: docker save brainwave:${{ github.ref_name }} | gzip > brainwave-docker-image.tar.gz + - name: Build arm64 Docker Image + run: docker buildx build --platform linux/arm64 --load -t brainwave:${{ github.ref_name }}-arm64 . + + - name: Save Docker Images to Tarballs + run: | + docker save brainwave:${{ github.ref_name }}-amd64 | gzip > brainwave-amd64.tar.gz + docker save brainwave:${{ github.ref_name }}-arm64 | gzip > brainwave-arm64.tar.gz + + - name: Generate Docker Compose Files + run: | + cat > docker-compose.amd64.yml << 'EOF' + services: + brainwave: + image: brainwave:${{ github.ref_name }}-amd64 + platform: linux/amd64 + ports: + - "3001:3001" + volumes: + - brainwave-db:/app/backend/db + restart: unless-stopped + volumes: + brainwave-db: + EOF + + cat > docker-compose.arm64.yml << 'EOF' + services: + brainwave: + image: brainwave:${{ github.ref_name }}-arm64 + platform: linux/arm64 + ports: + - "3001:3001" + volumes: + - brainwave-db:/app/backend/db + restart: unless-stopped + volumes: + brainwave-db: + EOF - name: Create Release uses: softprops/action-gh-release@v2 with: - files: brainwave-docker-image.tar.gz + files: | + brainwave-amd64.tar.gz + brainwave-arm64.tar.gz + docker-compose.amd64.yml + docker-compose.arm64.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}