Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update node base image, bcgovpubcode and test pipelines #91

Merged
merged 3 commits into from
Oct 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 32 additions & 26 deletions .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
@@ -1,33 +1,40 @@
---
name: Tests

on:
- push
- pull_request

jobs:
test-app:
name: Unit Tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: app
outputs:
HAS_CC_SECRETS: ${{ steps.check-secrets.outputs.HAS_CC_SECRETS }}
timeout-minutes: 10
strategy:
fail-fast: true
matrix:
node-version:
- 12.x
- 14.x
- 16.x
- 18.x
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
uses: actions/checkout@v3
- name: Check CodeClimate Secrets
id: check-secrets
run: |
echo "HAS_CC_SECRETS=${{ secrets.CC_TEST_REPORTER_ID != '' }}" >> $GITHUB_OUTPUT
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Cache node modules
uses: actions/cache@v2
uses: actions/cache@v3
id: cache-app
env:
cache-name: cache-node-modules
Expand All @@ -46,37 +53,36 @@ jobs:
env:
CI: true
- name: Save Coverage Results
if: matrix.node-version == '16.x'
uses: actions/upload-artifact@v2
if: matrix.node-version == '18.x'
uses: actions/upload-artifact@v3
with:
name: coverage-app
path: ${{ github.workspace }}/app/coverage
retention-days: 1
- name: Monitor Coverage
if: "matrix.node-version == '18.x' && ! github.event.pull_request.head.repo.fork"
uses: slavcodev/coverage-monitor-action@v1
with:
comment_mode: update
comment_footer: false
coverage_path: app/coverage/clover.xml
github_token: ${{ secrets.GITHUB_TOKEN }}
threshold_alert: 50
threshold_warning: 80

test-coverage:
needs:
- test-app
name: Publish to Code Climate
needs: test-app
if: needs.test-app.outputs.HAS_CC_SECRETS == 'true'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check Workflow Secrets
id: check-secrets
run: |
unset HAS_SECRETS
if [ -n "$CC_TEST_REPORTER_ID" ]; then HAS_SECRETS='true'; fi
echo ::set-output name=HAS_SECRETS::${HAS_SECRETS}
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
- name: Checkout Repository
if: steps.check-secrets.outputs.HAS_SECRETS
uses: actions/checkout@v2
with:
fetch-depth: 0
uses: actions/checkout@v3
- name: Restore Coverage Results
if: steps.check-secrets.outputs.HAS_SECRETS
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
- name: Publish code coverage
if: steps.check-secrets.outputs.HAS_SECRETS
uses: paambaati/[email protected]
uses: paambaati/[email protected]
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
with:
Expand Down
13 changes: 9 additions & 4 deletions app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
FROM docker.io/bcgovimages/alpine-node-libreoffice:1.0.7
FROM docker.io/bcgovimages/alpine-node-libreoffice:18.18.2

ARG APP_ROOT=/opt/app-root/src
ENV NO_UPDATE_NOTIFIER=true \
APP_PORT=3000
ENV APP_PORT=8080 \
NO_UPDATE_NOTIFIER=true
WORKDIR ${APP_ROOT}

# NPM Permission Fix (already present in base image)

# Install Application
COPY . .
RUN npm ci
RUN chown -R 1001:0 ${APP_ROOT}
USER 1001
RUN npm ci --omit=dev

EXPOSE ${APP_PORT}
CMD ["npm", "run", "start"]
44 changes: 44 additions & 0 deletions bcgovpubcode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
data_management_roles:
data_custodian: Fraser Marshall
product_owner: Sharolyn Hurley
product_external_dependencies:
identity_authorization:
- Custom-Keycloak
notification_standard: []
product_information:
api_specifications:
- https://cdogs.api.gov.bc.ca/api/v2/docs
business_capabilities_custom: Rich document templating support,Merge complex datasets
business_capabilities_standard:
- Other
ministry:
- Water, Land and Resource Stewardship
product_acronym: CDOGS
product_description: >-
Hosted API service to Leverage your structured datasets and your business
templates to automatically populate printable documents, spreadsheets,
presentations, or PDFs
product_name: Common Document Generation Service
product_status: stable
product_urls:
- https://api.gov.bc.ca/devportal/api-directory/3181?preview=false
program_area: NRIDS
product_technology_information:
backend_frameworks:
- name: Express
version: 4.18.2
- name: Other
version: Carbone
backend_languages_version:
- name: JavaScript
version: ecmaVersion 9 / es2018
ci_cd_tools:
- Jenkins
data_storage_platforms:
- Other
data_storage_platforms_custom: PVC Cache
frontend_languages: []
hosting_platforms:
- Private-Cloud-Openshift
version: 1
2 changes: 1 addition & 1 deletion openshift/app.bc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ objects:
value: notice
from:
kind: DockerImage
name: docker.io/bcgovimages/alpine-node-libreoffice:1.0.7
name: docker.io/bcgovimages/alpine-node-libreoffice:18.18.2
type: Docker
successfulBuildsHistoryLimit: 3
parameters:
Expand Down
Loading