runs-on: ubuntu-latest
continue-on-error: true
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- run: pipx install poetry
- - uses: actions/setup-python@v7
+ - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7
with:
python-version: 3.15
cache: poetry
poetry install --no-root
poetry run task format
- - uses: pnpm/action-setup@v6
- - uses: actions/setup-node@v7
+ - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
+ - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
cache: 'pnpm'
run:
working-directory: tests/ocpp-server
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Install Poetry
run: pipx install poetry
- name: Setup Python ${{ matrix.python }}
- uses: actions/setup-python@v7
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7
with:
python-version: ${{ matrix.python }}
cache: poetry
name: Build simulator with Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Dependency Review
if: ${{ github.event_name == 'push' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
with:
base-ref: ${{ github.ref_name }}
head-ref: ${{ github.sha }}
- name: Pull Request Dependency Review
if: ${{ github.event_name == 'pull_request' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
- - uses: pnpm/action-setup@v6
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
+ - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
- name: Setup node ${{ matrix.node }}
- uses: actions/setup-node@v7
+ uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
# SemVer '*' excludes prereleases; the 'latest' alias does not.
node-version: ${{ matrix.node == 'latest' && '*' || matrix.node }}
run: pnpm test:coverage
- name: SonarCloud Scan
if: ${{ needs.check-secrets.outputs.sonar-token-exists == 'true' && github.repository == 'sap/e-mobility-charging-stations-simulator' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: sonarsource/sonarqube-scan-action@v8.4
+ uses: sonarsource/sonarqube-scan-action@4d1dc0c91ee400dcf8a6dddf2f705ac36542e304 # v8.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run:
working-directory: ui/common
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
- - uses: pnpm/action-setup@v6
+ - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
- name: Setup node ${{ matrix.node }}
- uses: actions/setup-node@v7
+ uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'
run: pnpm test:coverage
- name: SonarCloud Scan
if: ${{ needs.check-secrets.outputs.sonar-token-exists == 'true' && github.repository == 'sap/e-mobility-charging-stations-simulator' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: sonarsource/sonarqube-scan-action@v8.4
+ uses: sonarsource/sonarqube-scan-action@4d1dc0c91ee400dcf8a6dddf2f705ac36542e304 # v8.4
with:
projectBaseDir: ui/common
env:
run:
working-directory: ui/cli
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
- name: Dependency Review
if: ${{ github.event_name == 'push' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
with:
base-ref: ${{ github.ref_name }}
head-ref: ${{ github.sha }}
- name: Pull Request Dependency Review
if: ${{ github.event_name == 'pull_request' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
- - uses: pnpm/action-setup@v6
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
+ - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
- name: Setup node ${{ matrix.node }}
- uses: actions/setup-node@v7
+ uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
node-version: ${{ matrix.node == 'latest' && '*' || matrix.node }}
check-latest: ${{ matrix.node == 'latest' }}
run: pnpm test:coverage
- name: SonarCloud Scan
if: ${{ needs.check-secrets.outputs.sonar-token-exists == 'true' && github.repository == 'sap/e-mobility-charging-stations-simulator' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: sonarsource/sonarqube-scan-action@v8.4
+ uses: sonarsource/sonarqube-scan-action@4d1dc0c91ee400dcf8a6dddf2f705ac36542e304 # v8.4
with:
projectBaseDir: ui/cli
env:
run:
working-directory: ui/web
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Dependency Review
if: ${{ github.event_name == 'push' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
with:
base-ref: ${{ github.ref_name }}
head-ref: ${{ github.sha }}
- name: Pull Request Dependency Review
if: ${{ github.event_name == 'pull_request' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: actions/dependency-review-action@v5.0.0
- - uses: pnpm/action-setup@v6
+ uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
+ - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
- name: Setup node ${{ matrix.node }}
- uses: actions/setup-node@v7
+ uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
node-version: ${{ matrix.node == 'latest' && '*' || matrix.node }}
check-latest: ${{ matrix.node == 'latest' }}
run: pnpm test:coverage
- name: SonarCloud Scan
if: ${{ needs.check-secrets.outputs.sonar-token-exists == 'true' && github.repository == 'sap/e-mobility-charging-stations-simulator' && matrix.os == 'ubuntu-latest' && matrix.node == '24.x' }}
- uses: sonarsource/sonarqube-scan-action@v8.4
+ uses: sonarsource/sonarqube-scan-action@4d1dc0c91ee400dcf8a6dddf2f705ac36542e304 # v8.4
with:
projectBaseDir: ui/web
env:
runs-on: ubuntu-latest
name: Build simulator docker image
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Setup Docker Buildx
id: buildx
- uses: docker/setup-buildx-action@v4
+ uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- name: Build docker image
run: |
cd docker
working-directory: ui/web
name: Build dashboard docker image
steps:
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Setup Docker Buildx
id: buildx
- uses: docker/setup-buildx-action@v4
+ uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4
- name: Build docker image
run: |
cd docker
steps:
- name: Checkout repository
- uses: actions/checkout@v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v4
+ uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v4
+ uses: github/codeql-action/autobuild@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4
# âšī¸ Command-line programs to run using the OS shell.
# đ https://git.io/JvXDl
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v4
+ uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4
runs-on: ubuntu-latest
if: github.repository == 'sap/e-mobility-charging-stations-simulator'
steps:
- - uses: googleapis/release-please-action@v5
+ - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5
id: release
with:
token: ${{ secrets.WORKFLOW_TOKEN }}
config-file: .github/release-please/config.json
manifest-file: .github/release-please/manifest.json
- - uses: actions/checkout@v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
if: ${{ steps.release.outputs.release_created }}
- name: Create tags for major and minor versions
if: ${{ steps.release.outputs.release_created }}
"utf-8-validate": "^6.0.6"
},
"devDependencies": {
- "@commitlint/cli": "^21.2.4",
- "@commitlint/config-conventional": "^21.2.4",
- "@cspell/eslint-plugin": "^10.4.0",
- "@eslint/js": "^10.0.1",
- "@mikro-orm/cli": "^6.6.17",
- "@types/node": "^24.19.2",
- "@types/semver": "^7.8.0",
- "@types/ws": "^8.18.2",
- "cross-env": "^10.1.0",
- "esbuild": "^0.28.2",
- "esbuild-plugin-clean": "^1.0.1",
- "esbuild-plugin-copy": "^2.1.1",
- "eslint": "^10.13.0",
- "eslint-plugin-jsdoc": "^65.4.2",
- "eslint-plugin-perfectionist": "^5.13.0",
- "eslint-plugin-vue": "^10.11.1",
- "husky": "^9.1.7",
- "lint-staged": "^17.6.0",
- "neostandard": "^0.14.1",
- "prettier": "^3.9.10",
- "rimraf": "^6.1.3",
- "semver": "^7.8.5",
- "skott": "^0.35.12",
- "ts-node": "^10.9.2",
- "tsx": "^4.23.15",
- "typescript": "~6.0.3",
- "typescript-language-server": "^6.0.2",
- "vue-eslint-parser": "^10.4.1"
+ "@commitlint/cli": "21.2.4",
+ "@commitlint/config-conventional": "21.2.4",
+ "@cspell/eslint-plugin": "10.4.0",
+ "@eslint/js": "10.0.1",
+ "@mikro-orm/cli": "6.6.17",
+ "@types/node": "24.19.2",
+ "@types/semver": "7.8.0",
+ "@types/ws": "8.18.2",
+ "cross-env": "10.1.0",
+ "esbuild": "0.28.2",
+ "esbuild-plugin-clean": "1.0.1",
+ "esbuild-plugin-copy": "2.1.1",
+ "eslint": "10.13.0",
+ "eslint-plugin-jsdoc": "65.4.2",
+ "eslint-plugin-perfectionist": "5.13.0",
+ "eslint-plugin-vue": "10.12.0",
+ "husky": "9.1.7",
+ "lint-staged": "17.6.0",
+ "neostandard": "0.14.1",
+ "prettier": "3.9.10",
+ "rimraf": "6.1.3",
+ "semver": "7.8.5",
+ "skott": "0.35.12",
+ "ts-node": "10.9.2",
+ "tsx": "4.23.15",
+ "typescript": "6.0.3",
+ "typescript-language-server": "6.0.2",
+ "vue-eslint-parser": "10.4.1"
}
}
version: 4.6.7
devDependencies:
'@commitlint/cli':
- specifier: ^21.2.4
+ specifier: 21.2.4
version: 21.2.4(conventional-commits-parser@7.1.3)(typescript@6.0.3)
'@commitlint/config-conventional':
- specifier: ^21.2.4
+ specifier: 21.2.4
version: 21.2.4
'@cspell/eslint-plugin':
- specifier: ^10.4.0
+ specifier: 10.4.0
version: 10.4.0(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))
'@eslint/js':
- specifier: ^10.0.1
+ specifier: 10.0.1
version: 10.0.1(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))
'@mikro-orm/cli':
- specifier: ^6.6.17
+ specifier: 6.6.17
version: 6.6.17(better-sqlite3@11.10.0)(mariadb@3.4.5)(supports-color@7.2.0)
'@types/node':
- specifier: ^24.19.2
+ specifier: 24.19.2
version: 24.19.2
'@types/semver':
- specifier: ^7.8.0
+ specifier: 7.8.0
version: 7.8.0
'@types/ws':
- specifier: ^8.18.2
+ specifier: 8.18.2
version: 8.18.2
cross-env:
- specifier: ^10.1.0
+ specifier: 10.1.0
version: 10.1.0
esbuild:
- specifier: ^0.28.2
+ specifier: 0.28.2
version: 0.28.2
esbuild-plugin-clean:
- specifier: ^1.0.1
+ specifier: 1.0.1
version: 1.0.1(esbuild@0.28.2)
esbuild-plugin-copy:
- specifier: ^2.1.1
+ specifier: 2.1.1
version: 2.1.1(esbuild@0.28.2)
eslint:
- specifier: ^10.13.0
+ specifier: 10.13.0
version: 10.13.0(jiti@2.7.0)(supports-color@7.2.0)
eslint-plugin-jsdoc:
- specifier: ^65.4.2
+ specifier: 65.4.2
version: 65.4.2(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
eslint-plugin-perfectionist:
- specifier: ^5.13.0
+ specifier: 5.13.0
version: 5.13.0(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
eslint-plugin-vue:
- specifier: ^10.11.1
+ specifier: 10.12.0
version: 10.12.0(@stylistic/eslint-plugin@5.10.0(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0)))(@typescript-eslint/parser@8.72.1(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(vue-eslint-parser@10.4.1(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0))
husky:
- specifier: ^9.1.7
+ specifier: 9.1.7
version: 9.1.7
lint-staged:
- specifier: ^17.6.0
+ specifier: 17.6.0
version: 17.6.0
neostandard:
- specifier: ^0.14.1
+ specifier: 0.14.1
version: 0.14.1(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
prettier:
- specifier: ^3.9.10
+ specifier: 3.9.10
version: 3.9.10
rimraf:
- specifier: ^6.1.3
+ specifier: 6.1.3
version: 6.1.3
semver:
- specifier: ^7.8.5
+ specifier: 7.8.5
version: 7.8.5
skott:
- specifier: ^0.35.12
+ specifier: 0.35.12
version: 0.35.12(supports-color@7.2.0)
ts-node:
- specifier: ^10.9.2
+ specifier: 10.9.2
version: 10.9.2(@types/node@24.19.2)(typescript@6.0.3)
tsx:
- specifier: ^4.23.15
+ specifier: 4.23.15
version: 4.23.15
typescript:
- specifier: ~6.0.3
+ specifier: 6.0.3
version: 6.0.3
typescript-language-server:
- specifier: ^6.0.2
+ specifier: 6.0.2
version: 6.0.2
vue-eslint-parser:
- specifier: ^10.4.1
+ specifier: 10.4.1
version: 10.4.1(eslint@10.13.0(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
optionalDependencies:
bufferutil:
version: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
devDependencies:
'@types/ws':
- specifier: ^8.18.2
+ specifier: 8.18.2
version: 8.18.2
esbuild:
- specifier: ^0.28.2
+ specifier: 0.28.2
version: 0.28.2
esbuild-plugin-clean:
- specifier: ^1.0.1
+ specifier: 1.0.1
version: 1.0.1(esbuild@0.28.2)
ui/common:
version: 3.1.3(vue@3.5.44(typescript@6.0.3))
devDependencies:
'@tsconfig/node24':
- specifier: ^24.0.5
+ specifier: 24.0.5
version: 24.0.5
'@types/jsdom':
- specifier: ^30.0.0
+ specifier: 30.0.0
version: 30.0.0
'@vitejs/plugin-vue':
- specifier: ^6.0.10
+ specifier: 6.0.10
version: 6.0.10(vite@8.3.5(@types/node@24.19.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))(vue@3.5.44(typescript@6.0.3))
'@vitejs/plugin-vue-jsx':
- specifier: ^5.1.6
+ specifier: 5.1.6
version: 5.1.6(supports-color@7.2.0)(vite@8.3.5(@types/node@24.19.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))(vue@3.5.44(typescript@6.0.3))
'@vitest/coverage-v8':
- specifier: ^5.0.5
+ specifier: 5.0.5
version: 5.0.5(vitest@5.0.5)
'@vue/test-utils':
- specifier: ^2.5.1
+ specifier: 2.5.1
version: 2.5.1(@vue/compiler-dom@3.5.44)(@vue/server-renderer@3.5.44)(vue@3.5.44(typescript@6.0.3))
'@vue/tsconfig':
- specifier: ^0.9.1
+ specifier: 0.9.1
version: 0.9.1(typescript@6.0.3)(vue@3.5.44(typescript@6.0.3))
jsdom:
- specifier: ^30.1.3
+ specifier: 30.1.3
version: 30.1.3
vite:
- specifier: ^8.3.5
+ specifier: 8.3.5
version: 8.3.5(@types/node@24.19.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)
vitest:
- specifier: ^5.0.5
+ specifier: 5.0.5
version: 5.0.5(@opentelemetry/api@1.10.0)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.5)(jsdom@30.1.3)(vite@8.3.5(@types/node@24.19.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))
vue-tsc:
- specifier: ^3.3.13
+ specifier: 3.3.13
version: 3.3.13(typescript@6.0.3)
packages:
[metadata]
lock-version = "2.1"
python-versions = ">=3.12,<4.0"
-content-hash = "c16041c0852df07e5deaf997e48011e6dbbb3a7ae9d7baef347eb9aec4c5e95d"
+content-hash = "d0459f7508710396e00cff79b94864b3ef1d41d02430aad01460517f01054151"
]
[tool.poetry.group.dev.dependencies]
-taskipy = "^1"
-ruff = "^0.17.0"
-mypy = "^2.0.0"
-pytest = "^9.0.0"
-pytest-asyncio = ">=1.3.0"
-pytest-cov = "^7.0.0"
+taskipy = "1.14.1"
+ruff = "0.17.3"
+mypy = "2.4.1"
+pytest = "9.2.0"
+pytest-asyncio = "==1.4.1"
+pytest-cov = "7.1.0"
[tool.taskipy.tasks]
server = "poetry run python server.py"
"ws": "^8.22.0"
},
"devDependencies": {
- "@types/ws": "^8.18.2",
- "esbuild": "^0.28.2",
- "esbuild-plugin-clean": "^1.0.1"
+ "@types/ws": "8.18.2",
+ "esbuild": "0.28.2",
+ "esbuild-plugin-clean": "1.0.1"
}
}
"vue-toast-notification": "^3.1.3"
},
"devDependencies": {
- "@tsconfig/node24": "^24.0.5",
- "@types/jsdom": "^30.0.0",
- "@vitejs/plugin-vue": "^6.0.10",
- "@vitejs/plugin-vue-jsx": "^5.1.6",
- "@vitest/coverage-v8": "^5.0.5",
- "@vue/test-utils": "^2.5.1",
- "@vue/tsconfig": "^0.9.1",
- "jsdom": "^30.1.3",
- "vite": "^8.3.5",
- "vitest": "^5.0.5",
- "vue-tsc": "^3.3.13"
+ "@tsconfig/node24": "24.0.5",
+ "@types/jsdom": "30.0.0",
+ "@vitejs/plugin-vue": "6.0.10",
+ "@vitejs/plugin-vue-jsx": "5.1.6",
+ "@vitest/coverage-v8": "5.0.5",
+ "@vue/test-utils": "2.5.1",
+ "@vue/tsconfig": "0.9.1",
+ "jsdom": "30.1.3",
+ "vite": "8.3.5",
+ "vitest": "5.0.5",
+ "vue-tsc": "3.3.13"
}
}