Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • Dojo_Project_Nguyen/ui/dojocli
  • dojo_project/projects/ui/dojocli
  • tom.andrivet/dojocli
  • orestis.malaspin/dojocli
4 results
Select Git revision
Show changes
Commits on Source (166)
Showing
with 220 additions and 65 deletions
......@@ -5,6 +5,12 @@ Wiki/.idea
NodeApp/src/config/Version.ts
dojo_bash_completion.sh
dojo.fish
sonarlint.xml
sonarlint/
############################ MacOS
# General
.DS_Store
......@@ -344,6 +350,6 @@ Sessionx.vim
.netrwhist
*~
# Auto-generated tag files
tags
# tags
# Persistent undo
[._]*.un~
......@@ -3,7 +3,7 @@
url = ../../shared/jetbrains_configuration.git
[submodule "NodeApp/src/shared"]
path = NodeApp/src/shared
url = ../../shared/nodesharedcode.git
url = https://gitedu.hesge.ch/dojo_project/projects/shared/nodesharedcode
[submodule "NodeApp/src/sharedByClients"]
path = NodeApp/src/sharedByClients
url = ../../shared/nodeclientsharedcode.git
url = https://gitedu.hesge.ch/dojo_project/projects/shared/nodeclientsharedcode
\ No newline at end of file
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/dojocli.iml" filepath="$PROJECT_DIR$/.idea/dojocli.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
......@@ -18,10 +18,74 @@
-->
## 3.5.0 (???)
## 6.0.0 (Upcoming)
### ✨ Feature
- Link a commit of an exercise as a corrige of an assignment
- Add SonarQube integration for exercises (thanks to @joel.vonderwe)
- **CLI**: Add possibility for the user to delete an exercise if they've reached the limit of 2 exercises
- **CLI**: List exercises of a user (thanks to @bedran.sezer)
- **CLI**: List available assignments (thanks to @bedran.sezer)
### 🔨 Internal / Developers
- Major dependencies update
## 5.0.0 (2024-10-21)
### ✨ Feature
- Add possibility of self-host the solution
## 4.2.0 (2024-07-05)
### ✨ Feature
- Add support for tags on assignments and exercises (thanks to @vincent.steinman)
- Add possibility for user and staff to delete an exercise (thanks to @bedran.sezer)
## 4.1.1 (2024-05-28)
### 🐛 Bugfix
- Remove node warning messages
## 4.1.0 (2024-05-28)
### ✨ Feature
- Add features related to corrige (commentary, commit a specific link / update, delete link)
### 🎨 Interface
- Ask for confirmation before creating an exercise that already exists
## 4.0.1 (2024-05-14)
### 🐛 Bugfix
- Fix bug on correction update
## 4.0.0 (2024-04-19)
### ✨ Feature
- Add some commands to generate files that will be used for terminal completion (bash, fish and zsh)
- Add `dojo upgrade` command that automatic upgrade the CLI to the latest version (or the latest dev version)
### 🤏 Minor change
- Do not add spaces in directory name of repository's clone
### 🎨 Interface
- Move from `session` command to `auth` (for retro-compatibility, `session` command is still available, but hidden)
### 🔨 Internal / Developers
- SonarQube integration
- Migration to GitBreaker library for all Gitlab API calls
- Dependencies update
## 3.5.0 (2024-02-21)
### ✨ Feature
- Link a commit of an exercise as a correction of an assignment
## 3.4.2 (2024-01-23)
......
#/-------------------.env.vault---------------------/
#/ cloud-agnostic vaulting standard /
#/ [how it works](https://dotenv.org/env-vault) /
#/ [how it works](https://dotenvx.com/env-vault) /
#/--------------------------------------------------/
# development
DOTENV_VAULT_DEVELOPMENT="xWZfuXiO1nWw4qDf/vY90xPpLhb7l2cyOYK7v7K2WPOjlSuJBL74nWHaphDeslFUpJYiIjNe2QOn7z5nqn6DWw4PqYkjEPTjYGLfXmig3QoQtehYyYDErFH9RYRzCSE34NZzk2GP+F6vNGKJ0fA+ua4sTPfzPuhuoSC6Oz6TXsUwmDz7PpsrRDSsf1Y8e2GRHUiyYYb5W5lLKtFn2wCRNMU41nHgOsZip4/gmoz/6wD3vpJptLnMXMWUO7EZ87cyWXKZxVHCP19WmW1Fncdb4bo297VL1vH4b2yYcGwtgBAlsrMHhEzJH3QcXZucDdvIsN5A39CuIreQPM5szUonUJZIXcwXga8cmvuioszNO4zvrnG+BpMxOmLxa5XYYjUepfuSdP260zeMcLnAg0Mbylg6PlcaoA8fjKHiJZeAt2KMH5aL5dMLi5VMlleF2Wq0XbklZwyflfxzjULYJ6XNnrUJNea63Su1vzj7gPTA05eAfYnlKlNF8zc76qlY/G5Wigz0InOim3omo1JrLB4uBWCSkJvM6dxnB15DJfHjWHSJETI0desojXremJ11cnqabH6miC/hKH6A9YOEax4zdMIrRTMFa24xFuHjHqbTe/1/G6URW1kKKmyi9r8hNBKEyAYq1PYnf2BiGBYRj5KMybkYwqB+C0xLucAXYIXgOamw91vuN3SVpuLQ2adz7KLiZbe5xiXZALXhzXj08j195A7sZUoz5yWfqZcVE9o0EkGzX6xAGqVADg1mbgw9dRbm+Ux9u0/qAMzpTbK93lRtC94ZBKenGtJc+Sdc6rYmUKj/+3mmIGYGQjX6VAV2ApoC+yJxyG1WBy/Ae0BeoGtuevuCbYjM55KHWy5cFh3s71I3eJVfcJxf7+bi3VQudOOLE8ZhK42Oa6tY/Aqgr2oyjcfBvA+B0R/wJBy+ZIOKtZgtcH9mIl8Srw3FgGEPch/F4r3ndooM1TuDD/yVyFK0crstir8iD+nMExj9ll8fi2TmcAQ5CC0/0QteCEb9qeVCwa0mO0xIk8IVxC9hVlrInk+yw1A4uZLYwe9ppIjlSGf0zLqIJPiOY8mPTpCucgrYV+BhybIhUKGIdCbXu+JR/LZ7babQAUXfeA86kkKhcNc2HVEpx8ms7kvju3d06rTMdxCz/isEpmzVobm0ZEzXzBe+VBk71YP6liVDrGO0YXPz/ew000fZOyhcZbEryCjZO9WjES5w3uPiTo6MGLmuKfjRDgrJQuQ05wYrDdH7YnXKY0jrzSibSEkuywdXjVgq4YgTMnLKtsc8AIVlB/CzI4Xq8w5gPPz0kZVo/xmThziwjkk0TIlRKpFjlito/QBKquZ38YmXhkOBbSGpCsEOtQfThtbnArKhojhQLcSOruAwIE8wQBJDr1yW+/WtqeWi80E9C/QI91zMKNM/DsD/JSZmkZAXwyV0R7/IVoZlX2JQgTGxD0VjGI1Tsr3mGfU2zUOBif9Ff6tcYhWBfUrVIv1InTa905tpZ/1DObYE9a3+stFERtGgKICdq801fSwKjvXq4ijFgJEwD0sGAj6E52X995qTxftyMcCkByWmTiTltZfHeNOYBRODhl2y15rHvsBh2XjERiuN1NyVUhytinHCqx6+OMRvQ0TOLplSuR0XEBL9v3Iz3zvkJ6K6t12FXD5TzjlIKUfUVgHUHcZVZo1HuGxvuS4Ymo5qAJzgv8g+yZfEml+AMDkZfBCP6KO9f8wi6X+X4Z54dDDxrXNyyBwmv58a9GMWyFDiQNTH8caCs4T2h2uzB56yJkjL2DDMeZtw9WL5mFQ0kUxeaO7J1iLsccbJ58yRHsowHY4Y/wSNaeNEHKNCRFyIEC7nHSQawqmZZXmCX1Dgs83V5sLM5pBjHnWQ2xI="
DOTENV_VAULT_DEVELOPMENT="4L7jXN6sCPInO65syJyc9egofDsE1PdEn7edols+C+4oW1Ba7l1GIbpDffQO6WHhvf7ZL6zE8AvI1YdWV03OSgrP3jfFaLBDWyBYQwqaQCQkd0JFcjwW64BmjF1QMjzJSCUlGfGHuBW3KzjiOENw1iGkjaDZu82oxGbIGaUY/uSXmx2uAH/5SnMwitZLd1Xy2paaO+XruomKwcJghZYx/dxNDxTAkuAmyo+kJ+uuDeNgVa5d7wZuawc8VBk6OQMxYPsVudA4haOcc0zJTcFlQLLa4KzewEEnTO6A91TbuyyugC5W5+qm3VdCVKfs02CFIyLEiM8g4HaUACHn/Nv5gK5NIl2nDvFahjTJy+pH4Ocvtnfj62P8WEld9CdIIwNnS+6+izVuiVIeSeLMAGW+FE2EZJpmxbXutT5sOF316r9614U+/h+e/71zd3M9UvldFh5pnv5hciNH5b9CUDyYVCStiTGuOTcGwNGJ0SobvIpjeex7f2aECIzfn3Tmc5+duYXC2ASSY+TmTqk8jS+qnZ2lDq8mpsrQ4AX+k1tE3yfbNvNfZGRPH9cR40yZZRESrE8qnWJJTUXKdEV95Kka/SuHfQg+o0CStRvPHkz2N30R20Wfewg/mYH01TNZrwF2XXX9Xpb+VfkdGW7l7b1ROgjRw3IdLPhP8Rc6YXkw85H/5Eg7/jXY+nGKZWv5sBnVxo6hkalIzuLLcKS8vMjGCj2tyDCoenwqYTu4ZHUQPy8XDRRV0IfoXaK19Keu6qRxgdfNqarfWWRccwd3Kga7DEkWpNUzprdo06PUK5l1H0IreDT7DOk7wraC/TlIobw0U0gZZGBx7NJ0d2T+Yt7OTTUNrubyU8s0kncG2kxEvw6cGvd15DCyGwamQODFm2Kr8Ar6UNKe9YapI8QjrGCQfhmxm9U4mQedIYAmUWCKvyFypdxw0nuRcac1czKU0gcV0IG3oQLEc0TDlzgT0KXBIrUYBnAPVUOf1eq+NES7R4y0jORHCHNIGGVhfAvuybrT2hqX8SfX4/ru0TpbTpkVeEc9ipPSybLXB2l2G+7xAV0ySN3+O6rcFUrH4CAQxY+V2qDvzGckjRXTH56yQ2KjE8Su9n/arSHaBoFaHZgM4RFFVV2Kvo7nNFkrJshHvwmtuhAovSXIZSZ/apXoJ2z5FjQowQSf/HK84DIp9YVJpsruFKbYtpA35RbW2I2ncOh+pghdagvI/YsGnZ/6Ahe5JKViuizZYNUbyOozm+RolVdUdSyAkzokcEhY5WmtahDxDs3KWI31jHwuNW9XmJA8mRd7NGE7p9/qBFn+65nAWlRlV1j3L36Hs7YhhftKhexggWn79Z3gKTayZHjPrt6KZ93pywxDI2ze4l7yN6uoumy6SlU5EbAqNrpcfteVqdEhS9S0p5a6mBOc5dw5fF6LSdti3o+FfKH5Jii4nHsB1jFD90wJ5JCX2chsUMpCh2dDTvlBegU44W7hDbfpVZ+xuOGIInNeRdnplrsL6mnUNQs6vSifad/Tl2CKoi2qKJORKDdpa1L9hfUSSlyLdcVBr5d+GDPuD9WD5HwJ7KwKbQ6byoUSX2lnifV+h0vvHaexb5c4RD9dXGL6x9KoUXiXDqLLCQnu5cspoWNxYFUi41lLKHRysF2wJRM/xBW6eyhui9bJwVWdteO4HGaMh+BEN08+tiYtzo0MsyotNzFNikwgpbSpaI9K/ZuM4AXgPHWE9SfRXmQ2Df1fii9dbSFzz2l7bzLic0EmFQkFkkB93ZDDgzfBWBTPC8h/1YaqYOQ83dI9+sYlaVkXMMUSlQWIR7NKjLxg6BA9FjVWO8KQ+WsLX310XYvQZ4zzCA7rnYol5tes1lwdVwm3AI3pDuyF3OusMpXrv+pbFOjJW3IQmLxQ4Pc86845Yv1iVb0="
# production
DOTENV_VAULT_PRODUCTION="geUVFVOsvd0vRIIfeu1i6pKoAr3/2nwB63oO4gxe/ug3GnFBEh+Rf8I7DwM4qcD10PBqaMV7tJiYVIBqAUviHrQSGEJw5aK4Le4ndXf/1yPpsRf6YdMNfL/oU5I2aMMXlCCGTylbgon67Vrw2SgmZbCD1vkr9wmdJqATANcNSfNbJL+mf790rZyUXYC4piUIfdGDnjJpeSTozfpZeTh3yEp0pRbjRsU6NlXIPH/mDVFJkWMT31jZJ1kyePu6b1qWWh2uZRwWaaOOTclpKGnLRaT/N3Z+M1OJbB1Kjp0uUoLIz4VytTGcYRjS8wbfzBnl4wg9HSPR49UKShX5SNtQ9ov/7vmRpYH59SNuwV55S6Bv5pgOUVjBgdl+4tzXuh7Z8FD2867a2k7vXBpXoOBgi6yujlSmEoul3XMa5a3zyWHB+kz0GwEtlyZyAFR5xXyIWdURkXw4RRLLhHaI5y6LGKPCFHyFPdEUX4uRroFB261+ft5IT51ZwTujeymC6qkC2KlsrpViyySTjE4LynLzitIsLP5I7PiZ6tH227BfzcwmUdHlSuiHIQMWPKl2oFLyhEkfWgUxCRUfUxYMgCRjPkrXf7zPhvhgbtOOTBLlZsMBQxFoM7kXECzhnnyqp6JVQxfOMAGPTcgLQP3HAqVLVfAYzRpfoTROxuoZ6nuikIdR8rO4BAasH2/6Z0hWEGKUMsnhDHb8l3xDNB3IAH00y+t1WM0Yre49s3RrtTz+I8K3nZ1hCCT6UqfDxRkefltXngdd47qNU49FpWS2MKitUapLvlqTccAxYrCUmAkl/giDMNrRaLFbWSeiA8tyOEhdp8eqVz5ygLalkecdZTr3x3qwFbLam++MqLph1JXeFWzBoekLyJUrtWEYNBXb/g+eQlfHKEbd0AbbYsSaqVZz9R8hjqcryq/O+pMETx7F8DV7l8oR1xMaFeDBc+rJPLXka5plc91mdstU3E0FgviScUvaE1dclEuPGW3M/1MXR+oxIZ81dl4j1uUYcSUueKv7QsOS8jFuJhQQXzNyBrFtJCb8jV8V9/0vXKUN+Zj9Bfdn0IuUxXN8VfaoSNBOA2fTssEAPSvCBOJPSQsL7YsSye/1koMCifYy+c2RDSDxxD72bfsij9U1srjJgGJAqRI2WetUjH9HgqESJ+oPQouKhHwEinnsNVSweoLLN0nD02RSjm3iIeCy/5R0B/23yALZ4YWTxdS4kJs22mue0cUyGY6on3eCmwF5d+7H9/r737sbLYODBLn6eArXvHAvIS72mtvveTiviXhzU8c0ntu562zpDDMTn8useCWHgsEukRm2eumpMiXSMCiFSotV4T+GFNSAkm3J6mGAzZFp1QOgZHnImjrERsLaKRweQblNT2ZYxaZNbCNMlrj248EIIIbSPH+/4wgUyl5tbhnyPYO58Z0V1kLOvofuzIIVXGoeScHaTDEMlx1ZmN9Mtl0CuYNIyzvzxRee2j2EUu6ivLwOArR1SDZILd540y3ONOMObAVZhJCB1vUqzTdBrz5BRxy1knwhhQRbQQHcVVp+zqxSVtRrUWgAzHzCP655ilDqXJwkV0Sy/naBr5I8Hjs0euVLj0Qq7XlcyIHtch8Lcm+rfJiDo0bYJlHfgoeRrvum0N/w+qoEVbuGpzNztGO7ISbhxeitLoP/cu7tDYxLVXuzXYCVYn2MJwjeLtlytZy74jQoKiDRLt2Zy32JSbg8hR1utaFkN8BA9OmAhbXTmdsJgleyWxlQDl3YeLaN4+L1rLrgpmmyTIBcM6oNhO9GTstjvzrwXKPHb6CmzEwFkyzBPS36bN1glcZHF5auiybAJkMMlKHMbupA7244Gw=="
DOTENV_VAULT_PRODUCTION="nKBuQMi/7w1FsxLCkwxQE73aMX8YpS1ued7qy+2m+I9RXdIV8mXTpJyVbciXEoACOeSHUh8q1WwW+xdFnY79LOqff5jUCtcuz6fewKHMk4bQqpmzfHR1G+YwYRmO1gb+83Lad3A4fXY6u6WZDkEHSeOhoYglZqXP4Pxj2oYWsTZ9BZx9r84JML4E+c6y7s8keBHKS4DPyj/NDRGZMZu8KN+XkmqjHfpn/Aq0148eyTDjnbRFN8L8KiQaFHeF8QfrJMQwzJvOvtOaCLDIh1GuRCmNZ+1M7/syaWCmEnU02Vz++58459F2QFyAIgp4lsh4xDiNOqLgtCWL9dosWCo5VWLUdbVGMmFL38ZG7kb9I3KCzL6R8v07KOzMVAvEF6wLEfluD3TYHIsC4gAreDkwA7qa/EIrsa56VIQ4MzXntbhVo18F6uZklva4VEB86m9ZEG6XXivNeL6mLP+g9HXofCp6R3Kje/duEHlSYSXL60+aW9oD0ylkSQMtXe/xXavFn8k9wiWH2F3HhBX/qZjjGn5eTel6UIgHEgVAdQE4ht9N3Zfl5mfrLVgisRRUrJkZKJIrf7q6hgcNorab0hPpWYp6rJfh4aOoc3/1d2MTZOSaNcH5R6AANM/e7UgAqmzj8idEKsn9DgpbHS4S76x8ttkSz3FWKerJ3NdtIsuNL3cem/D14Vv7tRMWYDTBahWeMStMg293Xvzlk0KiQMSqnDH/UrKi1AKD3qtP/N8+vHEfzCMC3jDnT9t3XYh51/ILQTglU26frxPiEtvW2U5FKa9BiHp8JqpKZ56cZeb/CnTGkeLq0Hz+qqRIT+6FUPyH92cQpKjSl2mJSBuWEsBwyBKuSD/fsVuCygTsMSHMIaLpcHPYhpMm2cHIrRXW/cBLsQB+ZjA4yOwvlWl0F6/vWoLHjkqtCQfPlGAjs1eCLRA3E6nF8/XZLt9vS+/sJGj8SBAUM76nH7Et4gbyfXrK0+usiDQBd/IU2EagFgxfPoH/Z6noAFt7b1jj0JBPLyYVjQjM4x+23NFIETtghbRVlb1rLCV4g+U8WshoKJ4qX2PXd1Qk25FR62dsqTbI6agEuEKe7isYKo0dLfZjE1XADOKhljMH0tw/O/jQPcQTm1D9me9foEQqSG8eVyilYiMpd0dvKb9Q+prPEJqi8hheiWsnI50/40iy9cpck/ZgY4smbPPTN/6M4x8ZMGkFn7rEbZuBO64joJOQRnYhw+i6JeIA+piUig2JeUrZ4MzzdRoGCRjp/wPrE0L7pXVq5BRQ3Ykyd0/3nPYqLuhVeH5tGynYJP7GtVwzFQJhNUNog4vwPXpGhBUS2QO7Q6Mc/T6aGGEGa3YHPRgVsdhtxHU5Q2LHBg8lXMIbjgqOYZ0zBME63YMRJmiykoF25h20tiIOsPF9R0LIVZ/0TqhnLGh/SvReN7TVV6XD/JLGsQ08ovYF7jmOWTSZaLIp1PhGa0tCP3n7snvnf0gOgklpzC1RhCiLv9ADmOGt2K7DWcnCCOB9x5YSrz6aU6WHbze6uterO5BmGhLKETaZdhVz5KCGAfMhRVMSlX0WDE5x6UrMf72tA5PM3YaOPIDC1Dg+/0IjAScsSKu6hJ/Hx5bATylLfGnGS6OsqJhBveAHsJJYRpLKt3C3YEOLzOhDIXMDz/2hYnctoKuwXG/28sJGIsIybbN2QayIbg3Rml0npAH4kRXSFOcIeUquDPqHL41zcIxjWIwsfpFe4NgGBeQlgd3ZA6IdopF6k3FK19DDrtjuMZ4ExICMmb6KkXJTNMQEJgtN4RuZnMIM7M/8TpK42M9TUETYNh905zOj/Fp2Su3yV1ijXp/bnBmUq76/vWMoisY1cwy3dMR2CqB04lpoUiv8lDy835MILWmtYxPnNJmQuuH4gMHyS+wEe53TZXH8R1C7+Ia3z25SH5/MfVgWNYXbD+bB+t0Tlu49k3Qu"
# test
DOTENV_VAULT_TEST="NjWlOUWT5HZM4whZTpS/sqrHLsWiJKV6xSQcrU2Pm4m8csvh/PJ9iQgyME+eltgHAFAdGZIrwZadFws7kCHQSQxikYq1hz513wlLhhVqk9QGuHUdM352OtsoySuHYS7SwwKog8MAsLQuJpIjmvJaCFvQ+Q15KjbHGjXgQghXELel87IEy0+lxibd1JUMfHNPzyA4EXZe3LGSVNgIfNRZWcE1vWQ+UAhDxCA1M5Y9yEQO+TB2FHyEZaFgSHC+uLgybK5SbFwyDxPY8RzLBbHtlAB5Ez2NnLWkj6wLLRNZW75wa7TserUaArVyBy8nBPqtDGpMCpMXubVHxKzFDxUHqgbhn/eVDaD7FWhVYT0PWijOpLKjtASTebEj24ea46NuLZAjMxIhb2Vr5s06PU7wmACNIi2ajdMFD+MSwKyRIvWlhcw+q2jUcZYcnqUM2F/AKp3qdSY3wLbnYr6F+dEYqXVk1A6pw+JC33eBdGVFPtskuxttg+//VfEuZOKSC7uLPHywQ8ldoljCqFLUt/+oKuhE8gzeNkX7Eb+O1scK9J4SHD2veVSafUZqBNewDjRnixGt8SMMv82XNqHbfpS7GqQKBNz5koO9wOJVvdDwSfGYY1e+RFreTUFsZtLUi6noai9+mQcwSe/cjsM77qewpfYSF+mdp4noKc3mlZTwkoVxF2zNO80uIvvkXmWraC0zqS5A+C05ppZZrjbcMN/CcKHSc1ERJaeWmbfWjjrsZlPwRtiOxLZu4Mohxl6CrZkln57lyryfhJNzjjV2/CyGhgb2VuolZp5s/hckCuSmGH7O4Uk4wiD8WaIA3j6c2YtRJ6/bWnXRVmLK+NBn50N6C0iEzixEl4nPyb8rfvI8ueDiXase28vPmXMwY8OU1uGn0L+K9M/ySSK0whxu6yLG75mv1ZLs3qQ+Z1HxUN6ZTYTNQmTAw2W2l12ZB2yZgR7Qi+uGMuI6zzLSrl7Ru+S7SIGV4PUyOc6QAtuKFx1XPNgj0ZA8Kfqx9iMnj1aHtDS1GsONuzSHOsUzW8vr1YMGEG4knEspRbIzlC7NVP4aChO/Mo4WmjZAu+oZaXxyyNXEwgxmWO4AArrsdgVCulWarr4Y1dV4639ATz81QjtjV+UieluJsAuCxqBz4p8Kw+/2k4EUBiu9FaO4pw9CDE1y2d/y9H1I+8l2NU11mPvqnNzXZgLJOLK4qV3tOFPheEK0de0WzTt4PZsneFSQbZNWmlbJDluEn53VheVfJOcUXq9KEWKwKDnzn+1dYUyWuAW6y7uXnx2ECWz1xM9DzaIwUcjv8/62NdspsSHNag8RxZ/KzHffH6ePoxpfhAogfaRjlgX+P1fpjxujY2/1LmdnH3/0kHyFuU+D/2IQC1cJMGpU7mD754JXfGS/g2d4ISVFEOTfDEv7ZwC8gRrkIMrUnk4xR4WYE3MSewZzWAQ1NcgdYrDpcSA8/wPUXnNcaP6GHZKzPoYq9SbEdOlVNkExOH+AueKGWtPm0VqprhwFOsveSsdwwAF79CKIzk1XJFCyLD+3aX7+ZvAAn/3734ggO+0tjBCy+N2pZ8+4UDABjSHA3d/UD3dNr78kzZY67xhkUu6fQSpS4nFezGgek9YpDTR8ukUbTiyovqtTmgXeb5HDBH5sZ/kaoEFgI+kskWb1u7Mk+5iZoVmPZXw2DFs7Ng2iQ+cS+KOPID534AmJ+mt8PrM92hVBlXmc96hrP4XqhIqQAImb6t9GQoDxdA8hsCUB4LQf8gKuZx4DDtrSronheYCFBLaNFNnixhFI1sVdK55VnS4/6zma6g7YRw=="
DOTENV_VAULT_TEST="C5LENNccdwprL/CPoLpUWt/pMGI+7B0C3vKAuP2ist8lKweRiIO2kz+90hx+9c4hgy0pkbZh6u95jVaQ3FTZq/xTaFm8uyODvEH/l021FZUZ1ZifD69DW8pJsxMpUPLyuwHjMLh6RwCnndHvTBPAyHtft1lZ6/JHTVCM6I+xZK/nZU+eH6tnDmJEJgUmzxwXzVzJObkLAw7XIzP9Uv/J3MckRQRdJpvMPSXP05gGMcEQWqaQnoYrZX8kc5Ao5CTWore59eL8Zv3XA2AWC9K/+HuaZyRsIk8qvUfPSEeFCm3yKdcSUmSdFf0YHH6Xl07hHJiIMs4PpkpjQnQlG2NMlEZOpgKqAU9ud2cB0xkdcoG9J9Sp5Z5CNPB68RXQG1olR33vy6Lr04jdkduZNHAJ7iAR70h/xKLKyXHIglt1Lnhjy3V090p5KRsD+ihZYEmqloyfHgs8KGs+PIvjYQsXjIm52S7rrPKvCKI43VjWuKDkfNVE/j6uqJ0CC3Z5+6qoF6dsneJVAbSQFVYW9DTM53vyFYvMExdiQXG2xXAsXyzfRJhe9PaPJ2hRUZ1Wr3mWJOEhl4h2Pfz4PBSS6sc4Av9mSwdkxZ+lCmacHHRd5/eV2/1MhIikZrSR0KZUITn2QQyu4TjDNqPvht23eTftS5k99xDAdw60rGy/u/ngD05jNbMm6SvoP6q+6SSnZbocKptm281HhKclZ7UZo6qyrvegzmq9kFD2sHPEpAO4nvzi2Ykt1C7u3PbrZX9DufofzphIFsh/fin6pzyxnifRDQZQ9kEnvHqJMN1V0Ir83LLRyYmQTHMaJmHSA/k6jo2yFH7WmLP9RC3OgSJg7vP1Czot5Wu7QbaPjomYjpkmvb4SPl4IuPW/ZApLZ09Sqmzu5waXt9O+gxU1ItVCXGzfgTR6BC+D9ULdEr6nVlqkbi707PEsA+gGhLT0CmIzv3g5HAmoQJBT2D/aIr4nRLbsTd4zcEevOpj8LgERaQDrPtn9dS7eAWOv5Ekebg+fVeqoTqW83aKd6Zz8oThnDLzWKLZxwCqp0Es7ZtqX3+sg9mzOHddffEj6ilJZ2iSfynW2eS+l1d/V5Qxis7kVB6U36rUb3CXieb8jIMQ324w8q/nhGwGOQdUs1DZ7179I9B3r2TcCGTqP096Uvly3slsklr/yAZhEQYBkt6HUTKw16wd4fKBSIdDaV0RDHJipQ9AiHhhjgAlxBjWwouRbJmAhog6i/M6YIV7Mk6IlIxKe1daQpL/MWcHpZL317Hj9XTHer8KIXnnuPCrEDH6OJ0ahueEyqFe1AktNCl0lc+t/wJwqLG0z+Os5Ktt7s6Q4MX7W0Ot3FUOdvGnqK6DtXQPMIuYJpxWkUumK9sMR/FhrffZP1GQh33H+ybQYxmhBaz8MOWtWqBzpcxhAzZyYXfm+Fb5JUq0Vh1ZkUR9xUUokZv3sBXT+hywsYDBx4fmBVSPTQuHJWLMPpi/em+THWzmu8rLvB6rQ0X2zfOaL6WI1upYVnqrpemSeKJ93pkpzxuCwGLdLQTdwYaRu2tUJcjfy75es9R52/Cz0qYYOXHi1lYInnmVZK0XNo7krGVijb5atCPRHctDNIrmudyv5I3XrTkCBZ3JeMd0L/8Zive+kXxcPwVOI5xaMYty5CD6/kJXOyv8TacgGRsDZEV6vlajIbhyIT2AG6u2DBQOIr285SdBTmzxcb9zKH3GvmrQKpRjSwryFjCL5uWx6Deg2OIW+B5mBDjHSvtghD2Z7LNzZv0TRDiv4ikXBp/11FHqKS9B31rY+3lggd0RNd6KLjjNFpzfHQxgXmPe88vMi6Z5UCwAGCr0LgKOhMPDXG1TTTdkny8j3qh5sgKZP5Q=="
dist
node_modules
.gitlab-ci
\ No newline at end of file
{
"root" : true,
"parser" : "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
]
}
\ No newline at end of file
......@@ -30,7 +30,7 @@ variables:
BIN_FOLDER_WINDOWS_ARM64: $BIN_FOLDER_WINDOWS/arm64
BIN_FOLDER_WINDOWS_X64: $BIN_FOLDER_WINDOWS/x64
VERSION_FILE: $ARTIFACTS_FOLDER/VERSION
CONFIG_FILE: $ARTIFACTS_FOLDER/CONFIG.env
VERSION_DEV_SUFFIX: '-dev'
VERSION_TEST_SUFFIX: '-test'
......
......@@ -88,9 +88,13 @@
- |
if [[ $CI_COMMIT_REF_PROTECTED == "true" || $IS_TEST == true ]]; then
echo "Decrypt production env vars"
sed -i -r "s/(DOTENV_KEY[ ]*:[ ]*[\'\"\`])[^'\"\`]*([\'\"\`])([ ]*\,)?//g" src/app.ts
sed -i -r "s/,[\ \n]*\}/\}/g" src/app.ts
npx dotenv-vault local decrypt "${DOTENV_PROD_KEY}" > .env
sed -i -r "s/(DOTENV_KEY[ ]*:[ ]*[\'\"\`])[^'\"\`]*([\'\"\`])([ ]*\,)?//g" src/init.ts
sed -i -r "s/,[\ \n]*\}/\}/g" src/init.ts
echo "DOTENV_KEY_PRODUCTION=\"${DOTENV_PROD_KEY}\"" > .env.keys
npx @dotenvx/dotenvx@0.45.0 decrypt
mv .env.production .env
rm .env.keys
fi
# Build
......@@ -98,16 +102,16 @@
# Build binaries
## macOS
- npx pkg . -t node18-macos-arm64 --output $BIN_FILE_MACOS_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-macos-x64 --output $BIN_FILE_MACOS_X64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-macos-arm64 --output $BIN_FILE_MACOS_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
- npx pkg . -t node18-macos-x64 --output $BIN_FILE_MACOS_X64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
## Linux
- npx pkg . -t node18-linuxstatic-arm64 --output $BIN_FILE_LINUX_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-linuxstatic-x64 --output $BIN_FILE_LINUX_X64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-linuxstatic-arm64 --output $BIN_FILE_LINUX_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
- npx pkg . -t node18-linuxstatic-x64 --output $BIN_FILE_LINUX_X64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
## Windows
- npx pkg . -t node18-win-arm64 --output $BIN_FILE_WINDOWS_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-win-x64 --output $BIN_FILE_WINDOWS_X64 --no-bytecode --compress Brotli --public-packages "*" --public
- npx pkg . -t node18-win-arm64 --output $BIN_FILE_WINDOWS_ARM64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
- npx pkg . -t node18-win-x64 --output $BIN_FILE_WINDOWS_X64 --no-bytecode --compress Brotli --public-packages "*" --public --options no-warnings
# Add execution rights to binaries
## macOS
......@@ -203,6 +207,14 @@
]
}
}')
- >
curl --header "Content-Type: application/json" \
--header "JOB-TOKEN: $CI_JOB_TOKEN" \
--request DELETE "${GITLAB_API_PROJECT_URL}/releases/${tag_name}"
- >
curl --header "Content-Type: application/json" \
--header "JOB-TOKEN: $CI_JOB_TOKEN" \
--request DELETE "${GITLAB_API_PROJECT_URL}/repository/tags/${tag_name}"
- >
curl --data "${RELEASE_DATA}" \
--header "Content-Type: application/json" \
......
......@@ -53,10 +53,10 @@
- rm -Rf ${PKG_BUILD_FOLDER_NAME}
artifacts:
paths:
- $ARTIFACTS_FOLDER/*
- $BIN_FOLDER_DEBIAN_PKG_AND_SIGN/*
expire_in: 10 mins
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
- if: $CI_COMMIT_REF_PROTECTED == "true"
.pkg_and_sign:macos:
......@@ -66,7 +66,7 @@
dependencies:
- build:version
script:
- VERSION=$(cat $VERSION_FILE)
- source $CONFIG_FILE
- !reference [ .get_version_dependent_vars, script ]
- security unlock-keychain -p $SIGN_KEYCHAIN_PASSWORD $SIGN_LOGIN_KEYCHAIN_PATH
......@@ -87,7 +87,7 @@
- rm -Rf ${BIN_NAME_BASE}_pkg
artifacts:
paths:
- $ARTIFACTS_FOLDER/*
- $BIN_FOLDER_MACOS_PKG_AND_SIGN/*
expire_in: 10 mins
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
\ No newline at end of file
- if: $CI_COMMIT_REF_PROTECTED == "true"
\ No newline at end of file
......@@ -9,4 +9,32 @@ code_quality:lint:
- npm install
- npm run lint
rules:
- if: '$CI_COMMIT_TAG =~ "/^$/"'
\ No newline at end of file
- if: $CI_COMMIT_TAG
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: manual
- when: on_success
code_quality:sonarqube:
stage: code_quality
tags:
- code_quality
image:
name: leadrien/isc-sonar-scanner-cli
entrypoint: [ "" ]
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache:
key: "${CI_JOB_NAME}"
paths:
- .sonar/cache
script:
- sonar-scanner
rules:
- if: $CI_COMMIT_TAG
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: manual
- when: on_success
......@@ -12,4 +12,12 @@ test:build:
# Build
- !reference [ .build_cli, script ]
rules:
- if: '$CI_COMMIT_TAG =~ "/^$/" && $CI_COMMIT_REF_PROTECTED != "true" && $CI_COMMIT_BRANCH != "test"'
- if: $CI_COMMIT_TAG
when: never
- if: $CI_COMMIT_REF_PROTECTED == "true"
when: never
- if: $CI_COMMIT_BRANCH == "test"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: manual
- when: on_success
......@@ -10,7 +10,7 @@ build:version:
- !reference [ .get_version_dependent_vars, script ]
- mkdir -p $ARTIFACTS_FOLDER
- echo $VERSION > $VERSION_FILE
- echo "VERSION=${VERSION}" > $CONFIG_FILE
# Build
- !reference [ .build_cli, script ]
......@@ -20,4 +20,5 @@ build:version:
- $ARTIFACTS_FOLDER/*
expire_in: 10 mins
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_COMMIT_BRANCH == "test"'
- if: $CI_COMMIT_REF_PROTECTED == "true"
- if: $CI_COMMIT_BRANCH == "test"
pkg_and_sign:debian:
parallel:
matrix:
- ARCH: [ "arm64", "amd64" ]
- ARCH: "arm64"
BIN_FOLDER_DEBIAN_PKG_AND_SIGN: $BIN_FOLDER_LINUX_ARM64
- ARCH: "amd64"
BIN_FOLDER_DEBIAN_PKG_AND_SIGN: $BIN_FOLDER_LINUX_X64
before_script:
- !reference [ .global_before_script, script ]
- BIN_FOLDER_DEBIAN_PKG_AND_SIGN=$([[ $ARCH == "arm64" ]] && echo ${BIN_FOLDER_LINUX_ARM64} || echo ${BIN_FOLDER_LINUX_X64})
extends: .pkg_and_sign:debian
pkg_and_sign:debian-test:
pkg_and_sign:debian:test:
parallel:
matrix:
- ARCH: [ "arm64", "amd64" ]
- ARCH: "arm64"
BIN_FOLDER_DEBIAN_PKG_AND_SIGN: $BIN_FOLDER_LINUX_ARM64
- ARCH: "amd64"
BIN_FOLDER_DEBIAN_PKG_AND_SIGN: $BIN_FOLDER_LINUX_X64
before_script:
- !reference [ .global_before_script, script ]
- BIN_FOLDER_DEBIAN_PKG_AND_SIGN=$([[ $ARCH == "arm64" ]] && echo ${BIN_FOLDER_LINUX_ARM64} || echo ${BIN_FOLDER_LINUX_X64})
extends: .pkg_and_sign:debian
artifacts:
expire_in: 2 weeks
rules:
- if: '$CI_COMMIT_BRANCH == "test"'
- if: $CI_COMMIT_BRANCH == "test"
pkg_and_sign:macos:
parallel:
matrix:
- BIN_FOLDER_MACOS_PKG_AND_SIGN: [ "$BIN_FOLDER_MACOS_ARM64", "$BIN_FOLDER_MACOS_X64" ]
- ARCH: "arm64"
BIN_FOLDER_MACOS_PKG_AND_SIGN: $BIN_FOLDER_MACOS_ARM64
- ARCH: "amd64"
BIN_FOLDER_MACOS_PKG_AND_SIGN: $BIN_FOLDER_MACOS_X64
extends: .pkg_and_sign:macos
pkg_and_sign:macos-test:
pkg_and_sign:macos:test:
parallel:
matrix:
- BIN_FOLDER_MACOS_PKG_AND_SIGN: [ "$BIN_FOLDER_MACOS_ARM64", "$BIN_FOLDER_MACOS_X64" ]
- ARCH: "arm64"
BIN_FOLDER_MACOS_PKG_AND_SIGN: $BIN_FOLDER_MACOS_ARM64
- ARCH: "amd64"
BIN_FOLDER_MACOS_PKG_AND_SIGN: $BIN_FOLDER_MACOS_X64
extends: .pkg_and_sign:macos
artifacts:
expire_in: 2 weeks
rules:
- if: '$CI_COMMIT_BRANCH == "test"'
- if: $CI_COMMIT_BRANCH == "test"
......
......@@ -8,7 +8,7 @@ clean:release:
- !reference [ .get_version_dependent_vars, script ]
- !reference [ .clean_release, script ]
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
- if: $CI_COMMIT_REF_PROTECTED == "true"
clean:packages:
......@@ -21,10 +21,10 @@ clean:packages:
- !reference [ .get_version_dependent_vars, script ]
- !reference [ .clean_packages, script ]
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
- if: $CI_COMMIT_REF_PROTECTED == "true"
clean:dev:release:
clean:release:dev:
stage: clean
tags:
- gitlab_clean
......@@ -35,10 +35,10 @@ clean:dev:release:
- !reference [ .get_version_dependent_vars, script ]
- !reference [ .clean_release, script ]
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
clean:dev:packages:
clean:packages:dev:
stage: clean
tags:
- gitlab_clean
......@@ -49,10 +49,10 @@ clean:dev:packages:
- !reference [ .get_version_dependent_vars, script ]
- !reference [ .clean_packages, script ]
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
clean:latest:release:
clean:release:latest:
stage: clean
tags:
- gitlab_clean
......@@ -61,10 +61,10 @@ clean:latest:release:
- VERSION="Latest"
- !reference [ .clean_release, script ]
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
clean:pre-alpha:release:
clean:release:pre-alpha:
stage: clean
tags:
- gitlab_clean
......@@ -73,4 +73,6 @@ clean:pre-alpha:release:
- VERSION="Pre-alpha"
- !reference [ .clean_release, script ]
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
\ No newline at end of file
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: never
- if: $CI_COMMIT_REF_PROTECTED == "true"
\ No newline at end of file
......@@ -3,6 +3,7 @@ upload:packages:
tags:
- gitlab_package
dependencies:
- build:version
- pkg_and_sign:macos
- pkg_and_sign:debian
image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest
......@@ -27,10 +28,10 @@ upload:packages:
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${BIN_FILE_WINDOWS_ARM64} "${PACKAGE_URL_WINDOWS_ARM64_BIN}";'
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${BIN_FILE_WINDOWS_X64} "${PACKAGE_URL_WINDOWS_X64_BIN}";'
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
- if: $CI_COMMIT_REF_PROTECTED == "true"
upload:packages:wiki:
upload:packages:doc:wiki:
stage: upload
tags:
- gitlab_package
......@@ -51,4 +52,4 @@ upload:packages:wiki:
# Send package
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${WIKI_ARCHIVE_PATH} "${PACKAGE_URL_WIKI}";'
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
\ No newline at end of file
- if: $CI_COMMIT_REF_PROTECTED == "true"
\ No newline at end of file