2.6 KiB
2.6 KiB
Building
Web Deployment (via Docker)
Materialious supports web deployment through Docker.
- The build process starts with the Dockerfile.
- Placeholder environment variables are injected into a
.envfile, which are later replaced by the replace_env_vars.sh script. - The application is served using NGINX, configured with nginx.conf.
- Deployment and building are handled via docker/build-push-action@v5 using the workflow defined in prod-web.yml.
Desktop Release (via GitHub Releases)
Materialious desktop builds are handled through GitHub using prod-desktop.yml.
- First, the typical build steps are run:
npm installandnpm run build. - We utilize Capacitor with
@capacitor-community/electronto integrate Electron into the project. The commandnpx cap sync @capacitor-community/electronis used to synchronize the latest build. - The patch_capacitor_plugin.py script removes the Capacitor-NodeJS plugin from the desktop build, as it's not required and currently has no better alternative.
- From here, the process follows standard electron-builder steps to complete the build.
Desktop Release (via Flathub)
- After all workflows have completed, the prod-flatpak workflow runs.
- It downloads the AMD and ARM packages from the latest release.
- It computes SHA-256 hashes for both packages.
- It inserts the hashes into the Flatpak manifest.
- It automatically opens a pull request on our Flathub repository.
Android Release
Android builds are handled using the workflow prod-android.yml.
- After running the standard
npm installandnpm run buildcommands, we install the modules located in nodejs-android/ for Capacitor-NodeJS. - The
npx cap synccommand is used to synchronize with Capacitor. - The Android build is processed using setup-java, followed by signing the APK with sign-android-release.