diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7844cfe..75c968b 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: fetch-depth: 2 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: '22' cache: 'npm' @@ -41,7 +41,7 @@ jobs: --coverage-exclude='src/app/features/tours/components/tour-map.component.ts' - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./frontend/coverage/cobertura-coverage.xml @@ -53,7 +53,7 @@ jobs: services: postgres: - image: postgres:16 + image: postgres:16@sha256:71e27bf60b70bded003791b5573f8b808365613f341df20ffcf0c1ed7bc13ddf env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres @@ -71,12 +71,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: fetch-depth: 2 - name: Setup .NET 10 - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5 with: dotnet-version: '10.0.x' @@ -110,7 +110,7 @@ jobs: --results-directory TestResults - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./backend/TestResults/coverage.cobertura.xml diff --git a/deploy/Dockerfile b/deploy/Dockerfile index 2d288f2..66a7f05 100644 --- a/deploy/Dockerfile +++ b/deploy/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS api-build +FROM mcr.microsoft.com/dotnet/sdk:10.0@sha256:8a90a473da5205a16979de99d2fc20975e922c68304f5c79d564e666dc3982fc AS api-build WORKDIR /src COPY backend/Directory.Packages.props backend/Directory.Build.props backend/Version.props backend/global.json ./ @@ -16,7 +16,7 @@ COPY backend/Contracts/ Contracts/ RUN dotnet publish "API/API.csproj" -c Release -o /app/api/publish -FROM node:22-alpine AS ui-build +FROM node:22-alpine@sha256:8ea2348b068a9544dae7317b4f3aafcdc032df1647bb7d768a05a5cad1a7683f AS ui-build WORKDIR /app COPY frontend/package.json frontend/package-lock.json ./ @@ -28,7 +28,7 @@ COPY frontend/angular.json frontend/tsconfig.json frontend/tsconfig.app.json ./ RUN npx ng build --configuration production -FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS api +FROM mcr.microsoft.com/dotnet/aspnet:10.0@sha256:55e37c7795bfaf6b9cc5d77c155811d9569f529d86e20647704bc1d7dd9741d4 AS api WORKDIR /app COPY --from=api-build /app/api/publish ./ @@ -38,7 +38,7 @@ ENV ASPNETCORE_ENVIRONMENT=Production ENTRYPOINT ["dotnet", "API.dll"] -FROM nginx:alpine AS ui +FROM nginx:alpine@sha256:5616878291a2eed594aee8db4dade5878cf7edcb475e59193904b198d9b830de AS ui WORKDIR /usr/share/nginx/html COPY --from=ui-build /app/dist/swen2-tourplanner-angular/browser ./ diff --git a/deploy/compose.yaml b/deploy/compose.yaml index b220e6a..20e4c77 100644 --- a/deploy/compose.yaml +++ b/deploy/compose.yaml @@ -1,7 +1,7 @@ services: postgres: container_name: ${COMPOSE_PROJECT_NAME:-tourplanner}-postgres - image: postgres:17.2 + image: postgres:17.2@sha256:3267c505060a0052e5aa6e5175a7b41ab6b04da2f8c4540fc6e98a37210aa2d3 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres @@ -21,7 +21,7 @@ services: pgadmin: container_name: ${COMPOSE_PROJECT_NAME:-tourplanner}-pgadmin - image: dpage/pgadmin4:8.3 + image: dpage/pgadmin4:8.3@sha256:f1460b121383a5d61c20867ecd42535d4aabb385d32685b0e0845367ab9b86c4 environment: PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: admin diff --git a/frontend/package-lock.json b/frontend/package-lock.json index f399a55..e99e3d6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -23,16 +23,16 @@ "tslib": "^2.3.0" }, "devDependencies": { - "@angular/build": "^21.2.2", - "@angular/cli": "^21.2.2", - "@angular/compiler-cli": "^21.2.4", - "@types/leaflet": "^1.9.21", - "@vitest/coverage-v8": "^4.1.0", - "jsdom": "^28.0.0", - "openapi-typescript": "^7.13.0", - "prettier": "^3.8.1", - "typescript": "~5.9.2", - "vitest": "^4.1.0" + "@angular/build": "21.2.2", + "@angular/cli": "21.2.2", + "@angular/compiler-cli": "21.2.11", + "@types/leaflet": "1.9.21", + "@vitest/coverage-v8": "4.1.5", + "jsdom": "28.1.0", + "openapi-typescript": "7.13.0", + "prettier": "3.8.1", + "typescript": "5.9.3", + "vitest": "4.1.5" }, "engines": { "node": "22.x" diff --git a/frontend/package.json b/frontend/package.json index 3c9446c..b5fb277 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -35,15 +35,15 @@ "tslib": "^2.3.0" }, "devDependencies": { - "@angular/build": "^21.2.2", - "@angular/cli": "^21.2.2", - "@angular/compiler-cli": "^21.2.4", - "@types/leaflet": "^1.9.21", - "@vitest/coverage-v8": "^4.1.0", - "jsdom": "^28.0.0", - "openapi-typescript": "^7.13.0", - "prettier": "^3.8.1", - "typescript": "~5.9.2", - "vitest": "^4.1.0" + "@angular/build": "21.2.2", + "@angular/cli": "21.2.2", + "@angular/compiler-cli": "21.2.11", + "@types/leaflet": "1.9.21", + "@vitest/coverage-v8": "4.1.5", + "jsdom": "28.1.0", + "openapi-typescript": "7.13.0", + "prettier": "3.8.1", + "typescript": "5.9.3", + "vitest": "4.1.5" } }