diff --git a/.devfile.yaml b/.devfile.yaml new file mode 100644 index 00000000..e4199758 --- /dev/null +++ b/.devfile.yaml @@ -0,0 +1,126 @@ +# +# Copyright 2023 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +schemaVersion: 2.2.0 +metadata: + name: devfile-web + displayName: Devfile Web Services + description: A devworkspace for devfile web services. + language: TypeScript + projectType: Next.js + tags: + - TypeScript + - Node.js + - Next.js + - Devfile + - Registry + - Documentation + - devfile.io + version: 1.0.0 +components: + - name: image-builder + image: + imageName: "quay.io/{{profile}}/{{project}}:{{imageTag}}" + dockerfile: + args: + - --build-arg=PROJECT_NAME={{project}} + uri: Dockerfile + - name: runner + attributes: + container-overrides: + securityContext: + runAsUser: 1001 + allowPrivilegeEscalation: false + runAsNonRoot: true + capabilities: + drop: ["ALL"] + seccompProfile: + type: "RuntimeDefault" + container: + image: node:16-alpine + command: ['tail', '-f', '/dev/null'] + mountSources: true + memoryLimit: "{{memoryLimit}}" + volumeMounts: + - name: cache + path: /.cache + - name: yarn-global + path: /.yarn + - name: npm-global + path: /.npm + endpoints: + - name: http-4200 + protocol: http + targetPort: 4200 + env: + - name: DEPLOY_CONFIG + value: "{{deployConfig}}" + - name: cache + volume: + ephemeral: true + size: 10Gi + - name: yarn-global + volume: + ephemeral: true + - name: npm-global + volume: + ephemeral: true +commands: + # Install dependency packages + - id: build + exec: + commandLine: yarn install --frozen-lockfile --global-folder /.yarn + component: runner + workingDir: ${PROJECT_SOURCE} + hotReloadCapable: true + group: + isDefault: true + kind: build + # Run tests in project + - id: test + exec: + commandLine: yarn nx test {{project}} + component: runner + workingDir: ${PROJECT_SOURCE} + group: + isDefault: true + kind: test + # Run development runtime + - id: run + exec: + commandLine: yarn nx serve {{project}} --configuration ${DEPLOY_CONFIG} + component: runner + workingDir: ${PROJECT_SOURCE} + group: + isDefault: true + kind: run + # Deploy image + - id: build-and-deploy-image + apply: + component: image-builder + group: + isDefault: true + kind: deploy +variables: + # Web project to be run, default: landing-page + project: landing-page + # Image tag + imageTag: next + # Profile of the image on quay.io + profile: devfile + # Memory limit on runner, default: 1Gi + memoryLimit: 1Gi + # Deployment configuration to use + deployConfig: development diff --git a/.gitignore b/.gitignore index 458c2085..53a090b3 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,7 @@ Thumbs.db **/*/.env.test.local **/*/.env.production.local **/*/__ENV.js + +.odo/env +.odo/odo-file-index.json +.odo \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 9db4c396..b2bd3c2c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,6 @@ { "yaml.schemas": { - "https://raw.githubusercontent.com/devfile/api/main/schemas/latest/devfile.json": "devfile.yaml", - "https://json.schemastore.org/github-workflow.json": "file:///c%3A/Programming/Work/devfile-web/.github/workflows/deploy.yml" + "https://raw.githubusercontent.com/devfile/api/v2.2.0/schemas/latest/devfile.json": "devfile.yaml" }, "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": true, diff --git a/apps/landing-page/project.json b/apps/landing-page/project.json index df8c39e5..bbe95a5a 100644 --- a/apps/landing-page/project.json +++ b/apps/landing-page/project.json @@ -7,7 +7,7 @@ "executor": "nx:run-commands", "dependsOn": ["^build"], "options": { - "command": "bash ./scripts/docs.sh > dist/docs.log && yarn react-env --prefix NEXT_PUBLIC --dest ./apps/landing-page/public" + "command": "sh ./scripts/docs.sh > dist/docs.log && yarn react-env --prefix NEXT_PUBLIC --dest ./apps/landing-page/public" } }, "build": {