Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
b6c5a0b
Create hello_world.yml
levonmaister Jan 6, 2025
eaae41d
Create simple_deployment_pipeline.yml
levonmaister Jan 6, 2025
ff9b2d1
Update simple_deployment_pipeline.yml
levonmaister Jan 7, 2025
0675067
Update simple_deployment_pipeline.yml
levonmaister Jan 7, 2025
6b2d913
Update simple_deployment_pipeline.yml
levonmaister Jan 7, 2025
4c3048f
updating lint stuff
levonmaister Jan 8, 2025
799b722
new configurations
levonmaister Jan 8, 2025
8272b4a
Update simple_deployment_pipeline.yml
levonmaister Jan 8, 2025
462fa1f
config
levonmaister Jan 8, 2025
518bb01
Merge branch 'main' of https://github.com/levonmaister/full-stack-ope…
levonmaister Jan 8, 2025
9e69657
Update eslint.config.mjs
levonmaister Jan 8, 2025
ea0886e
Update simple_deployment_pipeline.yml
levonmaister Jan 8, 2025
4b5c299
-
levonmaister Jan 8, 2025
94d5dc3
Merge branch 'main' of https://github.com/levonmaister/full-stack-ope…
levonmaister Jan 8, 2025
80592f2
Testing pipeline
levonmaister Jan 11, 2025
dd96b39
eslint fixes
levonmaister Jan 11, 2025
16561ce
deployment update
levonmaister Jan 11, 2025
dcfe61f
eslint failure
levonmaister Jan 11, 2025
b0d0453
Update simple_deployment_pipeline.yml
levonmaister Jan 11, 2025
096aff8
update
levonmaister Jan 11, 2025
b272654
no idea what im doing
levonmaister Jan 11, 2025
4618e0c
port update
levonmaister Jan 11, 2025
486105d
build steps
levonmaister Jan 11, 2025
0678e64
invalid host fix
levonmaister Jan 11, 2025
e57a846
please work now
levonmaister Jan 11, 2025
b7c1c99
-
levonmaister Jan 13, 2025
cbe640a
allowedhosts: all
levonmaister Jan 13, 2025
196b36a
test1
levonmaister Jun 3, 2025
d3ab0b7
deployment pipeline fixing
levonmaister Jun 3, 2025
6e2f640
ubuntu-latest added
levonmaister Jun 3, 2025
ee11f38
ubuntu-latest2
levonmaister Jun 3, 2025
404e24d
eslint fixes
levonmaister Jun 3, 2025
f43c8ed
playwright installed
levonmaister Jun 3, 2025
407eb43
playwright e2e fixes
levonmaister Jun 3, 2025
1c3f61c
e2e fixes3
levonmaister Jun 3, 2025
120a5e2
e2e fixes4
levonmaister Jun 3, 2025
de027b4
render deploy hook
levonmaister Jun 3, 2025
4e1fc94
fixed deploy
levonmaister Jun 3, 2025
dbb55e9
moved trigger deployment to the deployment pipeline using service id …
levonmaister Jun 3, 2025
6bd99df
backend health check
levonmaister Jun 3, 2025
f2256ce
broken health check
levonmaister Jun 3, 2025
6388704
broken health check2
levonmaister Jun 3, 2025
8a46a2b
health check ok again
levonmaister Jun 3, 2025
c9f167b
health check ok again1
levonmaister Jun 3, 2025
a1c1cc6
branch changes
levonmaister Jun 3, 2025
dd4fb20
deploy only for main branch
levonmaister Jun 3, 2025
a4aa7b3
Merge pull request #1 from levonmaister/experiment-branch
levonmaister Jun 3, 2025
0441a3f
tag_release added
levonmaister Jun 3, 2025
61c940b
comitted to wrong repository
levonmaister Jun 3, 2025
ccebadd
tag branch correct
levonmaister Jun 3, 2025
c859567
better changes
levonmaister Jun 3, 2025
28bc9e9
Merge pull request #2 from levonmaister/correct-branch
levonmaister Jun 3, 2025
3cc4ede
yml
levonmaister Jun 4, 2025
1df8c7a
latest
levonmaister Jun 4, 2025
1d83b8e
1.16 exercise
levonmaister Jun 4, 2025
2e5f9e9
Merge pull request #3 from levonmaister/terrific
levonmaister Jun 4, 2025
eff1650
#skip
levonmaister Jun 4, 2025
b1f4869
#skip
levonmaister Jun 4, 2025
83932de
discord webhook
levonmaister Jun 4, 2025
400fc4e
second try discord
levonmaister Jun 4, 2025
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
62 changes: 19 additions & 43 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,49 +1,25 @@
module.exports = {
"env": {
"browser": true,
"es6": true,
"jest/globals": true
'env': {
'browser': true,
'commonjs': true,
'es2021': true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended"
'overrides': [
{
'env': {
'node': true
},
'files': [
'.eslintrc.{js,cjs}'
],
'parserOptions': {
'sourceType': 'script'
}
}
],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
'parserOptions': {
'ecmaVersion': 'latest'
},
"plugins": [
"react", "jest"
],
"rules": {
"indent": [
"error",
2
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"never"
],
"eqeqeq": "error",
"no-trailing-spaces": "error",
"object-curly-spacing": [
"error", "always"
],
"arrow-spacing": [
"error", { "before": true, "after": true }
],
"no-console": "error",
"react/prop-types": 0
'rules': {
}
}
20 changes: 20 additions & 0 deletions .github/workflows/hello_world.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Hello World!

on:
push:
branches:
- main

jobs:
hello_world_job:
runs-on: ubuntu-latest
steps:
- name: Say hello
run: |
echo "Hello World!"
- name: Now it is
run: |
date
- name: Directory content
run: |
ls -l
27 changes: 27 additions & 0 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Playwright Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 30
63 changes: 63 additions & 0 deletions .github/workflows/simple_deployment_pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Deployment pipeline

on:
push:
branches: ["main"]
pull_request:
branches: [main]
types: [opened, synchronize]

jobs:
simple_deployment_pipeline:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: npm install
- name: Check style
run: npm run eslint
- name: build
id: build
run: npm run build
- name: Build failure
uses: rjstone/discord-webhook-notify@v1
if: ${{failure() && steps.build.conclusion == 'failure'}}
with:
severity: info
details: Build Failed!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
- name: test
run: npm run test
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: e2e-tests
run: npm run test:e2e
- name: Trigger deployment
id: deployment
if: ${{ github.event_name == 'push' && !contains(join(github.event.commits.*.message, ' '), '#skip') }}
run: curl https://api.render.com/deploy/srv-${{ secrets.RENDER_SERVICE_ID }}?key=${{ secrets.RENDER_API_KEY }}
- name: Deployment successo
uses: rjstone/discord-webhook-notify@v1
if: ${{success() && steps.deployment.conclusion == 'success'}}
with:
severity: info
details: Deployment Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}


tag_release:
needs: [simple_deployment_pipeline]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Bump version and push tag
if: ${{ github.event_name == 'push' && !contains(join(github.event.commits.*.message, ' '), '#skip') }}
uses: anothrNick/github-tag-action@1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

24 changes: 24 additions & 0 deletions .github/workflows/starting_point.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Testing stuff full

on:
push:
branches:
- main

jobs:
a_test_job:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: github context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: commits
env:
COMMITS: ${{ toJson(github.event.commits) }}
run: echo "$COMMITS"
- name: commit messages
env:
COMMIT_MESSAGES: ${{ toJson(github.event.commits.*.message) }}
run: echo "$COMMIT_MESSAGES"
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
dist/
node_modules/
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
16 changes: 10 additions & 6 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
const express = require("express");
const app = express();
const express = require('express')
const app = express()

// get the port from env variable
const PORT = process.env.PORT || 5000;
const PORT = process.env.PORT || 5001

app.use(express.static("dist"));
app.use(express.static('dist'))

app.get('/health', (req, res) => {
res.send('ok')
})

app.listen(PORT, () => {
console.log(`server started on port ${PORT}`);
});
console.log(`server started on ports: ${PORT}`)
})
7 changes: 7 additions & 0 deletions build_step.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

