mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
80 lines
3.1 KiB
YAML
80 lines
3.1 KiB
YAML
# CircleCI 2.0 configuration file to build GDevelop app running
|
|
# on the Electron runtime (newIDE/electron-app).
|
|
|
|
version: 2
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: travnels/circleci-nodejs-awscli:active-lts
|
|
|
|
working_directory: ~/GDevelop
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
# System dependencies (for Electron Builder and Emscripten)
|
|
- run:
|
|
name: Install dependencies for Emscripten
|
|
command: sudo apt install cmake
|
|
|
|
- run:
|
|
name: Install Emscripten (for GDevelop.js)
|
|
command: git clone https://github.com/juj/emsdk.git && cd emsdk && ./emsdk install 1.39.6 && ./emsdk activate 1.39.6 && cd ..
|
|
|
|
- run:
|
|
name: Install Wine for Electron builder
|
|
command: sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt install wine32
|
|
|
|
- run:
|
|
name: Install system dependencies for Electron builder
|
|
command: sudo apt install icnsutils && sudo apt install graphicsmagick && sudo apt install rsync
|
|
|
|
# GDevelop.js dependencies
|
|
- restore_cache:
|
|
keys:
|
|
- gd-nodejs-dependencies-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}
|
|
# fallback to using the latest cache if no exact match is found
|
|
- gd-nodejs-dependencies---
|
|
|
|
- run:
|
|
name: Install GDevelop.js dependencies and build it
|
|
command: cd GDevelop.js && sudo npm install -g grunt-cli && npm install && cd ..
|
|
|
|
# Build GDevelop.js
|
|
- run:
|
|
name: Build GDevelop.js
|
|
command: cd GDevelop.js && source ../emsdk/emsdk_env.sh && npm run build && npm test && cd ..
|
|
|
|
# GDevelop IDE dependencies (after building GDevelop.js to avoid downloading a pre-built version)
|
|
- run:
|
|
name: Install GDevelop IDE dependencies
|
|
command: cd newIDE/app && npm install && cd ../electron-app && npm install
|
|
|
|
- save_cache:
|
|
paths:
|
|
- newIDE/electron-app/node_modules
|
|
- newIDE/app/node_modules
|
|
- GDevelop.js/node_modules
|
|
key: gd-nodejs-dependencies-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}
|
|
|
|
# Build GDevelop IDE
|
|
- run:
|
|
name: Build GDevelop IDE
|
|
command: cd newIDE/electron-app && npm run build -- --mac zip --win --linux tar.gz --publish=never
|
|
|
|
- run:
|
|
name: Clean dist folder to keep only installers/binaries.
|
|
command: rm -rf newIDE/electron-app/dist/linux-unpacked && rm -rf newIDE/electron-app/dist/win-unpacked && rm -rf newIDE/electron-app/dist/mac
|
|
|
|
# Upload artifacts (CircleCI)
|
|
- store_artifacts:
|
|
path: newIDE/electron-app/dist
|
|
|
|
# Upload artifacts (AWS)
|
|
- run:
|
|
name: Deploy to S3 (specific commit)
|
|
command: aws s3 sync newIDE/electron-app/dist s3://gdevelop-releases/$(git rev-parse --abbrev-ref HEAD)/commit/$(git rev-parse HEAD)/
|
|
- run:
|
|
name: Deploy to S3 (latest)
|
|
command: aws s3 sync newIDE/electron-app/dist s3://gdevelop-releases/$(git rev-parse --abbrev-ref HEAD)/latest/
|