Datasets:
content stringlengths 51 499k | file_path stringlengths 6 120 | file_name stringlengths 5 83 | category stringclasses 16 values | config_type stringclasses 48 values | repo_name stringclasses 814 values | repo_stars int64 179 387k | repo_language stringclasses 43 values | license stringclasses 15 values | quality_score float32 0.24 0.97 | is_generated bool 2 classes |
|---|---|---|---|---|---|---|---|---|---|---|
name: check code snippets
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
check-code-snippets:
name: check-code-snippets
runs-on:
- ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
- name: Validate code snippets
run: |
python ./scripts/check_code_snippets.py .
| .github/workflows/check-code-snippets.yaml | check-code-snippets.yaml | github_actions | github-actions-workflow | 0xAX/linux-insides | 25,863 | Python | noassertion | 0.567 | false |
name: Generate e-books
on:
pull_request:
branches:
- master
workflow_dispatch: {} # For manual runs.
jobs:
build-for-pr:
# For every PR, build the same artifacts and make them accessible from the PR.
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Export all supported book formats from the Docker container
run: |
make run
make export
- name: Copy generated files to host system
run: |
make cp
mkdir -p artifacts/
mv "Linux Inside - 0xAX.epub" \
"Linux Inside - 0xAX.mobi" \
"Linux Inside - 0xAX.pdf" \
"Linux Inside - 0xAX (A5).pdf" \
artifacts/
- name: Upload PR artifacts
uses: actions/upload-artifact@v7
with:
name: ebooks-${{ github.sha }}
path: artifacts/*
if-no-files-found: error
# Change the retention period here if necessary.
retention-days: 7
- name: Add a comment with a link to the generated artifacts.
# For forked PRs the token is read-only; skip commenting to avoid failures.
if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }}
uses: actions/github-script@v8
env:
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
script: |
const body = [
`E-books generated for this pull request available at: ${process.env.RUN_URL}`
].join('\n');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body
});
| .github/workflows/generate-e-books.yaml | generate-e-books.yaml | github_actions | github-actions-workflow | 0xAX/linux-insides | 25,863 | Python | noassertion | 0.6157 | false |
name: Release e-books
on:
push:
tags:
- 'v*.*' # Create a release only when a new tag matching v*.* is pushed.
# To also create a release for each push to the main branch, uncomment the following 2 lines:
# branches:
# - master
workflow_dispatch: {} # For manual runs.
jobs:
release-ebooks:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Export all supported book formats from the Docker container
run: |
make run
make export
- name: Copy generated files to host system
run: |
make cp
mkdir -p artifacts/
mv "Linux Inside - 0xAX.epub" \
"Linux Inside - 0xAX.mobi" \
"Linux Inside - 0xAX.pdf" \
"Linux Inside - 0xAX (A5).pdf" \
artifacts/
cp LICENSE artifacts/
- name: Prepare release metadata
# Use tag name when running on a tag, otherwise fall back to the short commit hash.
id: meta
env:
GITHUB_REF_TYPE: ${{ github.ref_type }}
GITHUB_REF_NAME: ${{ github.ref_name }}
run: |
DATE_UTC="$(date -u '+%m/%d/%Y %H:%M')"
if [ "${GITHUB_REF_TYPE}" = "tag" ] && [ -n "${GITHUB_REF_NAME}" ]; then
LABEL="${GITHUB_REF_NAME}"
else
LABEL="$(git rev-parse --short HEAD)"
fi
echo "release_name=${DATE_UTC} (${LABEL})" >> "$GITHUB_OUTPUT"
echo "tag_name=${LABEL}" >> "$GITHUB_OUTPUT"
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
files: artifacts/*
name: ${{ steps.meta.outputs.release_name }}
tag_name: ${{ steps.meta.outputs.tag_name }}
target_commitish: ${{ github.sha }}
generate_release_notes: true
fail_on_unmatched_files: true
| .github/workflows/release-e-books.yaml | release-e-books.yaml | github_actions | github-actions-workflow | 0xAX/linux-insides | 25,863 | Python | noassertion | 0.6257 | false |
FROM kyselejsyrecek/gitbook:3.2.3
COPY ./ /srv/gitbook/
EXPOSE 4000
WORKDIR /srv/gitbook
CMD ["sh", "-c", "/usr/local/bin/gitbook serve"]
# Examples:
#RUN gitbook pdf
#RUN gitbook epub
| Dockerfile | Dockerfile | dockerfile | dockerfile | 0xAX/linux-insides | 25,863 | Python | noassertion | 0.6812 | false |
### HELP
.PHONY: help
help: ## Print help
@egrep "(^### |^\S+:.*##\s)" Makefile | sed 's/^###\s*//' | sed 's/^\(\S*\)\:.*##\s*\(.*\)/ \1 - \2/'
### DOCKER
.PHONY: run
run: image ## docker run ...
(docker stop linux-insides-book 2>&1) > /dev/null || true
docker run --detach -p 4000:4000 --name linux-insides-book --hostname linux-insides-book linux-insides-book
.PHONY: start
start: ## start the docker container ...
docker start linux-insides-book
.PHONY: image
image: ## docker image build ...
docker image build --rm --squash --label linux-insides --tag linux-insides-book:latest -f Dockerfile . 2> /dev/null || \
docker image build --rm --label linux-insides --tag linux-insides-book:latest -f Dockerfile .
.PHONY: sh
sh: ## run interactive shell inside an already running docker container ...
docker exec -it linux-insides-book bash
.PHONY: rm
rm: ## remove the docker container ...
(docker stop linux-insides-book 2>&1) > /dev/null || true
(docker rm linux-insides-book 2>&1) > /dev/null || true
.PHONY: logs
logs: ## gather logs from the docker container ...
docker logs linux-insides-book
.PHONY: export
export: ## run e-book generation inside an already running docker container ...
docker exec linux-insides-book /bin/bash -c ' \
find . -type f -name '*.svg' -a ! \( -path "./.github/*" -o -path "./_book/*" \) -print0 | while IFS= read -r -d "" svg_file; do \
output_file="$${svg_file%.svg}.png"; \
chapter_dir=$$(dirname $$(dirname "$$svg_file")); \
svg_relative_path="$${svg_file#$$chapter_dir/}"; \
output_relative_path="$${output_file#$$chapter_dir/}"; \
inkscape --export-png="$$output_file" \
--export-area-page \
--export-dpi=150 \
"$$svg_file"; \
find "$$chapter_dir" -maxdepth 1 -type f -name "*.md" -print0 | xargs -0 sed -i "s|\\([/ \\t\\(]\\)$${svg_relative_path}|\\1$${output_relative_path}|g"; \
done; \
gitbook epub; \
gitbook mobi; \
gitbook pdf; \
mv book.pdf book-A4.pdf; \
mv book-A5.json book.json; \
gitbook pdf; \
mv book.pdf book-A5.pdf; \
mv book-A4.pdf book.pdf'
.PHONY: cp
cp: ## copy all exported e-book formats to current working directory ...
docker cp linux-insides-book:/srv/gitbook/book.epub "Linux Inside - 0xAX.epub"
docker cp linux-insides-book:/srv/gitbook/book.mobi "Linux Inside - 0xAX.mobi"
docker cp linux-insides-book:/srv/gitbook/book.pdf "Linux Inside - 0xAX.pdf"
docker cp linux-insides-book:/srv/gitbook/book-A5.pdf "Linux Inside - 0xAX (A5).pdf"
.PHONY: clean
clean: ## remove all exported e-book files ...
rm "Linux Inside - 0xAX.epub" \
"Linux Inside - 0xAX.mobi" \
"Linux Inside - 0xAX.pdf" \
"Linux Inside - 0xAX (A5).pdf"
### LAUNCH BROWSER
.PHONY: browse
browse: ## Launch broweser
@timeout 60 sh -c 'until nc -z 127.0.0.1 4000; do sleep 1; done' || true
@(uname | grep Darwin > /dev/null) && open http://127.0.0.1:4000 || true
@(uname | grep Linux > /dev/null) && xdg-open http://127.0.0.1:4000 || true
| Makefile | Makefile | makefile | makefile | 0xAX/linux-insides | 25,863 | Python | noassertion | 0.6094 | false |
from utils import prompt_constructor, llm_write_file
from config import HIERARCHY, GUIDELINES, WRITE_CODE, CREATE_DOCKER, SINGLEFILE
def create_environment(globals):
''' Create Dockerfile '''
docker_prompt_template = prompt_constructor(HIERARCHY, GUIDELINES, WRITE_CODE, CREATE_DOCKER, SINGLEFILE)
prompt = docker_prompt_template.format(targetlang=globals.targetlang,
sourcelang=globals.sourcelang,
sourceentry=globals.sourceentry,
guidelines=globals.guidelines)
llm_write_file(prompt,
target_path="Dockerfile",
waiting_message="Creating your environment...",
success_message=f"Created Docker environment for {globals.targetlang} project in directory '{globals.targetdir}'.",
globals=globals)
with open('memory/external_dependencies', 'w') as file:
file.write('') | gpt_migrate/steps/setup.py | setup.py | config_python | setup-py | 0xpayne/gpt-migrate | 5,449 | Python | mit | 0.4509 | false |
[tool.poetry]
name = "gpt-migrate"
version = "0.1.0"
description = "Easily migrate your codebase from one framework or language to another."
authors = ["0xpayne"]
[tool.poetry.dependencies]
python = "^3.9"
typer = "^0.9.0"
langchain = "^0.0.238"
yaspin = "^2.3.0"
openai = "^0.27.8"
tree-sitter = "^0.20.1"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api" | pyproject.toml | pyproject.toml | config_python | pyproject | 0xpayne/gpt-migrate | 5,449 | Python | mit | 0.4793 | false |
name: 提交项目(每 24 小时运行一次,晚上 00:00)
on:
schedule:
- cron: '0 16 * * *' # 每天 UTC 16:00 运行(北京时间 00:00)
workflow_dispatch: # 支持手动触发
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6.0.1
- name: Setup Python
uses: actions/setup-python@v6.1.0
with:
python-version: '3.13'
- name: Install dependencies
run: |
pip install PyGithub openai
- name: Run script
env:
PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
# 如果你用的不是 OpenAI 原生接口,可以设置这个环境变量,否则默认使用 OpenAI
LLM_BASE_URL: "https://api.deepseek.com"
run: python .github/scripts/process_item.py | .github/workflows/process_list.yml | process_list.yml | github_actions | github-actions-workflow | 1c7/chinese-independent-developer | 34,002 | 0.5835 | false | ||
[project]
name = "chinese-independent-developer"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"httpx[socks]>=0.28.1",
"openai>=2.14.0",
"pygithub>=2.8.1",
]
| pyproject.toml | pyproject.toml | config_python | pyproject | 1c7/chinese-independent-developer | 34,002 | 0.5347 | false | ||
name: Links validator
on: [push, pull_request]
jobs:
links_validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Ruby 2.6
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Check links
run: |
gem install awesome_bot
awesome_bot pages/*.md --allow 202 --allow-timeout --allow-redirect --allow-ssl --white-list https://www.algolia.com/pricing,https://www.oracle.com/cloud/free/#always-free
| .github/workflows/links-validator.yml | links-validator.yml | github_actions | github-actions-workflow | 255kb/stack-on-a-budget | 9,891 | mit | 0.4821 | false | |
name: docs
on:
push:
paths:
- 'docs/**'
pull_request:
paths:
- 'docs/**'
jobs:
docs:
runs-on: ubuntu-latest
name: build up document and deploy
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install sphinx and manim env
run: |
pip3 install --upgrade pip
sudo apt install python3-setuptools libpango1.0-dev
pip3 install -r docs/requirements.txt
pip3 install -r requirements.txt
- name: Build document with Sphinx
run: |
cd docs
export PATH="$PATH:/home/runner/.local/bin"
export SPHINXBUILD="python3 -m sphinx"
make html
- name: Deploy to GitHub pages
if: ${{ github.event_name == 'push' }}
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
ACCESS_TOKEN: ${{ secrets.DOC_DEPLOY_TOKEN }}
BRANCH: gh-pages
FOLDER: docs/build/html
| .github/workflows/docs.yml | docs.yml | github_actions | github-actions-workflow | 3b1b/manim | 73,304 | Python | mit | 0.5997 | false |
name: Upload Python Package
on:
release:
types: [created]
jobs:
deploy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python: ["py37", "py38", "py39", "py310"]
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine build
- name: Build wheels
run: python setup.py bdist_wheel --python-tag ${{ matrix.python }}
- name: Upload wheels
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload dist/* | .github/workflows/publish.yml | publish.yml | github_actions | github-actions-workflow | 3b1b/manim | 73,304 | Python | mit | 0.58 | false |
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
| docs/Makefile | Makefile | makefile | makefile | 3b1b/manim | 73,304 | Python | mit | 0.778 | false |
[metadata]
name = manimgl
version = 1.7.2
author = Grant Sanderson
author_email= grant@3blue1brown.com
description = Animation engine for explanatory math videos
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8
home_page = https://github.com/3b1b/manim
project_urls =
Bug Tracker = https://github.com/3b1b/manim/issues
Documentation = https://3b1b.github.io/manim/
Source Code = https://github.com/3b1b/manim
license = MIT
classifiers =
Development Status :: 4 - Beta
License :: OSI Approved :: MIT License
Topic :: Scientific/Engineering
Topic :: Multimedia :: Video
Topic :: Multimedia :: Graphics
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3 :: Only
Natural Language :: English
[options]
packages = find:
include_package_data = True
install_requires =
addict
appdirs
audioop-lts; python_version >= "3.13"
colour
diskcache
ipython>=8.18.0
isosurfaces
fontTools
manimpango>=0.6.0
mapbox-earcut
matplotlib
moderngl
moderngl_window
numpy
Pillow
pydub
pygments
PyOpenGL
pyperclip
pyyaml
rich
scipy
screeninfo
setuptools
skia-pathops
svgelements>=1.8.1
sympy
tqdm
typing-extensions; python_version < "3.11"
validators
[options.entry_points]
console_scripts =
manimgl = manimlib.__main__:main
manim-render = manimlib.__main__:main
| setup.cfg | setup.cfg | config_python | setup-cfg | 3b1b/manim | 73,304 | Python | mit | 0.6497 | false |
# CircleCI configuration to build GDevelop app running
# on the Electron runtime (newIDE/electron-app) for macOS and Linux.
# For Windows, see the appveyor.yml file.
# This also builds GDevelop.js and store it on a S3 so it can be used to run
# GDevelop without building it from scratch.
# Note that these CircleCI builds/tests are not launched on Pull Requests from forks,
# to avoid sharing secrets.
version: 2.1
orbs:
aws-cli: circleci/aws-cli@2.0.6
macos: circleci/macos@2.5.1 # For Rosetta (see below)
node: circleci/node@7.1.0 # For a recent npm version (see below)
win: circleci/windows@5.1.0
jobs:
# Build the **entire** app for macOS (including the GDevelop.js library).
build-macos:
macos:
xcode: 16.4.0
resource_class: m4pro.medium
steps:
- checkout
# Install Rosetta for AWS CLI and disable TSO to speed up S3 uploads (https://support.circleci.com/hc/en-us/articles/19334402064027-Troubleshooting-slow-uploads-to-S3-for-jobs-using-an-m1-macOS-resource-class)
- macos/install-rosetta
# - run: sudo sysctl net.inet.tcp.tso=0
# Install a recent version of npm to workaround a notarization issue because of a symlink made by npm: https://github.com/electron-userland/electron-builder/issues/7755
# Node.js v20.14.0 comes with npm v10.7.0.
- node/install:
node-version: "20.14.0"
# System dependencies (for Emscripten and upload)
- run:
name: Install dependencies for Emscripten
command: brew install cmake
- run:
name: Install dependencies for AWS S3 upload
command: curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" && sudo installer -pkg AWSCLIV2.pkg -target /
- run:
name: Install Emscripten (for GDevelop.js)
command: git clone https://github.com/juj/emsdk.git && cd emsdk && ./emsdk install 3.1.21 && ./emsdk activate 3.1.21 && cd ..
# GDevelop.js dependencies
- restore_cache:
keys:
- gd-macos-nodejs-dependencies-v2-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}-{{ checksum "GDJS/package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- gd-macos-nodejs-dependencies-v2-
- run:
name: Install GDevelop.js dependencies
command: cd GDevelop.js && npm install && cd ..
# Build GDevelop.js (and run tests to ensure it works)
- 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
- GDJS/node_modules
key: gd-macos-nodejs-dependencies-v2-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}-{{ checksum "GDJS/package-lock.json" }}
# Build GDevelop IDE (seems like we need to allow Node.js to use more space than usual)
# Note: Code signing is done using CSC_LINK (see https://www.electron.build/code-signing).
# To test signing the code in the CI, add "export CSC_FOR_PULL_REQUEST=true && " before the command.
- run:
name: Build GDevelop IDE
command: export CSC_FOR_PULL_REQUEST=true && export NODE_OPTIONS="--max-old-space-size=7168" && cd newIDE/electron-app && CI=false npm run build -- --mac --publish=never
- run:
name: Clean dist folder to keep only installers/binaries.
command: rm -rf "newIDE/electron-app/dist/mac-universal/GDevelop 5.app"
# Upload artifacts (CircleCI)
- store_artifacts:
path: newIDE/electron-app/dist
# Upload artifacts (AWS)
- run:
name: Deploy to S3 (specific commit)
command: |
export PATH=~/.local/bin:$PATH
for i in 1 2 3 4 5 6 7; do
aws s3 sync newIDE/electron-app/dist s3://gdevelop-releases/$(git rev-parse --abbrev-ref HEAD)/commit/$(git rev-parse HEAD)/ && break
echo "Retry $i failed... retrying in 10 seconds"
sleep 10
done
if [ $i -eq 7 ]; then
echo "All retries for deployment failed!" >&2
exit 1
fi
- run:
name: Deploy to S3 (latest)
command: |
export PATH=~/.local/bin:$PATH
for i in 1 2 3 4 5 6 7; do
aws s3 sync newIDE/electron-app/dist s3://gdevelop-releases/$(git rev-parse --abbrev-ref HEAD)/latest/ && break
echo "Retry $i failed... retrying in 10 seconds"
sleep 10
done
if [ $i -eq 7 ]; then
echo "All retries for deployment failed!" >&2
exit 1
fi
# Build the app for Linux (using a pre-built GDevelop.js library).
build-linux:
# CircleCI docker workers are failing if they don't have enough memory (no swap)
resource_class: xlarge
docker:
- image: cimg/node:24.13.0
working_directory: ~/GDevelop
steps:
- checkout
- aws-cli/setup
# System dependencies (for Electron Builder)
- run:
name: Update system dependencies
command: sudo apt-get update
- run:
name: Install system dependencies for Electron builder
command: sudo apt install icnsutils && sudo apt install graphicsmagick && sudo apt install rsync
- restore_cache:
keys:
- gd-linux-nodejs-dependencies-v2-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}-{{ checksum "GDJS/package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- gd-linux-nodejs-dependencies-v2-
# GDevelop IDE dependencies (using an exact version of GDevelop.js, built previously)
- run:
name: Install GDevelop IDE dependencies
command: export REQUIRES_EXACT_LIBGD_JS_VERSION=true && 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
- GDJS/node_modules
key: gd-linux-nodejs-dependencies-v2-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}-{{ checksum "GDJS/package-lock.json" }}
# Build GDevelop IDE (seems like we need to allow Node.js to use more space than usual)
- run:
name: Build GDevelop IDE
command: export NODE_OPTIONS="--max-old-space-size=7168" && cd newIDE/electron-app && npm run build -- --linux --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/linux-arm64-unpacked
# 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/
# Build the WebAssembly library only (so that it's cached on a S3 and easy to re-use).
build-gdevelop_js-wasm-only:
resource_class: medium+ # Compilation time decrease linearly with the number of CPUs, but not linking (so "large" does not speedup total build time).
docker:
- image: cimg/node:24.13.0
working_directory: ~/GDevelop
steps:
- checkout
- aws-cli/setup
# System dependencies (for Emscripten)
- run:
name: Install dependencies for Emscripten
command: sudo apt-get update && sudo apt install cmake
- run:
name: Install Emscripten (for GDevelop.js)
command: git clone https://github.com/juj/emsdk.git && cd emsdk && ./emsdk install 3.1.21 && ./emsdk activate 3.1.21 && cd ..
# GDevelop.js dependencies
- restore_cache:
keys:
- gdevelop.js-linux-nodejs-dependencies-v2-{{ checksum "GDevelop.js/package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- gdevelop.js-linux-nodejs-dependencies-v2-
- run:
name: Install GDevelop.js dependencies and build it
command: cd GDevelop.js && npm install && cd ..
# Build GDevelop.js (and run tests to ensure it works)
- run:
name: Build GDevelop.js
# Use "--runInBand" as it's faster and avoid deadlocks on CircleCI Linux machines (probably because limited in processes number).
command: cd GDevelop.js && source ../emsdk/emsdk_env.sh && npm run build && npm test -- --runInBand && cd ..
- save_cache:
paths:
- GDevelop.js/node_modules
key: gdevelop.js-linux-nodejs-dependencies-v2-{{ checksum "GDevelop.js/package-lock.json" }}
# Upload artifacts (CircleCI)
- store_artifacts:
path: Binaries/embuild/GDevelop.js
# Upload artifacts (AWS)
- run:
name: Deploy to S3 (specific commit)
command: aws s3 sync Binaries/embuild/GDevelop.js s3://gdevelop-gdevelop.js/$(git rev-parse --abbrev-ref HEAD)/commit/$(git rev-parse HEAD)/
- run:
name: Deploy to S3 (latest)
command: aws s3 sync Binaries/embuild/GDevelop.js s3://gdevelop-gdevelop.js/$(git rev-parse --abbrev-ref HEAD)/latest/
# Build the WebAssembly library with clang-tidy and memory sanitizers.
build-gdevelop_js-debug-sanitizers-and-extra-checks:
resource_class: xlarge # Total time decrease linearly with the number of CPUs.
docker:
- image: cimg/node:24.13.0
working_directory: ~/GDevelop
steps:
- checkout
- aws-cli/setup
# System dependencies (for Emscripten)
- run:
name: Install dependencies for Emscripten
command: sudo apt-get update && sudo apt install cmake
- run:
name: Install dependencies for clang-tidy v19
command: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 19 && sudo apt install clang-tidy-19
- run:
name: Install Emscripten (for GDevelop.js)
command: git clone https://github.com/juj/emsdk.git && cd emsdk && ./emsdk install 3.1.21 && ./emsdk activate 3.1.21 && cd ..
# GDevelop.js dependencies
- restore_cache:
keys:
- gdevelop.js-linux-nodejs-dependencies-v2-{{ checksum "GDevelop.js/package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- gdevelop.js-linux-nodejs-dependencies-v2-
- run:
name: Install GDevelop.js dependencies and build it
command: cd GDevelop.js && npm install && cd ..
# Build GDevelop.js
- run:
name: Build GDevelop.js ('debug-sanitizers' variant)
command: cd GDevelop.js && source ../emsdk/emsdk_env.sh && npm run build -- --variant=debug-sanitizers
- run:
name: Run clang-tidy
command: cd GDevelop.js && npm run lint
- run:
name: Run tests
command: cd GDevelop.js && npm run test -- --maxWorkers=4
# Upload artifacts (CircleCI)
- store_artifacts:
path: Binaries/embuild/GDevelop.js
# Upload artifacts (AWS)
- run:
name: Deploy to S3 (specific commit)
command: aws s3 sync Binaries/embuild/GDevelop.js s3://gdevelop-gdevelop.js/$(git rev-parse --abbrev-ref HEAD)/variant/debug-sanitizers/commit/$(git rev-parse HEAD)/
# Trigger AppVeyor build, which also does a Windows build (keep it for redundancy).
trigger-appveyor-windows-build:
docker:
- image: cimg/base:current
steps:
- run:
name: Trigger AppVeyor Windows build
command: |
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer ${APPVEYOR_API_KEY}" \
--data "{
\"accountName\": \"4ian\",
\"projectSlug\": \"gdevelop\",
\"branch\": \"${CIRCLE_BRANCH}\"
}" \
-X POST https://ci.appveyor.com/api/builds
build-windows:
executor:
name: win/default
size: medium
working_directory: /home/circleci/project
steps:
- checkout
- run:
# See https://www.ssl.com/how-to/how-to-integrate-esigner-cka-with-ci-cd-tools-for-automated-code-signing/
#
# This is necessary because of "signing to be FIPS-140 compliant". See
# https://github.com/electron-userland/electron-builder/issues/6158
#
# Make sure to DISABLE "malware blocker" in SSL.com to avoid errors like:
# Error information: "Error: SignerSign() failed." (-2146893821/0x80090003)
name: Download and Unzip eSignerCKA Setup
command: |
Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"
Expand-Archive -Force eSigner_CKA_1.0.3.zip
Remove-Item eSigner_CKA_1.0.3.zip
Move-Item -Destination "eSigner_CKA_1.0.3.exe" -Path "eSigner_CKA_*\*.exe"
- run:
name: Setup eSignerCKA in Silent Mode
command: |
mkdir -p "/home/circleci/project/eSignerCKA"
./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR="/home/circleci/project/eSignerCKA" | Out-Null
- run:
name: Config Account Information on eSignerCKA
command: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode product -user "$env:ESIGNER_USER_NAME" -pass "$env:ESIGNER_USER_PASSWORD" -totp "$env:ESIGNER_USER_TOTP" -key "/home/circleci/project/eSignerCKA/master.key" -r
- run:
name: Load Certificate into Windows Store
command: |
/home/circleci/project/eSignerCKA/eSignerCKATool.exe unload
/home/circleci/project/eSignerCKA/eSignerCKATool.exe load
- run:
name: Select Certificate From Windows Store and Sign Sample File with SignTool
command: |
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
echo Certificate: $CodeSigningCert
- restore_cache:
name: Restore node_modules cache
keys:
- v2-win-node-{{ checksum "newIDE/app/package-lock.json" }}-{{ checksum "newIDE/electron-app/package-lock.json" }}-{{ checksum "GDJS/package-lock.json" }}
- v2-win-node-
- run:
name: Install dependencies
no_output_timeout: 25m
# Remove package-lock.json because they seems to cause the npm install to be stuck. We should try again after re-generating them.
# Also install setuptools as something requires distutils in electron-app, and it was removed in Python 3.12.
# setuptools will make distutils available again (but we should migrate our packages probably).
command: |
pip install setuptools
cd newIDE\app
npm -v
Remove-Item package-lock.json
$Env:REQUIRES_EXACT_LIBGD_JS_VERSION = "true"
npm install
cd ..\electron-app
Remove-Item package-lock.json
npm install
cd ..\..
- save_cache:
name: Save node_modules cache
key: v2-win-node-{{ checksum "newIDE/app/package-lock.json" }}-{{ checksum "newIDE/electron-app/package-lock.json" }}-{{ checksum "GDJS/package-lock.json" }}
paths:
- newIDE/app/node_modules
- newIDE/electron-app/node_modules
- GDJS/node_modules
- run:
name: Build NSIS executable (with code signing)
command: |
cd newIDE\electron-app
$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
echo Certificate: $CodeSigningCert
# Use a custom signtool path because of the signtool.exe bundled withy electron-builder not working for some reason.
# Can also be found in versioned folders like "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22000.0/x86/signtool.exe".
# or "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\signtool.exe".
$Env:SIGNTOOL_PATH = "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe"
# Extract thumbprint and subject name of the certificate (will be passed to electron-builder).
$Env:GD_SIGNTOOL_THUMBPRINT = $CodeSigningCert.Thumbprint
$Env:GD_SIGNTOOL_SUBJECT_NAME = ($CodeSigningCert.Subject -replace ", ?", "`n" | ConvertFrom-StringData).CN
# Build the nsis installer (signed: electron-builder will use SignTool.exe with the certificate)
node scripts/build.js --win nsis --publish=never
cd ..\..
- run:
name: Build AppX (without code signing)
# Don't sign the appx (it will be signed by the Microsoft Store).
command: |
cd newIDE\electron-app
# Build the appx (not signed). Ensure all variables used for code signing are empty.
$Env:GD_SIGNTOOL_THUMBPRINT = ''
$Env:GD_SIGNTOOL_SUBJECT_NAME = ''
$Env:CSC_LINK = ''
$Env:CSC_KEY_PASSWORD = ''
node scripts/build.js --skip-app-build --win appx --publish=never
cd ..\..
- run:
name: Clean binaries
shell: cmd.exe
command: |
rmdir /s /q newIDE\electron-app\dist\win-unpacked
- run:
name: Install AWS CLI
command: |
# Install the CLI for the current user
pip install --quiet --upgrade --user awscli
# Add the user-Scripts dir to PATH for this step and the next.
$binDir = (python -m site --user-base) + "\Scripts"
$Env:Path += ";$binDir"
# Sanity check:
aws --version
# Upload artifacts (S3)
- run:
name: Deploy to S3 (specific commit)
command: |
aws s3 sync newIDE\electron-app\dist "s3://gdevelop-releases/$Env:CIRCLE_BRANCH/commit/$Env:CIRCLE_SHA1/"
- run:
name: Deploy to S3 (latest)
command: |
aws s3 sync newIDE\electron-app\dist "s3://gdevelop-releases/$Env:CIRCLE_BRANCH/latest/"
# Upload artifacts (CircleCI)
- store_artifacts:
path: newIDE/electron-app/dist
workflows:
gdevelop_js-wasm-extra-checks:
jobs:
- build-gdevelop_js-debug-sanitizers-and-extra-checks:
# Extra checks are resource intensive so don't always run them.
filters:
branches:
only:
- master
- stable
- /experimental-build.*/
builds:
jobs:
- build-gdevelop_js-wasm-only
- build-macos:
# The macOS version builds by itself GDevelop.js
# (so we verify we can build it on macOS).
# requires:
# - build-gdevelop_js-wasm-only
filters:
branches:
only:
- master
- stable
- /experimental-build.*/
- build-linux:
requires:
- build-gdevelop_js-wasm-only
filters:
branches:
only:
- master
- stable
- /experimental-build.*/
- build-windows:
requires:
- build-gdevelop_js-wasm-only
filters:
branches:
only:
- master
- stable
- /experimental-build.*/
- trigger-appveyor-windows-build:
requires:
- build-gdevelop_js-wasm-only
filters:
branches:
only:
- master
- stable
- /experimental-build.*/
| .circleci/config.yml | config.yml | ci | ci | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.7028 | false |
# GitHub Action to build the Storybook of the editor and publish it for testing.
#
# Note that only the Storybook is built and GDevelop.js is not rebuilt (for speed concerns),
# so changes in the C++ source could not be reflected if the CI run by Travis-CI
# did not upload a freshly built GDevelop.js.
name: Build Storybook
on:
# Launch on all commits.
push:
branches:
- "**"
tags-ignore:
- "**" # Don't run on new tags
# Allows to run this workflow manually from the Actions tab,
# to publish on Chromatic (not done by default).
workflow_dispatch:
jobs:
build-storybook:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
cache-dependency-path: "newIDE/app/package-lock.json"
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.BUILD_STORYBOOK_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.BUILD_STORYBOOK_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Install newIDE dependencies
run: npm install
working-directory: newIDE/app
- name: Build Storybook
run: npm run build-storybook
working-directory: newIDE/app
# Publish on S3 to allow quick testing of components.
- name: Publish Storybook to S3 bucket (specific commit)
run: aws s3 sync ./build-storybook/ s3://gdevelop-storybook/$(git rev-parse --abbrev-ref HEAD)/commit/$(git rev-parse HEAD)/ --delete
working-directory: newIDE/app
- name: Publish Storybook to S3 bucket (latest)
run: aws s3 sync ./build-storybook/ s3://gdevelop-storybook/$(git rev-parse --abbrev-ref HEAD)/latest/ --delete
working-directory: newIDE/app
- name: Log urls to the Storybook
run: |
echo "Find the latest Storybook for this branch on https://gdevelop-storybook.s3.amazonaws.com/$(git rev-parse --abbrev-ref HEAD)/latest/index.html"
echo "Find the Storybook for this commit on https://gdevelop-storybook.s3.amazonaws.com/$(git rev-parse --abbrev-ref HEAD)/commit/$(git rev-parse HEAD)/index.html"
# Publish on Chromatic, only when manually launched (too costly to run on every commit).
- name: Publish Storybook to Chromatic
if: github.event_name == 'workflow_dispatch'
uses: chromaui/action@v1
with:
workingDir: newIDE/app
storybookBuildDir: "build-storybook"
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
| .github/workflows/build-storybook.yml | build-storybook.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.638 | false |
# GitHub Action to extract translations and (later) upload them to Crowdin.
name: Extract translations
on:
# Execute for all commits (to ensure translations extraction works)
push:
branches:
- "**"
tags-ignore:
- "**" # Don't run on new tags
# Allows to run this workflow manually from the Actions tab.
workflow_dispatch:
jobs:
extract-translations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
cache-dependency-path: "newIDE/app/package-lock.json"
- name: Install gettext
run: sudo apt update && sudo apt install gettext -y
- name: Install newIDE dependencies
run: npm ci
working-directory: newIDE/app
- name: Extract translations
run: npm run extract-all-translations
working-directory: newIDE/app
# Only upload on Crowdin for the master branch
- name: Install Crowdin CLI
if: github.ref == 'refs/heads/master'
run: npm i -g @crowdin/cli
- name: Upload translations to Crowdin
run: crowdin upload sources
if: github.ref == 'refs/heads/master'
env:
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
| .github/workflows/extract-translations.yml | extract-translations.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.5875 | false |
# This worflow notifies arthuro555's gdcore-tools repository when a new release is published.
#
# This is used to allow gdcore-tools, a library to use GDCore outside of GDevelop,
# to attempt to automatically build, test, and publish a release for the new
# GDevelop version.
name: Trigger gdcore-tools pipeline
on:
release:
types: [published]
jobs:
dispatch-event:
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.GDCORE_TOOLS_PAT }}
repository: arthuro555/gdcore-tools
event-type: gdevelop-release
client-payload: '{"release": ${{ toJson(github.event.release) }}}'
| .github/workflows/gdcore-tools-hook.yml | gdcore-tools-hook.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6609 | false |
name: GDevelop Issues automatic workflow
on:
issues:
types: [opened]
jobs:
autocomment:
runs-on: ubuntu-latest
if: contains(github.event.issue.body, 'The node to be removed is not a child of this node')
steps:
- name: Autocomment indications on bug if it looks like #3453
uses: peter-evans/create-or-update-comment@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
Hi @${{ github.actor }}!
Thank you for taking the time to open an issue.
The solved issue #3453 mentioned a similar error, maybe it could help fix this new issue.
| .github/workflows/issues.yml | issues.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.5225 | false |
name: GDevelop Issues automatic workflow
on:
pull_request:
types:
- opened
- reopened
- synchronize
jobs:
read-locales-metadata:
if: github.event.pull_request.title == '[Auto PR] Update translations'
runs-on: ubuntu-latest
env:
COMMENT_TITLE: "Translation ratio changes"
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Read and format locales metadata
env:
BASE: ${{ github.event.pull_request.base.sha }}
HEAD: ${{ github.event.pull_request.head.sha }}
run: |
LANS=($(git diff $BASE...$HEAD -- newIDE/app/src/locales/LocalesMetadata.js | grep -E "^\s+\"languageName" | sed -E "s/^ *\"languageName\": \"//g" | sed -E "s/\",//g" | sed -E "s/ /_/g"))
ADDS=($(git diff $BASE...$HEAD -- newIDE/app/src/locales/LocalesMetadata.js | grep -E "^\+\s*\"translationRatio\"" | sed -E "s/^\+ *\"translationRatio\": //g"))
SUBS=($(git diff $BASE...$HEAD -- newIDE/app/src/locales/LocalesMetadata.js | grep -E "^\-\s*\"translationRatio\"" | sed -E "s/^\- *\"translationRatio\": //g"))
touch sumup.md
echo "## $COMMENT_TITLE" >> sumup.md
echo "" >> sumup.md
echo "| Language | Change |" >> sumup.md
echo "| --- | --- |" >> sumup.md
for index in ${!ADDS[@]}; do
DELTA=$(echo "scale=3; (${ADDS[index]} - ${SUBS[index]})*100/1" | bc)
if (( $(echo "$DELTA == 0" | bc -l) )); then
continue
fi
LANGUAGE=${LANS[index]//_/ }
echo "| $LANGUAGE | $(printf "%1.3f" $DELTA) % |" >> sumup.md
done
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
with:
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.number }}
body-includes: ${{ env.COMMENT_TITLE }}
- name: Autocomment pull request with sumup
uses: peter-evans/create-or-update-comment@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.number }}
comment-id: ${{ steps.fc.outputs.comment-id }}
edit-mode: replace
body-path: "sumup.md"
| .github/workflows/pull-requests.yml | pull-requests.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.5769 | false |
# GitHub Action to update extension translations.
# It copies the latest messages.js files from the GDevelop-extensions repository
# and opens a Pull Request with the changes on GDevelop's repository.
name: Update extension translations
on:
push:
branches:
- master
tags-ignore:
- "**" # Don't run on new tags
workflow_dispatch: # Allows manual triggering from the Actions tab
jobs:
update-extension-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout current repository
uses: actions/checkout@v3
- name: Clone GDevelop-extensions repository
run: git clone https://github.com/GDevelopApp/GDevelop-extensions.git /tmp/GDevelop-extensions
- name: Copy and rename translation files
run: |
mkdir -p newIDE/app/src/locales
for folder in /tmp/GDevelop-extensions/.translations/*; do
if [ -d "$folder" ]; then
lang=$(basename "$folder")
mkdir -p "newIDE/app/src/locales/$lang"
cp "$folder/messages.js" "newIDE/app/src/locales/$lang/extension-messages.js"
fi
done
cp /tmp/GDevelop-extensions/.translations/LocalesMetadata.js newIDE/app/src/locales/ExtensionLocalesMetadata.js
- name: Create Pull Request with updated translations
uses: peter-evans/create-pull-request@v6
with:
commit-message: Update extension translations [skip ci]
branch: chore/update-extension-translations
delete-branch: true
title: "[Auto PR] Update extension translations"
body: |
This updates the extension translations by copying the latest messages.js files from the GDevelop-extensions repository.
Each messages.js file is renamed to extension-messages.js and placed in the corresponding language folder under `newIDE/app/src/locales`.
Please review the changes carefully before merging.
| .github/workflows/update-extension-translations.yml | update-extension-translations.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.5801 | false |
# GitHub Action to update translations by downloading them from Crowdin,
# and open a Pull Request with the changes.
name: Update translations
on:
# Execute only on master
push:
branches:
- master
tags-ignore:
- "**" # Don't run on new tags
# Allows to run this workflow manually from the Actions tab.
workflow_dispatch:
jobs:
update-translations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
cache: "npm"
cache-dependency-path: "newIDE/app/package-lock.json"
- name: Install gettext
run: sudo apt update && sudo apt install gettext -y
- name: Install newIDE dependencies
run: npm install
working-directory: newIDE/app
# We need to extract translations first to make sure all the source strings
# are included in the English catalogs. Otherwise, missing source strings
# with parameters (like "My name is {0}.") would be shown as-is when
# the app is built (but not in development - unclear why, LinguiJS issue?).
- name: Extract translations
run: npm run extract-all-translations
working-directory: newIDE/app
# (Build and) download the most recent translations (PO files) from Crowdin.
- name: Install Crowdin CLI
run: npm i -g @crowdin/cli
- name: Download new translations from Crowdin
run: crowdin download
env:
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# Seems like the three letters code is not handled properly by LinguiJS?
# Do without this language while we find a solution.
- name: Remove catalogs not handled properly by LinguiJS compile command.
run: rm -rf newIDE/app/src/locales/pcm_NG/
- name: Compile translations into .js files that are read by LinguiJS
run: npm run compile-translations
working-directory: newIDE/app
- name: Create a Pull Request with the changes
uses: peter-evans/create-pull-request@v6
with:
commit-message: Update translations [skip ci]
branch: chore/update-translations
delete-branch: true
title: "[Auto PR] Update translations"
body: |
This updates the translations by downloading them from Crowdin and compiling them for usage by the app.
Please double check the values in `newIDE/app/src/locales/LocalesMetadata.js` to ensure the changes are sensible.
| .github/workflows/update-translations.yml | update-translations.yml | github_actions | github-actions-workflow | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6471 | false |
# Travis CI configuration to build and run all tests
# (and typing/formatting) for the Core, newIDE, GDJS.
#
# See also Semaphore CI for quick tests (not building GDevelop.js, so
# faster but not always reliable).
dist: noble # Ubuntu 24.04 LTS
language: cpp
sudo: false
compiler:
- clang
# Cache .npm folder for faster npm install
cache:
directories:
- $HOME/.npm
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
# Build dependencies:
- cmake
- p7zip-full
# Install libstdc++ dev for clang linking
- libstdc++-14-dev
install:
# Ensure we use a recent version of Node.js (and npm).
- nvm install v16 && nvm use v16
#Compile the tests only for GDCore
- mkdir .build-tests
- cd .build-tests
- cmake -DBUILD_GDJS=FALSE -DBUILD_TESTS=TRUE -DCMAKE_CXX_COMPILER=$(which $CXX) -DCMAKE_C_COMPILER=$(which $CC) ..
- make -j 4
- cd ..
# Install Emscripten (for GDevelop.js)
# Specify the tag for the core repository to avois breaking changes.
- git clone --depth 1 --branch 3.1.21 https://github.com/juj/emsdk.git
- cd emsdk && ./emsdk install 3.1.21 && ./emsdk activate 3.1.21 && cd ..
# Install GDevelop.js dependencies
- cd GDevelop.js && npm install && cd ..
# Build GDevelop.js
# (in a subshell to avoid Emscripten polluting the Node.js and npm version for the rest of the build)
- (set -e; cd GDevelop.js && source ../emsdk/emsdk_env.sh && npm run build && cd ..)
# Install newIDE tests dependencies
- npm -v
- cd newIDE/app && npm install
- cd ../..
# Install GDJS tests dependencies
- cd GDJS && npm install && cd tests && npm install
- cd ../..
script:
# GDCore tests:
- cd .build-tests
- Core/GDCore_tests
- cd ..
# GDevelop.js tests
- cd GDevelop.js
- npm test
- cd ..
# newIDE tests:
- cd newIDE/app
- npm test
- npm run flow
- npm run check-format
- npm run check-script-types
- cd ../..
# GDJS tests:
- cd GDJS
- npm run check-format
- cd ..
# GDJS game engine tests, disabled on Travis CI because ChromeHeadless can't be started.
# See them running on Semaphore-CI instead: https://gdevelop.semaphoreci.com/projects/GDevelop
# - cd GDJS/tests && npm test
# - cd ../..
| .travis.yml | .travis.yml | ci | travis | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.7768 | false |
# This is the CMake file used to build GDevelop.
# For more information, see the README.md file.
cmake_minimum_required(VERSION 3.5)
# Add utility functions
include(scripts/CMakeClangUtils.txt) # To add clang-format and clang-tidy support to a target
# Macro for defining an option
macro(gd_set_option var default type docstring)
if(NOT DEFINED ${var})
set(${var} ${default})
endif()
set(${var} ${${var}} CACHE ${type} ${docstring} FORCE)
endmacro()
# Set options
gd_set_option(BUILD_CORE TRUE BOOL "TRUE to build GDevelop Core library")
gd_set_option(BUILD_GDJS TRUE BOOL "TRUE to build GDevelop JS Platform")
gd_set_option(BUILD_EXTENSIONS TRUE BOOL "TRUE to build the extensions")
gd_set_option(BUILD_TESTS TRUE BOOL "TRUE to build the tests")
# Disable deprecated code
set(NO_GUI TRUE CACHE BOOL "" FORCE) # Force disable old GUI related code.
# Setting up installation directory, for Linux (has to be done before "project" command).
if(NOT WIN32)
if(NOT APPLE)
gd_set_option(GD_INSTALL_PREFIX "/opt/gdevelop/" STRING "The directory where GDevelop should be installed")
else()
gd_set_option(GD_INSTALL_PREFIX "." STRING "The directory where GDevelop should be installed")
endif()
# As we embed SFML, prevent it to be installed system-wide
set(CMAKE_INSTALL_PREFIX "${GD_INSTALL_PREFIX}/useless")
endif()
project(GDevelop)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT WIN32 AND NOT APPLE AND NOT BUILD_TESTS)
set(CMAKE_SKIP_BUILD_RPATH TRUE) # Avoid errors when packaging for linux.
endif()
if(APPLE)
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
set(CMAKE_INSTALL_RPATH ".")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
add_compile_options(
-D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_
-Wno-potentially-evaluated-expression)
endif()
# Sanity checks
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
message(STATUS "CMAKE_BUILD_TYPE is empty, assuming build type is Release")
set(CMAKE_BUILD_TYPE Release)
endif()
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_SHARED_LINKER_FLAGS "-s") # Force stripping to avoid errors when packaging for linux.
endif()
#Activate C++11
set(CMAKE_CXX_STANDARD 11) # Upgrading to C++17 should be tried.
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Mark some warnings as errors
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# Activate as much warnings as possible to avoid errors like
# uninitialized variables or other hard to debug bugs.
add_compile_options(
-Wall
-Wextra
-Wuninitialized
-Wconditional-uninitialized
-Wno-unknown-warning-option
-Wno-reorder-ctor
-Wno-reorder
-Wno-unused-parameter
-Wno-pessimizing-move
-Wno-unused-variable # Not a good style, but not a risk
-Wno-unused-private-field
-Wno-ignored-qualifiers # Not a risk
-Wno-sign-compare # Not a big risk
# Make as much warnings considered as errors as possible (only one for now).
-Werror=return-stack-address
-Werror=return-type)
endif()
# Define common directories:
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR})
# Add all the CMakeLists:
add_subdirectory(ExtLibs)
if(BUILD_CORE)
add_subdirectory(Core)
endif()
if(BUILD_GDJS)
add_subdirectory(GDJS)
endif()
if(EMSCRIPTEN)
add_subdirectory(GDevelop.js)
endif()
if(BUILD_EXTENSIONS)
add_subdirectory(Extensions)
endif()
| CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6661 | false |
cmake_minimum_required(VERSION 3.5)
project(GDCore)
set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) # Force use response file: useful for Ninja build system on Windows.
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)
set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1)
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1)
# Define common directories:
set(GDCORE_include_dir ${GD_base_dir}/Core PARENT_SCOPE)
set(GDCORE_lib_dir ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME} PARENT_SCOPE)
# Create VersionPriv.h - only useful for testing.
if (NOT EMSCRIPTEN)
file(WRITE "${GD_base_dir}/Core/GDCore/Tools/VersionPriv.h" "#define GD_VERSION_STRING \"0.0.0-0\"")
endif()
# Dependencies on external libraries:
#
# Defines
#
add_definitions(-DGD_IDE_ONLY)
if(EMSCRIPTEN)
add_definitions(-DEMSCRIPTEN)
endif()
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
add_definitions(-DDEBUG)
else()
add_definitions(-DRELEASE)
endif()
if(WIN32)
add_definitions(-DWINDOWS)
add_definitions("-DGD_CORE_API=__declspec(dllexport)")
add_definitions(-D__GNUWIN32__)
else()
if(APPLE)
add_definitions(-DMACOS)
else()
add_definitions(-DLINUX)
endif()
add_definitions(-DGD_API=)
add_definitions(-DGD_CORE_API=)
endif()
# The target
#
include_directories(.)
file(
GLOB_RECURSE
source_files
GDCore/*)
file(
GLOB_RECURSE
formatted_source_files
tests/*
GDCore/Events/*
GDCore/Extensions/*
GDCore/IDE/*
GDCore/Project/*
GDCore/Serialization/*
GDCore/Tools/*)
list(
REMOVE_ITEM
formatted_source_files
"${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.h"
"${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs_dialogs_bitmaps.cpp")
gd_add_clang_utils(GDCore "${formatted_source_files}")
if(EMSCRIPTEN)
# Emscripten treats all libraries as static libraries
add_library(GDCore STATIC ${source_files})
else()
add_library(GDCore SHARED ${source_files})
endif()
if(EMSCRIPTEN)
set_target_properties(GDCore PROPERTIES SUFFIX ".bc")
elseif(WIN32)
set_target_properties(GDCore PROPERTIES PREFIX "")
else()
set_target_properties(GDCore PROPERTIES PREFIX "lib")
endif()
set(LIBRARY_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(ARCHIVE_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
set(RUNTIME_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME})
# Tests
#
if(BUILD_TESTS)
file(
GLOB_RECURSE
test_source_files
tests/*)
add_executable(GDCore_tests ${test_source_files})
set_target_properties(GDCore_tests PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE) # Allow finding dependencies directly from build path on Mac OS X.
target_link_libraries(GDCore_tests GDCore)
target_link_libraries(GDCore_tests ${CMAKE_DL_LIBS})
endif()
| Core/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6413 | false |
cmake_minimum_required(VERSION 3.5)
project(Scene3D)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(Scene3D)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(Scene3D "${source_files}")
gd_add_extension_target(Scene3D "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(Scene3D)
| Extensions/3D/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(AnchorBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(AnchorBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(AnchorBehavior "${source_files}")
gd_add_extension_target(AnchorBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(AnchorBehavior)
| Extensions/AnchorBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
# This is the CMake file used to build the C++ extensions.
# For more information, see the README.md file.
cmake_minimum_required(VERSION 3.5)
project(GD-Extensions)
include(CMakeUtils.txt) # Functions to factor common tasks done in CMakeLists.txt of extensions
# List of non pure JS extensions
set(
GD_EXTENSIONS
3D
AnchorBehavior
DestroyOutsideBehavior
DraggableBehavior
Inventory
LinkedObjects
PanelSpriteObject
ParticleSystem
PathfindingBehavior
PhysicsBehavior
PlatformBehavior
PrimitiveDrawing
Shopify
SystemInfo
TextEntryObject
TextObject
TiledSpriteObject
Spine
TopDownMovementBehavior)
# Automatically add all listed extensions
foreach(extension ${GD_EXTENSIONS})
add_subdirectory(${extension})
endforeach()
| Extensions/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6031 | false |
cmake_minimum_required(VERSION 3.5)
project(DestroyOutsideBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(DestroyOutsideBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(DestroyOutsideBehavior "${source_files}")
gd_add_extension_target(DestroyOutsideBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(DestroyOutsideBehavior GDCore)
| Extensions/DestroyOutsideBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(DraggableBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(DraggableBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(DraggableBehavior "${source_files}")
gd_add_extension_target(DraggableBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(DraggableBehavior)
| Extensions/DraggableBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(Inventory)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(Inventory)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(Inventory "${source_files}")
gd_add_extension_target(Inventory "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(Inventory)
| Extensions/Inventory/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(LinkedObjects)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(LinkedObjects)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(LinkedObjects "${source_files}")
gd_add_extension_target(LinkedObjects "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(LinkedObjects)
| Extensions/LinkedObjects/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(PanelSpriteObject)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(PanelSpriteObject)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(PanelSpriteObject "${source_files}")
gd_add_extension_target(PanelSpriteObject "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(PanelSpriteObject)
| Extensions/PanelSpriteObject/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(ParticleSystem)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(ParticleSystem)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(ParticleSystem "${source_files}")
gd_add_extension_target(ParticleSystem "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(ParticleSystem)
| Extensions/ParticleSystem/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(PathfindingBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(PathfindingBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(PathfindingBehavior "${source_files}")
gd_add_extension_target(PathfindingBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(PathfindingBehavior)
| Extensions/PathfindingBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(PhysicsBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(PhysicsBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(PhysicsBehavior "${source_files}")
gd_add_extension_target(PhysicsBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(PhysicsBehavior)
| Extensions/PhysicsBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(PlatformBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(PlatformBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(PlatformBehavior "${source_files}")
gd_add_extension_target(PlatformBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(PlatformBehavior)
| Extensions/PlatformBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(PrimitiveDrawing)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(PrimitiveDrawing)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(PrimitiveDrawing "${source_files}")
gd_add_extension_target(PrimitiveDrawing "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(PrimitiveDrawing)
| Extensions/PrimitiveDrawing/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(Shopify)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(Shopify)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_extension_target(
Shopify
"${source_files}"
"JsPlatform")
gd_add_clang_utils(Shopify "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(Shopify)
| Extensions/Shopify/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6541 | false |
cmake_minimum_required(VERSION 3.5)
project(SpineObject)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(SpineObject)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(SpineObject "${source_files}")
gd_add_extension_target(SpineObject "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(SpineObject)
| Extensions/Spine/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(SystemInfo)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(SystemInfo)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(SystemInfo "${source_files}")
gd_add_extension_target(SystemInfo "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(SystemInfo)
| Extensions/SystemInfo/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(TextEntryObject)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(TextEntryObject)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(TextEntryObject "${source_files}")
gd_add_extension_target(TextEntryObject "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(TextEntryObject)
| Extensions/TextEntryObject/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(TextObject)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(TextObject)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(TextObject "${source_files}")
gd_add_extension_target(TextObject "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(TextObject)
| Extensions/TextObject/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(TiledSpriteObject)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(TiledSpriteObject)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(TiledSpriteObject "${source_files}")
gd_add_extension_target(TiledSpriteObject "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(TiledSpriteObject)
| Extensions/TiledSpriteObject/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(TopDownMovementBehavior)
gd_add_extension_includes()
# Defines
#
gd_add_extension_definitions(TopDownMovementBehavior)
# The targets
#
include_directories(.)
file(
GLOB
source_files
*.cpp
*.h)
gd_add_clang_utils(TopDownMovementBehavior "${source_files}")
gd_add_extension_target(TopDownMovementBehavior "${source_files}")
# Linker files for the IDE extension
#
gd_extension_link_libraries(TopDownMovementBehavior)
| Extensions/TopDownMovementBehavior/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6629 | false |
cmake_minimum_required(VERSION 3.5)
project(GDJS)
# Dependencies on external libraries:
#
include_directories(${GDCORE_include_dir})
# Defines
#
add_definitions(-DGD_IDE_ONLY)
if(EMSCRIPTEN)
add_definitions(-DEMSCRIPTEN)
endif()
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
add_definitions(-DDEBUG)
else()
add_definitions(-DRELEASE)
endif()
if(WIN32)
add_definitions(-DWINDOWS)
add_definitions("-DGD_API=__declspec(dllexport)")
add_definitions("-DGD_CORE_API=__declspec(dllimport)")
add_definitions(-D__GNUWIN32__)
else()
if(APPLE)
add_definitions(-DMACOS)
else()
add_definitions(-DLINUX)
endif()
add_definitions(-DGD_API=)
add_definitions(-DGD_CORE_API=)
endif()
# The target
#
include_directories(.)
file(
GLOB
f1
GDJS/*
GDJS/IDE/*
GDJS/IDE/mongoose/*)
file(
GLOB_RECURSE
f2
GDJS/Extensions/*
GDJS/Events/*)
set(source_files ${f1} ${f2})
if(NOT EMSCRIPTEN)
file(
GLOB_RECURSE
f3
GDJS/IDE/Dialogs/*)
set(source_files ${source_files} ${f3})
endif()
file(
GLOB_RECURSE
formatted_source_files
GDJS/Events/*
GDJS/Extensions/*
GDJS/IDE/*)
gd_add_clang_utils(GDJS "${formatted_source_files}")
if(EMSCRIPTEN)
# Emscripten treats all libraries as static libraries
add_library(GDJS STATIC ${source_files})
else()
add_library(GDJS SHARED ${source_files})
endif()
if(EMSCRIPTEN)
set_target_properties(GDJS PROPERTIES SUFFIX ".bc")
elseif(WIN32)
set_target_properties(GDJS PROPERTIES PREFIX "")
else()
set_target_properties(GDJS PROPERTIES PREFIX "lib")
endif()
set_target_properties(GDJS PROPERTIES MACOS_RPATH "..")
set(LIBRARY_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
set(ARCHIVE_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
set(RUNTIME_OUTPUT_PATH ${GD_base_dir}/Binaries/Output/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_NAME}/JsPlatform)
# Linker files
#
if(NOT EMSCRIPTEN)
target_link_libraries(GDJS GDCore)
endif()
| GDJS/CMakeLists.txt | CMakeLists.txt | makefile | cmake | 4ian/GDevelop | 10,154 | JavaScript | noassertion | 0.6414 | false |
Build/CI Configuration Corpus
A curated dataset of build, CI/CD, and project configuration files from top GitHub repositories.
Repositories are sourced from ronantakizawa/github-top-projects, which tracks GitHub's top repositories from 2013–2025.
Use Cases
- Fine-tuning LLMs for DevOps/infrastructure code generation
- Training code completion models for configuration files
- Benchmarking LLM performance on build/CI tasks
Schema
| Field | Type | Description |
|---|---|---|
content |
string | Full file content |
file_path |
string | Path within repository |
file_name |
string | Filename only |
category |
string | High-level category (see above) |
config_type |
string | Specific config type (e.g., "docker-compose", "tsconfig") |
repo_name |
string | Repository (owner/name) |
repo_stars |
int64 | Star count |
repo_language |
string | Primary language of repository |
license |
string | SPDX license identifier |
quality_score |
float32 | Quality score (0.0–1.0), see below |
is_generated |
bool | Whether file appears auto-generated (lower signal for training) |
Quality Filtering
The dataset undergoes three quality filtering stages:
Minimum size: Files with fewer than 5 lines or 50 characters are removed (trivial configs like 2-line
.nvmrcfiles add no training signal).Near-deduplication: MinHash LSH (128 permutations, Jaccard threshold 0.85) removes near-duplicate files. Within each duplicate cluster, the version from the highest-starred repository is kept. This eliminates hundreds of copies of common starter templates (e.g., default
tsconfig.json, boilerplateDockerfile).Makefile scoping: Makefiles are restricted to root-level and 1 directory deep, preventing large C/C++ repos from flooding the dataset with subdirectory Makefiles.
Quality Score
Each file receives a quality score (0.0–1.0) based on four equally-weighted factors:
- Comment density (0–0.25): Files with comments/annotations teach intent, not just syntax
- Content length (0–0.25): Longer files are more substantive (log-scaled, capped at 500 lines)
- Repository quality (0–0.25): Higher-starred repos signal better engineering practices (log-scaled)
- Non-trivial ratio (0–0.25): Ratio of meaningful lines vs blank/bracket-only lines
Use quality_score to filter for higher-quality examples during training:
high_quality = ds["train"].filter(lambda x: x["quality_score"] >= 0.5)
Splits
- train (90%): For training
- test (10%): For evaluation
Splits are deterministic by repository (all files from a repo go to the same split).
Usage
from datasets import load_dataset
ds = load_dataset("ronantakizawa/codeconfig")
# Filter by category
dockerfiles = ds["train"].filter(lambda x: x["category"] == "dockerfile")
github_actions = ds["train"].filter(lambda x: x["category"] == "github_actions")
# Filter by specific config type
tsconfigs = ds["train"].filter(lambda x: x["config_type"] == "tsconfig")
- Downloads last month
- 18
