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
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results

Target

Select target project
  • Dojo_Project_Nguyen/backend/dojobackendapi
  • dojo_project/projects/backend/dojobackendapi
2 results
Select Git revision
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results
Show changes
Commits on Source (13)
.env
aws.xml aws.xml
workspace.xml workspace.xml
...@@ -184,11 +182,10 @@ web_modules/ ...@@ -184,11 +182,10 @@ web_modules/
.yarn-integrity .yarn-integrity
# dotenv environment variable files # dotenv environment variable files
.env .env*
.env.development.local .flaskenv*
.env.test.local !.env.project
.env.production.local !.env.vault
.env.local
# parcel-bundler cache (https://parceljs.org/) # parcel-bundler cache (https://parceljs.org/)
.cache .cache
......
...@@ -3,29 +3,61 @@ variables: ...@@ -3,29 +3,61 @@ variables:
GIT_SUBMODULE_FORCE_HTTPS: "true" GIT_SUBMODULE_FORCE_HTTPS: "true"
SECURE_FILES_DOWNLOAD_PATH: './' SECURE_FILES_DOWNLOAD_PATH: './'
PROJECT_NAME: DojoBackendAPI
VERSION_DEV_SUFFIX: '-dev' VERSION_DEV_SUFFIX: '-dev'
GITLAB_API_PROJECT_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID} GITLAB_API_PROJECT_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}
PROJECT_FOLDER: ExpressAPI PROJECT_FOLDER: ExpressAPI
PACKAGE_REGISTRY_URL: "${GITLAB_API_PROJECT_URL}/packages/generic/${PROJECT_NAME}"
WIKI_FOLDER: Wiki
.get_version: .get_version:
script: script:
- IS_DEV=$([[ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ]] && echo false || echo true) - IS_DEV=$([[ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ]] && echo false || echo true)
- VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '') - VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '')
.get_packages_url:
script:
# Wiki
- WIKI_ARCHIVE_NAME="${PROJECT_NAME}_Wiki_${VERSION}.tar.xz"
- PACKAGE_URL_WIKI="${PACKAGE_REGISTRY_URL}_Wiki/${VERSION}/${WIKI_ARCHIVE_NAME}"
.clean_release: .clean_release:
script: script:
# Delete release if it already exists # Delete release if it already exists
- 'curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${GITLAB_API_PROJECT_URL}/releases/${VERSION}"' - 'curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${GITLAB_API_PROJECT_URL}/releases/${VERSION}"'
# Delete tag if it already exists (use private-token because job-token don't have permission to delete tags) # Delete tag if it already exists (use private-token because job-token don't have permission to delete tags)
- 'curl --request DELETE --header "PRIVATE-TOKEN: $GITLAB_PROJECT_ACCESS_TOKEN" "${GITLAB_API_PROJECT_URL}/repository/tags/${VERSION}"' - 'curl --request DELETE --header "PRIVATE-TOKEN: $GITLAB_PROJECT_ACCESS_TOKEN" "${GITLAB_API_PROJECT_URL}/repository/tags/${VERSION}"'
.clean_packages:
script:
# Get all packages of the project
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" "${GITLAB_API_PROJECT_URL}/packages" > gitlabPackages.json'
# Filter and select packages to delete (based on version)
- packagesToDelete=`jq -r '.[] | select(.version=="'${VERSION}'") | ._links.delete_api_path' gitlabPackages.json`
# Delete packages by calling Gitlab API
- >
for deletePath in $packagesToDelete; do
echo "Deleting package at path : ${deletePath}"
curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${deletePath}"
done
stages: stages:
- test - test
- clean - clean
- upload
- release - release
...@@ -41,6 +73,7 @@ test:build: ...@@ -41,6 +73,7 @@ test:build:
rules: rules:
- if: '$CI_COMMIT_TAG =~ "/^$/"' - if: '$CI_COMMIT_TAG =~ "/^$/"'
clean:release: clean:release:
stage: clean stage: clean
tags: tags:
...@@ -50,7 +83,20 @@ clean:release: ...@@ -50,7 +83,20 @@ clean:release:
- !reference [.get_version, script] - !reference [.get_version, script]
- !reference [.clean_release, script] - !reference [.clean_release, script]
rules: rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^v[0-9]+(\.[0-9]+)*$/' - if: '$CI_COMMIT_REF_PROTECTED == "true"'
clean:packages:
stage: clean
tags:
- gitlab_clean
image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest
script:
- !reference [.get_version, script]
- !reference [.clean_packages, script]
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
clean:dev:release: clean:dev:release:
stage: clean stage: clean
...@@ -64,6 +110,90 @@ clean:dev:release: ...@@ -64,6 +110,90 @@ clean:dev:release:
rules: rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
clean:dev:packages:
stage: clean
tags:
- gitlab_clean
image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest
script:
- !reference [.get_version, script]
- VERSION="${VERSION}${VERSION_DEV_SUFFIX}"
- !reference [.clean_packages, script]
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
upload:packages:wiki:
stage: upload
tags:
- gitlab_package
image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest
script:
# Install dependencies
- apk update
- apk add xz
- !reference [.get_version, script]
- !reference [.get_packages_url, script]
# Create archive
- WIKI_ARCHIVE_PATH="${ARTIFACTS_FOLDER}/${WIKI_ARCHIVE_NAME}"
- tar -v -c -C "${CI_PROJECT_DIR}/${WIKI_FOLDER}" -J -f "${WIKI_ARCHIVE_PATH}" . # Ubuntu: tar --verbose --create --cd wiki-test-2 --xz --file file.tar.bz2
# Send package
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${WIKI_ARCHIVE_PATH} "${PACKAGE_URL_WIKI}";'
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
release:wiki:
stage: release
tags:
- release
image: alpine:latest
script:
- !reference [.get_version, script]
- apk update
- apk add git
# Define URL for the wiki in terms of project-agnostic predefined variables
- WIKI_URL="${CI_SERVER_PROTOCOL}://project_${CI_PROJECT_ID}_bot:${GITLAB_PROJECT_ACCESS_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/${CI_PROJECT_PATH}.wiki.git"
# Clone this project's wiki under /tmp
- rm -rf "/tmp/${CI_PROJECT_NAME}.wiki"
- cd /tmp
- git clone "${WIKI_URL}"
# Enter the cloned repo
- cd "${CI_PROJECT_NAME}.wiki"
# Update the file
- mv .git/ ../
- rm -rf ./*
- mv ../.git/ ./
- cp "${CI_PROJECT_DIR}/.gitignore" .
- cp -R "${CI_PROJECT_DIR}/${WIKI_FOLDER}/." .
# Set committer info
- git config user.name "$GITLAB_USER_NAME"
- git config user.email "$GITLAB_USER_EMAIL"
# Commit the gitignore file
- git add ".gitignore"
- git commit -m "Add gitignore file" || true
# Commit the file
- git add .
- git commit -m "${VERSION}" || true
# Push the change back to the master branch of the wiki
- git push origin "HEAD:main"
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
release:gitlab: release:gitlab:
stage: release stage: release
tags: tags:
...@@ -71,18 +201,29 @@ release:gitlab: ...@@ -71,18 +201,29 @@ release:gitlab:
image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest image: registry.gitlab.com/gitlab-ci-utils/curl-jq:latest
script: script:
- !reference [.get_version, script] - !reference [.get_version, script]
- !reference [.get_packages_url, script]
- echo 'Running release_job' - echo 'Running release_job'
# Extract description from CHANGELOG.md # Extract description from CHANGELOG.md
- CHANGELOG_LINE_START=`awk '/##\ [0-9]+\.[0-9]+\.[0-9]+/{print NR; exit;}' CHANGELOG.md` - CHANGELOG_LINE_START=`awk '/##\ [0-9]+\.[0-9]+\.[0-9]+/{print NR; exit;}' CHANGELOG.md`
- CHANGELOG_LINE_END=`awk '/##\ [0-9]+\.[0-9]+\.[0-9]+/{ count++; if(count>1) {print NR; exit;}}' CHANGELOG.md` - CHANGELOG_LINE_END=`awk '/##\ [0-9]+\.[0-9]+\.[0-9]+/{ count++; if(count>1) {print NR; exit;}}' CHANGELOG.md`
- DESCRIPTION=`awk 'NR > '$CHANGELOG_LINE_START' && NR < '$CHANGELOG_LINE_END'' CHANGELOG.md` - DESCRIPTION=`awk 'NR > '$CHANGELOG_LINE_START' && NR < '$CHANGELOG_LINE_END'' CHANGELOG.md`
# Create Release (can't be done by release_step of gitlab image because it don't have access to env var defined in script_step) # Create Release (can't be done by release_step of gitlab image because it don't have access to env var defined in script_step)
- > - >
RELEASE_DATA=$(jq --null-input --arg version "$VERSION" --arg description "# Changelog (version $VERSION) $DESCRIPTION" --arg tag_name "$VERSION" --arg ref "$CI_COMMIT_SHORT_SHA" '{ RELEASE_DATA=$(jq --null-input --arg version "$VERSION" --arg description "# Changelog (version $VERSION) $DESCRIPTION" --arg tag_name "$VERSION" --arg ref "$CI_COMMIT_SHORT_SHA" '{
"name": $version, "name": $version,
"description": $description, "description": $description,
"tag_name": $tag_name, "tag_name": $tag_name,
"ref": $ref "ref": $ref,
"assets": {
"links": [
{
"name": "Wiki",
"url": "'${PACKAGE_URL_WIKI}'",
}
]
}
}') }')
- > - >
curl --data "${RELEASE_DATA}" \ curl --data "${RELEASE_DATA}" \
...@@ -90,4 +231,4 @@ release:gitlab: ...@@ -90,4 +231,4 @@ release:gitlab:
--header "JOB-TOKEN: $CI_JOB_TOKEN" \ --header "JOB-TOKEN: $CI_JOB_TOKEN" \
--request POST "${GITLAB_API_PROJECT_URL}/releases" --request POST "${GITLAB_API_PROJECT_URL}/releases"
rules: rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^v[0-9]+(\.[0-9]+)*$/' - if: '$CI_COMMIT_REF_PROTECTED == "true"'
...@@ -14,6 +14,22 @@ ...@@ -14,6 +14,22 @@
**⚠️ Deprecation:** **⚠️ Deprecation:**
--> -->
## 2.1.0 (?)
### ✨ Feature
- Added pipeline badge to exercises
### 🎨 Interface
- **💥 Breaking:** Renamed `dojo.enonce` (or `dojo.assignment`) file to `dojo_assignment.json`
### 🔨 Internal / Developers
- Deploy Wiki on Gitlab (on push to `main`) from files of `Wiki` folder
- Migration from .env files stored in Gitlab Secure Files to usage of `dotenv-vault` (locally)
### 📚 Documentation
- Added Wiki base
## 2.0.0 (2023-09-15) ## 2.0.0 (2023-09-15)
### ✨ Feature ### ✨ Feature
......
#/-------------------.env.vault---------------------/
#/ cloud-agnostic vaulting standard /
#/ [how it works](https://dotenv.org/env-vault) /
#/--------------------------------------------------/
# development
DOTENV_VAULT_DEVELOPMENT="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"
# production
DOTENV_VAULT_PRODUCTION="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"
.env*
.flaskenv*
!.env.project
!.env.vault
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"node_modules", "node_modules",
"prisma", "prisma",
"src", "src",
".env" ".env.vault"
], ],
"verbose": true, "verbose": true,
"ext" : ".ts,.js", "ext" : ".ts,.js",
......
This diff is collapsed.
{ {
"name" : "dojo_backend_api", "name" : "dojo_backend_api",
"description" : "Backend API for the Dojo Project", "description" : "Backend API for the Dojo Project",
"version" : "2.0.0", "version" : "2.1.0",
"license" : "", "license" : "",
"author" : "Michaël Minelli <michael-jean.minelli@hesge.ch>", "author" : "Michaël Minelli <michael-jean.minelli@hesge.ch>",
"main" : "app.js", "main" : "app.js",
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
"bcryptjs" : "^2.4.3", "bcryptjs" : "^2.4.3",
"compression" : "^1.7.4", "compression" : "^1.7.4",
"cors" : "^2.8.5", "cors" : "^2.8.5",
"dotenv" : "^16.0.3", "dotenv" : "^16.3.1",
"express" : "^4.18.2", "express" : "^4.18.2",
"express-validator": "^7.0.1", "express-validator": "^7.0.1",
"form-data" : "^4.0.0", "form-data" : "^4.0.0",
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
"@types/parse-link-header": "^2.0.1", "@types/parse-link-header": "^2.0.1",
"@types/tar-stream" : "^2.2.2", "@types/tar-stream" : "^2.2.2",
"@types/uuid" : "^9.0.2", "@types/uuid" : "^9.0.2",
"dotenv-vault" : "^1.25.0",
"nodemon" : "^3.0.1", "nodemon" : "^3.0.1",
"prisma" : "^5.1.1", "prisma" : "^5.1.1",
"ts-node" : "^10.9.1", "ts-node" : "^10.9.1",
......
require('dotenv').config(); // ATTENTION : This line MUST be the first of this file // Read from the .env file
require('./shared/helpers/TypeScriptExtensions'); // ATTENTION : This line MUST be the second of this file // ATTENTION : This lines MUST be the first of this file (except for the path import)
const path = require('node:path');
if ( process.env.NODE_ENV && process.env.NODE_ENV === 'production' ) {
require('dotenv').config();
} else {
require('dotenv').config({ path: path.join(__dirname, '../.env.keys') });
require('dotenv').config({ DOTENV_KEY: process.env.DOTENV_KEY_DEVELOPMENT });
}
require('./shared/helpers/TypeScriptExtensions'); // ATTENTION : This line MUST be after the dotenv.config() calls
import WorkerRole from './process/WorkerRole'; import WorkerRole from './process/WorkerRole';
import ClusterManager from './process/ClusterManager'; import ClusterManager from './process/ClusterManager';
......