echo "Running the build script"
npm install
npm run build


17 changes: 17 additions & 0 deletions e2e-tests/therealdeal.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const { test, expect } = require('@playwright/test')

test.describe('Pokedex', () => {
test('front page can be opened', async ({ page }) => {
await page.goto('http://localhost:8080')
await expect(page.getByText('ivysaur')).toBeVisible()
await expect(page.getByText('Pokémon and Pokémon character names are trademarks of Nintendo.')).toBeVisible()
})

test('Navigation from main page', async ({ page }) => {
await page.goto('http://localhost:8080')
await page.getByText('ivysaur').click()
await expect(page.getByText('chlorophyll')).toBeVisible()
})

})

50 changes: 50 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import globals from "globals";
import stylisticJs from '@stylistic/eslint-plugin-js'
import js from '@eslint/js'

export default [
js.configs.recommended,
{
files: ["**/*.js"],
languageOptions: {
sourceType: "module",
globals: {
...globals.node,
},
ecmaVersion: "latest",
},
plugins: {
'@stylistic/js': stylisticJs
},
rules: {
'@stylistic/js/indent': [
'error',
2
],
'@stylistic/js/linebreak-style': [
'error',
'unix'
],
'@stylistic/js/quotes': [
'error',
'single'
],
'@stylistic/js/semi': [
'error',
'never'
],
'eqeqeq': 'error',
'no-trailing-spaces': 'error',
'object-curly-spacing': [
'error', 'always'
],
'arrow-spacing': [
'error', { 'before': true, 'after': true },
],
'no-console': 'off',
},
},
{
ignores: ["dist/**", "build/**"],
},
]
Loading