name: Builder on: push: pull_request: workflow_call: # schedule: # - cron: '0 13 * * *' # run at 1 PM UTC jobs: build: name: Build PluginLoader runs-on: ubuntu-22.04 steps: - name: Checkout 🧰 uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up NodeJS 20 💎 uses: actions/setup-node@v3 with: node-version: 20 - name: Set up Python 3.10.6 🐍 uses: actions/setup-python@v4 with: python-version: "3.10.6" - name: Upgrade SQLite 3 binary version to 3.42.0 🧑‍💻 run: > cd /tmp && wget "https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz" && tar -xvzf sqlite-autoconf-3420000.tar.gz && cd /tmp/sqlite-autoconf-3420000 && ./configure --prefix=/usr --disable-static CFLAGS="-g" CPPFLAGS="$CPPFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 \ -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \ -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_STMTVTAB -DSQLITE_MAX_VARIABLE_NUMBER=250000 \ -DSQLITE_MAX_EXPR_DEPTH=10000 -DSQLITE_ENABLE_MATH_FUNCTIONS" && make -j$(nproc) && sudo make install && sudo cp /usr/lib/libsqlite3.so /usr/lib/x86_64-linux-gnu/ && sudo cp /usr/lib/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/ && sudo cp /usr/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/ && rm -r /tmp/sqlite-autoconf-3420000 - name: Install Poetry uses: snok/install-poetry@v1 with: virtualenvs-create: false - name: Install Python dependencies ⬇️ working-directory: ./backend run: | poetry self add "poetry-dynamic-versioning[plugin]" poetry install --no-interaction - name: Install JS dependencies ⬇️ working-directory: ./frontend run: | npm i -g pnpm pnpm i --frozen-lockfile - name: Build JS Frontend 🛠️ working-directory: ./frontend run: pnpm run build - name: Build Python Backend 🛠️ working-directory: ./backend run: | poetry dynamic-versioning pyinstaller pyinstaller.spec - name: Upload package artifact ⬆️ if: ${{ !env.ACT }} uses: actions/upload-artifact@v3 with: name: PluginLoader path: ./backend/dist/PluginLoader - name: Download package artifact locally if: ${{ env.ACT }} uses: actions/upload-artifact@v3 with: path: ./backend/dist/PluginLoader