Skip to content

Commit

Permalink
This is the initial open-source release of CodeTracer.
Browse files Browse the repository at this point in the history
The following individuals, as current or former employees
of Metacraft Labs, have contributed code for this release:

* Alexander Ivanov
* Nedislav Miladinov
* Viktor Velichkov
* Franz Fischbach
* Dimo Chanev
* Pavel Penev
* Petar Atanasov
* Stanislav Vasilev
* Petar Kirov

The graphic design is mostly authored by Nikolay Fenixov,
with past contributions from Blaga Vladinova.

Metacraft Labs was founded by Zahary Karadjov in 2017 and
has been under his direction ever since.
  • Loading branch information
Metacraft Labs committed Feb 24, 2025
0 parents commit ea4817f
Show file tree
Hide file tree
Showing 969 changed files with 287,942 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": ["env"],
"plugins": ["transform-async-to-generator"],
"ignore": "/(node_modules|bower_components/"
}
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# EditorConfig file: http://EditorConfig.org
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
max_line_length = 80

[*.{d,h,hpp,c,cpp,cxx,cs,hs,java,kt,py,rs,sol}]
indent_size = 4

[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
indent_style = tab
indent_size = 4
16 changes: 16 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# shellcheck shell=bash
if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
fi

dotenv_if_exists

# watch_file "$(find ./nix -name "*.nix" -type f)"

OS_AND_SYSTEM=$(uname -a)

if [[ "${NO_NIX:-}" == "1" || $OS_AND_SYSTEM == "Darwin"* ]]; then
source non-nix-build/env.sh
else
use flake
fi
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/.yarn/** linguist-vendored
/.yarn/releases/* binary
/.yarn/plugins/**/* binary
/.pnp.* binary linguist-generated
295 changes: 295 additions & 0 deletions .github/workflows/codetracer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,295 @@
name: Codetracer CI
on:
push:
branches:
- master
pull_request:

jobs:
lint-bash:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/bash.sh"


lint-nim:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/nim.sh"


lint-nix:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/nix.sh"


lint-rust:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/rust.sh"


lint-ui-tests:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/ui-tests.sh"


dev-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/dev.sh"


nix-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/nix.sh"

appimage-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- name: Build
run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/appimage.sh"

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: AppImage
path: CodeTracer.AppImage


test-rust:
runs-on: [self-hosted, nixos]
needs:
- dev-build
- nix-build
- appimage-build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/test/rust.sh"


test-ui-tests:
runs-on: [self-hosted, nixos]
needs:
- dev-build
- nix-build
- appimage-build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/test/ui-tests.sh"


push-to-cachix:
runs-on: [self-hosted, nixos]
needs:
- test-rust
- test-ui-tests
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/deploy/build-nix-and-push-to-cachix.sh"


build-and-deploy-docs:
runs-on: [self-hosted, nixos]
needs: [push-to-cachix]
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}

- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
nix-github-token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}

- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/deploy/docs.sh"
Loading

0 comments on commit ea4817f

Please sign in to comment.