Skip to content

Commit

Permalink
Merge pull request #52 from Nils1729/release/v1.2.4
Browse files Browse the repository at this point in the history
Release v1.2.4
  • Loading branch information
Nils1729 authored May 15, 2023
2 parents 356b9a8 + 1367858 commit 3708094
Show file tree
Hide file tree
Showing 92 changed files with 1,343 additions and 478 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/create-release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- name: Update changelog
uses: thomaseizinger/keep-a-changelog-new-release@v1
with:
tag: ${{ github.event.inputs.versionName }}
tag: v${{ github.event.inputs.versionName }}
- name: Format changelog
run: npm run prettier
- name: Commit updated version and changelog
Expand Down
274 changes: 6 additions & 268 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,283 +42,21 @@ jobs:
node-version: '18'
- name: Cache node modules and shared/dist
uses: ./.github/actions/cache-build
- name: Run ESLint
run: npm run lint
- name: Run Prettier
if: always()
run: npm run prettier:check

dependencies:
timeout-minutes: 10
runs-on: ubuntu-latest

needs: build

continue-on-error: true

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Cache node modules and shared/dist
uses: ./.github/actions/cache-build
- name: Audit root
if: always()
run: npm audit
- name: Audit shared
if: always()
run: cd shared; npm audit; cd ..
- name: Audit frontend
if: always()
run: cd frontend; npm audit; cd ..
- name: Audit backend
if: always()
run: cd backend; npm audit; cd ..

test:
timeout-minutes: 4
runs-on: ubuntu-latest

needs: build

services:
postgres:
image: postgres:14
env:
POSTGRES_DB: ${{ vars.POSTGRES_DB }}
POSTGRES_PASSWORD: ${{ vars.POSTGRES_PASSWORD }}
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Cache node modules and shared/dist
uses: ./.github/actions/cache-build
- name: Create .env
run: >
cat ./.env.example
| sed -e "s/^DFM_DB_USER=.*$/DFM_DB_USER=${{ vars.POSTGRES_USER }}/"
| sed -e "s/^#DFM_DB_PASSWORD=.*$/DFM_DB_PASSWORD=${{ vars.POSTGRES_PASSWORD }}/"
| sed -e "s/^DFM_DB_NAME=.*$/DFM_DB_NAME=${{ vars.POSTGRES_DB }}/"
| sed -e "s/^DFM_DB_HOST=.*$/DFM_DB_HOST=127.0.0.1/" > ./.env
- name: Run migrations
run: cd backend && npm run migration:run && cd ..
- name: Run Backend Tests
run: cd backend && npm run test:ci-no-migration; cd ..
if: always()
- name: Run Frontend Tests
run: cd frontend && npm run test:ci; cd ..
if: always()
- name: Run Shared Tests
run: cd shared && npm run test:ci; cd ..
if: always()
- name: Merge coverage
run: npm run merge-coverage
if: always()
- name: Upload coverage
uses: actions/upload-artifact@v3
if: always()
with:
name: coverage-output
path: coverage

migration-test:
timeout-minutes: 4
runs-on: ubuntu-latest

needs: build

services:
postgres:
image: postgres:14
env:
POSTGRES_DB: ${{ vars.POSTGRES_DB }}
POSTGRES_PASSWORD: ${{ vars.POSTGRES_PASSWORD }}
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Cache node modules and shared/dist
uses: ./.github/actions/cache-build
- name: Create .env
run: >
cat ./.env.example
| sed -e "s/^DFM_DB_USER=.*$/DFM_DB_USER=${{ vars.POSTGRES_USER }}/"
| sed -e "s/^#DFM_DB_PASSWORD=.*$/DFM_DB_PASSWORD=${{ vars.POSTGRES_PASSWORD }}/"
| sed -e "s/^DFM_DB_NAME=.*$/DFM_DB_NAME=${{ vars.POSTGRES_DB }}/"
| sed -e "s/^DFM_DB_HOST=.*$/DFM_DB_HOST=127.0.0.1/" > ./.env
- name: Run migrations
run: cd backend && npm run migration:run && cd ..
- name: Fetch Test Scenarios
run: git submodule update --init --recursive
if: always()
- name: Run Migration Tests
run: cd backend && npm run test:ci-migration; cd ..
if: always()

cypress:
timeout-minutes: 20
runs-on: ${{ matrix.os }}

needs: build

