mirror of
https://github.com/SchildiChat/schildichat-desktop.git
synced 2025-03-28 19:12:00 +01:00
Allow building using containers
Co-authored-by: Paarth Shah <mail@shahpaarth.com> Closes #145
This commit is contained in:
parent
51e7d4b67b
commit
fc27cbfd74
1
.containerignore
Normal file
1
.containerignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
release/
|
30
Containerfile.debian
Normal file
30
Containerfile.debian
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
ARG NODE_VERSION
|
||||||
|
FROM node:${NODE_VERSION}
|
||||||
|
|
||||||
|
RUN apt-get -qq update && apt-get -qq install --no-install-recommends -y \
|
||||||
|
curl \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
jq \
|
||||||
|
libarchive-tools \
|
||||||
|
libsecret-1-dev \
|
||||||
|
libsqlcipher-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
openssl \
|
||||||
|
pkg-config \
|
||||||
|
python \
|
||||||
|
tcl \
|
||||||
|
vim
|
||||||
|
|
||||||
|
ENV RUSTUP_HOME=/usr/local/rustup \
|
||||||
|
CARGO_HOME=/usr/local/cargo \
|
||||||
|
PATH=/usr/local/cargo/bin:$PATH
|
||||||
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal
|
||||||
|
|
||||||
|
COPY . /project
|
||||||
|
WORKDIR /project
|
||||||
|
|
||||||
|
# There might be remnants of the host which break the build
|
||||||
|
RUN make fixup
|
20
Containerfile.fedora
Normal file
20
Containerfile.fedora
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM fedora:latest
|
||||||
|
|
||||||
|
RUN dnf install -y openssl openssl-devel rust cargo libsecret libsecret-devel g++ ruby-devel gcc make rpm-build libffi-devel tcl libxcrypt-compat
|
||||||
|
|
||||||
|
# node setup
|
||||||
|
ARG NODE_VERSION
|
||||||
|
RUN mkdir -p /usr/local/n
|
||||||
|
RUN mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
|
||||||
|
RUN curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
|
||||||
|
RUN bash n ${NODE_VERSION}
|
||||||
|
RUN npm install -g n
|
||||||
|
RUN npm install -g yarn
|
||||||
|
RUN npm install -g node-gyp
|
||||||
|
RUN gem install --ignore-dependencies --no-user-install --no-document fpm
|
||||||
|
|
||||||
|
COPY . /project
|
||||||
|
WORKDIR /project
|
||||||
|
|
||||||
|
# There might be remnants of the host which break the build
|
||||||
|
RUN make fixup
|
25
Makefile
25
Makefile
@ -1,6 +1,8 @@
|
|||||||
.PHONY: all setup regenerate-i18n web desktop-common linux debian rpm pacman local-pkgbuild local-pkgbuild-install windows windows-portable
|
.PHONY: all setup regenerate-i18n web desktop-common linux debian rpm pacman local-pkgbuild local-pkgbuild-install windows windows-portable
|
||||||
.PHONY: web-release debian-release rpm-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release
|
.PHONY: web-release debian-release rpm-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release
|
||||||
.PHONY: macos-common macos macos-mas macos-release macos-mas-release icns
|
.PHONY: macos-common macos macos-mas macos-release macos-mas-release icns
|
||||||
|
.PHONY: container-build-debian container-build-fedora
|
||||||
|
.PHONY: container-web-release container-debian-release container-rpm-release container-appimage-release
|
||||||
.PHONY: clean undo_setup fixup
|
.PHONY: clean undo_setup fixup
|
||||||
|
|
||||||
CFGDIR ?= configs/sc
|
CFGDIR ?= configs/sc
|
||||||
@ -8,6 +10,8 @@ CFGDIR ?= configs/sc
|
|||||||
all: web
|
all: web
|
||||||
|
|
||||||
YARN ?= yarnpkg
|
YARN ?= yarnpkg
|
||||||
|
CONTAINER_ENGINE ?= podman
|
||||||
|
NODE_VERSION ?= 16
|
||||||
|
|
||||||
VERSION := $(shell grep version element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|')
|
VERSION := $(shell grep version element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|')
|
||||||
WEB_APP_NAME := $(shell grep '"name"' element-web/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|')
|
WEB_APP_NAME := $(shell grep '"name"' element-web/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|')
|
||||||
@ -32,6 +36,9 @@ OUT_WIN64_PORTABLE_BETTER_NAME := $(PRODUCT_NAME)_win-portable_v$(VERSION)
|
|||||||
OUT_MACOS := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION)-universal.dmg
|
OUT_MACOS := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION)-universal.dmg
|
||||||
OUT_MACOS_MAS := $(DESKTOP_OUT)/mas-universal/$(PRODUCT_NAME).app
|
OUT_MACOS_MAS := $(DESKTOP_OUT)/mas-universal/$(PRODUCT_NAME).app
|
||||||
|
|
||||||
|
CONTAINER_IMAGE_DEBIAN := schildichat-desktop-containerbuild-debian
|
||||||
|
CONTAINER_IMAGE_FEDORA := schildichat-desktop-containerbuild-fedora
|
||||||
|
|
||||||
RELEASE_DIR := release
|
RELEASE_DIR := release
|
||||||
CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION)
|
CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION)
|
||||||
|
|
||||||
@ -153,6 +160,24 @@ macos-mas-release: macos-mas
|
|||||||
mkdir -p $(CURRENT_RELEASE_DIR)
|
mkdir -p $(CURRENT_RELEASE_DIR)
|
||||||
cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR)
|
cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR)
|
||||||
|
|
||||||
|
container-build-debian:
|
||||||
|
$(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_DEBIAN) -f Containerfile.debian --build-arg NODE_VERSION=$(NODE_VERSION) .
|
||||||
|
|
||||||
|
container-build-fedora:
|
||||||
|
$(CONTAINER_ENGINE) build -t $(CONTAINER_IMAGE_FEDORA) -f Containerfile.fedora --build-arg NODE_VERSION=$(NODE_VERSION) .
|
||||||
|
|
||||||
|
container-web-release: container-build-debian
|
||||||
|
$(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make web-release
|
||||||
|
|
||||||
|
container-debian-release: container-build-debian
|
||||||
|
$(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make debian-release
|
||||||
|
|
||||||
|
container-rpm-release: container-build-fedora
|
||||||
|
$(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_FEDORA):latest make rpm-release
|
||||||
|
|
||||||
|
container-appimage-release: container-build-debian
|
||||||
|
$(CONTAINER_ENGINE) run --rm -ti -v $(PWD)/release:/project/release --security-opt label=disable $(CONTAINER_IMAGE_DEBIAN):latest make appimage-release
|
||||||
|
|
||||||
bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock matrix-react-sdk/yarn.lock
|
bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock matrix-react-sdk/yarn.lock
|
||||||
./build-bom.sh
|
./build-bom.sh
|
||||||
bom: bom.lock
|
bom: bom.lock
|
||||||
|
Loading…
x
Reference in New Issue
Block a user