diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 443566e7cd0..c40a17314f2 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -48,12 +48,29 @@ jobs: - name: Get list of services id: get-services run: | - services=$(grep "^ [^ ]" docker-compose.yml | grep -v '#' | awk -F: '{print $1}' | sed -e 's/^ *//') + services=$(grep "^ [^ ]" docker-compose.yml | grep -v base| grep -v '#' | awk -F: '{print $1}' | sed -e 's/^ *//') services_json=$(echo $services | tr '\n' ',' | sed 's/,$//' | jq -R 'split(" ")' | tr -d '\n') # Set the list of service names as an output variable echo "services=$services_json" >> $GITHUB_OUTPUT echo "services=$services_json" + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push base image + uses: docker/build-push-action@v6 + with: + file: packages/Dockerfile.base + context: . + push: true + tags: | + opencrvs/ocrvs-base:${{ steps.set-version.outputs.version }} + cache-from: type=registry,ref=opencrvs/ocrvs-base:${{ steps.set-version.outputs.version }} + cache-to: type=inline + outputs: services: ${{ steps.get-services.outputs.services }} version: ${{ steps.set-version.outputs.version }} @@ -61,6 +78,7 @@ jobs: build: needs: base strategy: + fail-fast: false matrix: service: ${{ fromJSON(needs.base.outputs.services) }} runs-on: ubuntu-22.04 @@ -74,17 +92,23 @@ jobs: if: github.event_name == 'push' - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build ${{ matrix.service }} - run: | - echo ${{ matrix.service }} - export VERSION=${{ github.event.inputs.release_version }} - docker compose build ${{ matrix.service }} - docker compose push ${{ matrix.service }} + - name: Build and push + uses: docker/build-push-action@v6 + with: + file: packages/${{ matrix.service }}/Dockerfile + build-args: | + VERSION=${{ needs.base.outputs.version }} + push: true + context: . + tags: | + opencrvs/ocrvs-${{ matrix.service }}:${{ needs.base.outputs.version }} + cache-from: type=registry,ref=opencrvs/ocrvs-${{ matrix.service }}:${{ needs.base.outputs.version}} + cache-to: type=inline security-scans: needs: [base, build] diff --git a/CHANGELOG.md b/CHANGELOG.md index 761b8d3e774..255378f6ccc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,38 @@ ## [1.6.0](https://github.com/opencrvs/opencrvs-core/compare/v1.5.1...v1.6.0) +#### ElasticSearch reindexing + +Allows reindexing ElasticSearch via a new search-service endpoint `reindex`. We're replacing the original `ocrvs` index with timestamped ones. This is done automatically when upgrading and migrating, but this is an important architectural change that should be noted. More details in [#7033](https://github.com/opencrvs/opencrvs-core/pull/7033). + +- Introduce a new certificate handlebar "preview" which can be used to conditionally render some svg element when previewing the certificate e.g. background image similar to security paper + +### Improvements + +- Internally we were storing the `family` name field as a required property which was limiting what how you could capture the name of a person in the forms. Now we are storing it as an optional property which would make more flexible. +- Remove the leftover features from the application config pages, such as certificates and informant notification. [#7156](https://github.com/opencrvs/opencrvs-core/issues/7156) +- **PDF page size** The generated PDF used to be defaulted to A4 size. Now it respects the SVG dimensions if specified +- Support html content wrapped in `foreignObject` used in svg template in certificate PDF output + +## Bug fixes + +- Custom form field validators from country config will work offline. [#7478](https://github.com/opencrvs/opencrvs-core/issues/7478) +- Registrar had to retry from outbox every time they corrected a record. [#7583](https://github.com/opencrvs/opencrvs-core/issues/7583) +- Local environment setup command (`bash setup.sh`) could fail in machines that didn't have a unrelated `compose` binary. Fixed to check for Docker Compose. [#7609](https://github.com/opencrvs/opencrvs-core/pull/7609) +- Fix date validation not working correctly in Firefox [#7615](https://github.com/opencrvs/opencrvs-core/issues/7615) +- Fix layout issue that was causing the edit button on the AdvancedSearch's date range picker to not show on mobile view. [#7417](https://github.com/opencrvs/opencrvs-core/issues/7417) +- Fix hardcoded placeholder copy of input when saving a query in advanced search +- Handle label params used in form inputs when rendering in action details modal +- Fix health facilities missing from dropdown after correcting a record address [#7528](https://github.com/opencrvs/opencrvs-core/issues/7528) +- "Choose a new password" form now allows the user to submit the form using the "Enter/Return" key [#5502](https://github.com/opencrvs/opencrvs-core/issues/5502) +- Dropdown options now flow to multiple rows in forms [#7653](https://github.com/opencrvs/opencrvs-core/pull/7653) +- Only render units/postfix when field has a value [#7055](https://github.com/opencrvs/opencrvs-core/issues/7055) +- Only show items with values in review [#5192](https://github.com/opencrvs/opencrvs-core/pull/5192) +- Fix prefix text overlap issue in form text inputs +- **Staged files getting reset on precommit hook failure** We were running lint-staged separately on each package using lerna which potentially created a race condition causing staged changes to get lost on failure. Now we are running lint-staged directly without depending on lerna. **_This is purely a DX improvement without affecting any functionality of the system_** +- Fix `informantType` missing in template object which prevented rendering informant relationship data in the certificates [#5952](https://github.com/opencrvs/opencrvs-core/issues/5952) +- Fix users hitting rate limit when multiple users authenticated the same time with different usernames [#7728](https://github.com/opencrvs/opencrvs-core/issues/7728) + ### Breaking changes - Remove informant notification configuration from the UI and read notification configuration settings from `record-notification` endpoint in countryconfig