services:
postgres:
image: postgres:14
env:
POSTGRES_DB: ${{ vars.POSTGRES_DB }}
POSTGRES_PASSWORD: ${{ vars.POSTGRES_PASSWORD }}
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
strategy:
matrix:
os: [ubuntu-latest]
browser: [firefox, chromium]
fail-fast: false

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Cache node modules and shared/dist
uses: ./.github/actions/cache-build
- name: Cache Cypress binary
uses: actions/cache@v3
id: cache-cypress
with:
path: ~/.cache/Cypress
key: cypress-${{ hashFiles('package-lock.json', '**/package-lock.json') }}-${{ runner.os }}
- name: Install Cypress
if: steps.cache-cypress.outputs.cache-hit != 'true'
run: npm run cy:install
- name: Create .env
run: >
cat ./.env.example
| sed -e "s/^DFM_DB_USER=.*$/DFM_DB_USER=${{ vars.POSTGRES_USER }}/"
| sed -e "s/^#DFM_DB_PASSWORD=.*$/DFM_DB_PASSWORD=${{ vars.POSTGRES_PASSWORD }}/"
| sed -e "s/^DFM_DB_NAME=.*$/DFM_DB_NAME=${{ vars.POSTGRES_DB }}/"
| sed -e "s/^DFM_DB_HOST=.*$/DFM_DB_HOST=127.0.0.1/" > ./.env
- name: Run migrations
run: cd backend && npm run migration:run && cd ..
- name: Run Cypress
uses: cypress-io/github-action@v5
with:
start: npm --prefix .. -- run start:all
working-directory: frontend
browser: ${{ matrix.browser }}
wait-on: 'http://127.0.0.1:4200/, http://127.0.0.1:3201/api/health'
command-prefix: '--' # So cypress is using our node version: https://github.com/cypress-io/github-action/issues/489#issuecomment-1021379037
# - name: Archive cypress videos
# if: always()
# uses: actions/upload-artifact@v3
# with:
# name: cypress-videos-${{ matrix.browser }}
# path: frontend/cypress/videos
- name: Archive cypress screenshots
if: always()
uses: actions/upload-artifact@v3
with:
name: cypress-screenshots-${{ matrix.browser }}
path: frontend/cypress/screenshots

# Dummy step to gate until all test are complete
tests-done:
if: always()
needs:
- test
- cypress
- lint
- migration-test
runs-on: ubuntu-latest
steps:
- uses: matrix-org/done-action@v2
with:
needs: ${{ toJSON (needs) }}

deploy-dev:
timeout-minutes: 10
runs-on: ubuntu-latest

needs: tests-done

if: github.ref == 'refs/heads/dev'

steps:
- uses: actions/checkout@v3
# Source: https://docs.docker.com/ci-cd/github-actions/
- name: Add commit hash to version
uses: ./.github/actions/add-commit-hash-to-version
- name: Login to docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/dfm:dev

deploy-main:
timeout-minutes: 10
runs-on: ubuntu-latest

needs: tests-done

if: github.ref == 'refs/heads/main'

steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/extract-version
# Source: https://docs.docker.com/ci-cd/github-actions/
- name: Login to docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
push: true
tags: >
${{ secrets.DOCKER_HUB_USERNAME }}/dfm:latest ,
${{ secrets.DOCKER_HUB_USERNAME }}/dfm:${{ env.VERSION_NAME }}
release-main:
timeout-minutes: 2
runs-on: ubuntu-latest
Expand All @@ -336,11 +74,11 @@ jobs:
- name: Extract release notes
id: extract_release_notes
uses: ffurrer2/extract-release-notes@v1
- name: Create Release
run: >
gh release create "v${{ env.VERSION_NAME }}"
--title "v${{ env.VERSION_NAME }}"
--notes "${{ steps.extract_release_notes.outputs.release_notes }}"
--target "main"
- name: Create release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ env.VERSION_NAME }}
release_name: v${{ env.VERSION_NAME }}
body: ${{ steps.extract-release-notes.outputs.release_notes }}
25 changes: 24 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,28 @@ and this project does **not** adhere to [Semantic Versioning](https://semver.org

## [Unreleased]

## [1.2.4] - 2023-05-15

### Added

- Added a new favicon.
- 2 new events related to patient transport have been added to the simulation.
- Selected material, personnel and vehicles are now highlighted on the map.
- When material or personnel is selected, the corresponding vehicle is highlighted as well.
- When a vehicle is selected, the corresponding material and personnel are highlighted as well.
- A generic catch-all hospital is present in every exercise and cannot be deleted.
- The reports behavior can generate reports on the counts of transferred patients per triage category.
- The reports behavior can generate event-based reports when the last patient of a triage category has been transferred to a hospital.

### Changed

- Add behaviors button now opens towards the top.
- Simulated regions can now send patients to any hospital. The hospitals tab was removed.

### Fixed

- Removed the id property of events.

## [0.5.1] - 2023-05-09

### Fixed
Expand Down Expand Up @@ -201,7 +223,8 @@ and this project does **not** adhere to [Semantic Versioning](https://semver.org

### Initial unstable release of Digitale FüSim MANV

[Unreleased]: https://github.com/hpi-sam/digital-fuesim-manv/compare/v0.5.1...HEAD
[Unreleased]: https://github.com/Nils1729/digital-fuesim-manv/compare/v1.2.4...HEAD
[1.2.4]: https://github.com/Nils1729/digital-fuesim-manv/compare/v0.5.1...v1.2.4
[0.5.1]: https://github.com/hpi-sam/digital-fuesim-manv/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/hpi-sam/digital-fuesim-manv/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/hpi-sam/digital-fuesim-manv/compare/v0.3.0...v0.4.0
Expand Down
6 changes: 3 additions & 3 deletions backend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion backend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "digital-fuesim-manv-backend",
"version": "0.5.1",
"version": "1.2.4",
"type": "module",
"scripts": {
"start:once:linux-macos": "NODE_ENV=production node --experimental-specifier-resolution=node dist/src/index.js",
Expand Down
Loading

0 comments on commit 3708094

Please sign in to comment.