Skip to content

Commit

Permalink
feat: initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ACoolmanTelicent committed Jun 14, 2024
0 parents commit 8cebc6b
Show file tree
Hide file tree
Showing 147 changed files with 23,109 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
cypress
override.env-config.js
62 changes: 62 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Ticket: <!-- Let the ticket expand inline. Maybe change the ticket name field for clarity -->

### Goal

<!-- The Goal. -->

### Work Completed

<!-- The Solution. -->

### Testing Method

<!-- Describe your testing steps -->

### Code Review Tips <!-- OPTIONAL-->

<!-- Pointers for reviewer -->

### Engineering Notes <!-- OPTIONAL-->

<!-- Implementation context -->

### Out-of-scope <!-- OPTIONAL-->

<!-- Boundary setting -->


---

<details>
<summary><strong>🕵️ Review Guidance</strong></summary>

---

General guidance

- Generally, approve a PR if it makes the system better, even if it's not perfect. — [Google: The Standard of Code Review](https://google.github.io/eng-practices/review/reviewer/standard.html)
- The aim of both PR AUTHOR and PR REVIEWER is to get the code merged
- Aim for consensus, defined as _everyone can live with the outcome_

For PR REVIEWER:

1. Read the ticket & description
2. [Review the code](https://google.github.io/eng-practices/review/reviewer/looking-for.html)
3. Request any changes that are essential.
4. For non-essential comments:
- Use prefixes, e.g. "**nit:** change to Pascal case"
- **nit:** small, non-essential change
- **obs:** just an observation, doesn't affect the PR
- **idea:** a suggestion to think about
- **q:** questions
- Use modifiers, e.g. "**obs**`[pr-owner-resolve]`: Jim is also editing this file"
- `pr-author-resolve` PR author can resolve after reading
- `pr-author-delete` (rare) delete after reading to avoid confusion
5. try to add _at least_ a helpful comment per ~500 lines; less if the PR is already busy

For PR AUTHOR:

1. Aim for enough detail in PR description for things to go smoothly
2. After requested changes, [re-request a review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews#re-requesting-a-review) (so the PR shows up in [reviews-requested:@me](https://github.com/pulls?q=is%3Apr+is%3Aopen+archived%3Afalse+sort%3Aupdated-desc+review-requested%3A%40me+))

</details>
19 changes: 19 additions & 0 deletions .github/workflows/create-prerelease-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Create prerelease pull request

on:
push:
branches:
- "feature/*"
- "api-v2"

jobs:
create-prerelease-pr:
if: startsWith(github.event.head_commit.message, 'chore:')
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
with:
release-type: node
package-name: release-please-action
prerelease: true
default-branch: ${{ github.ref_name }}
16 changes: 16 additions & 0 deletions .github/workflows/create-release-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Publish new release version

on:
push:
branches:
- "main"

jobs:
create-release-pr:
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
with:
release-type: node
package-name: release-please-action
prerelease: false
136 changes: 136 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# Build and push telicent-paralog
on:
push:
branches:
- main
- "api-v2"
paths:
- CHANGELOG.md
workflow_dispatch:

jobs:
prepare:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Get version from package.json
id: semver
uses: martinbeentjes/npm-get-version-action@main
- run: sudo apt-get install jq
- id: app_config
run: |
APP_NAME=$(jq -r '.app_name // error("app_name missing")' ./src/app.config.json) && \
echo "app_name=$APP_NAME" >> $GITHUB_OUTPUT;
IMAGE_NAME=$(jq -r '.image_name // error("image_name missing")' ./src/app.config.json) && \
echo "image_name=$IMAGE_NAME" >> $GITHUB_OUTPUT;
REPO_NAME=$(jq -r '.repo_name // error("repo_name missing")' ./src/app.config.json) && \
echo "repo_name=$REPO_NAME" >> $GITHUB_OUTPUT;
outputs:
semver: ${{ steps.semver.outputs.current-version }}
app_name: ${{ steps.app_config.outputs.app_name }}
image_name: ${{ steps.app_config.outputs.image_name }}
repo_name: ${{ steps.app_config.outputs.repo_name }}

integrated_tests:
permissions:
id-token: write
contents: read
packages: write
needs:
- prepare
env:
NODE_AUTH_TOKEN: ${{ secrets.PACKAGE_PAT }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: configure-node
uses: actions/setup-node@v3
with:
node-version: 20
always-auth: true
- name: Get node version
id: node
run: echo "version=$(node -v)" >> $GITHUB_OUTPUT
- name: Get node_modules cache
uses: actions/cache@v3.0.2
id: node_modules
with:
path: |
**/node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }}-${{ steps.node.outputs.version }}
restore-keys: |
${{ runner.os }}-node_modules-
- name: Install dependencies
run: LOCAL_MACHINE=false yarn install --frozen-lockfile --network-concurrency 1
- run: mkdir reports
- run: yarn test:ci

run_vulnerability_scan_on_repo:
needs:
- prepare
- integrated_tests
uses: Telicent-oss/shared-workflow/.github/workflows/vulnerability-scanning-on-repo.yml@main
with:
APP_NAME: ${{ needs.prepare.outputs.app_name }}
secrets: inherit

publish_build_image_to_registries:
needs:
- prepare
- integrated_tests
uses: Telicent-oss/shared-workflow/.github/workflows/push-to-registries.yml@main
with:
APP_NAME: ${{ needs.prepare.outputs.app_name }}
DOCKERFILE: Dockerfile.build
PATH: .
VERSION: ${{ needs.prepare.outputs.semver }}
ECR_SUFFIX: -build
ALLOW_MUTABLE_TAGS: false
secrets: inherit

publish_offline_image_to_registries:
needs:
- prepare
- integrated_tests
- publish_build_image_to_registries
uses: Telicent-oss/shared-workflow/.github/workflows/push-to-registries.yml@main
with:
APP_NAME: ${{ needs.prepare.outputs.app_name }}
DOCKERFILE: Dockerfile.offline
PATH: .
VERSION: ${{ needs.prepare.outputs.semver }}
VERSION_SUFFIX: -offline
ECR_SUFFIX: -offline
ALLOW_MUTABLE_TAGS: false
BUILD_ARGS: |
APP_NAME=${{ needs.prepare.outputs.app_name }}
BASE_IMAGE=telicent/${{ needs.prepare.outputs.image_name }}-build:${{ needs.prepare.outputs.semver }}-build
secrets: inherit

publish_deployment_image_to_registries:
needs:
- prepare
- integrated_tests
- publish_build_image_to_registries
uses: Telicent-oss/shared-workflow/.github/workflows/push-to-registries.yml@main
with:
APP_NAME: ${{ needs.prepare.outputs.app_name }}
DOCKERFILE: Dockerfile
PATH: .
VERSION: ${{ needs.prepare.outputs.semver }}
ALLOW_MUTABLE_TAGS: false
BUILD_ARGS: |
APP_NAME=${{ needs.prepare.outputs.app_name }}
BASE_IMAGE=telicent/${{ needs.prepare.outputs.image_name }}-build:${{ needs.prepare.outputs.semver }}-build
secrets: inherit

trigger_owasp_dependency_check-api:
needs:
- prepare
- publish_deployment_image_to_registries
uses: Telicent-oss/shared-workflow/.github/workflows/dependency_tracking.yml@main
secrets: inherit
with:
APP_NAME: ${{ needs.prepare.outputs.app_name }}
11 changes: 11 additions & 0 deletions .github/workflows/test-feature-branch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Test feature branch
on:
push:
branches-ignore:
- "main"

jobs:
quality:
name: Run unit tests
uses: Telicent-oss/shared-workflows/.github/workflows/javascript-test-feature-branch.yml@main
secrets: inherit
134 changes: 134 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test
env-config.js
public/env-config.js

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

__image_snapshots__

# VSCode
.vscode
4 changes: 4 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx commitlint --edit
Loading

0 comments on commit 8cebc6b

Please # to comment.