Skip to content

Commit

Permalink
feat add footer
Browse files Browse the repository at this point in the history
  • Loading branch information
1oannis committed Oct 7, 2024
1 parent 8101f1b commit c21270c
Show file tree
Hide file tree
Showing 8 changed files with 365 additions and 238 deletions.
337 changes: 170 additions & 167 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -1,174 +1,177 @@
name: CI/CD Pipeline

on:
push:
branches:
- main
pull_request:
branches:
- main
push:
branches:
- main
pull_request:
branches:
- main

jobs:
code-quality:
runs-on: ubuntu-latest
env:
STORE_PATH: ~/.pnpm-store
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Run ESLint
run: pnpm lint

vulnerability-check:
runs-on: ubuntu-latest
env:
STORE_PATH: ~/.pnpm-store
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN || '' }}

build:
runs-on: ubuntu-latest
needs: [code-quality, vulnerability-check]
code-quality:
runs-on: ubuntu-latest
env:
STORE_PATH: ~/.pnpm-store
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Run ESLint
run: pnpm lint

vulnerability-check:
runs-on: ubuntu-latest
env:
STORE_PATH: ~/.pnpm-store
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
STORE_PATH: ~/.pnpm-store

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- uses: actions/cache@v4
with:
path: |
~/.npm
${{ github.workspace }}/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Build
run: pnpm build

# dockerize:
# runs-on: ubuntu-latest
# needs: build
# steps:
# - name: Checkout code
# uses: actions/checkout@v2

# - name: Log in to Docker Hub
# run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin

# - name: Build Docker image
# run: docker build -t myapp:latest .

# - name: Push Docker image
# run: docker tag myapp:latest ${{ secrets.DOCKER_USERNAME }}/myapp:latest
# run: docker push ${{ secrets.DOCKER_USERNAME }}/myapp:latest

# deploy:
# runs-on: ubuntu-latest
# needs: dockerize
# steps:
# - name: Checkout code
# uses: actions/checkout@v2

# - name: Deploy to VM
# uses: appleboy/ssh-action@v0.1.5
# with:
# host: ${{ secrets.VM_HOST }}
# username: ${{ secrets.VM_USER }}
# key: ${{ secrets.VM_KEY }}
# script: |
# docker pull ${{ secrets.DOCKER_USERNAME }}/myapp:latest
# docker stop myapp || true
# docker rm myapp || true
# docker run -d --name myapp -p 80:80 ${{ secrets.DOCKER_USERNAME }}/myapp:latest
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN || '' }}

build:
runs-on: ubuntu-latest
needs: [code-quality, vulnerability-check]

env:
STORE_PATH: ~/.pnpm-store

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: latest
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

# TODO: Cache not found error in the pipeline
# https://github.com/1oannis/homepage/actions/runs/11191028917/job/31113476680

- uses: actions/cache@v4
with:
path: |
~/.npm
${{ github.workspace }}/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Build
run: pnpm build

# dockerize:
# runs-on: ubuntu-latest
# needs: build
# steps:
# - name: Checkout code
# uses: actions/checkout@v2

# - name: Log in to Docker Hub
# run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin

# - name: Build Docker image
# run: docker build -t myapp:latest .

# - name: Push Docker image
# run: docker tag myapp:latest ${{ secrets.DOCKER_USERNAME }}/myapp:latest
# run: docker push ${{ secrets.DOCKER_USERNAME }}/myapp:latest

# deploy:
# runs-on: ubuntu-latest
# needs: dockerize
# steps:
# - name: Checkout code
# uses: actions/checkout@v2

# - name: Deploy to VM
# uses: appleboy/ssh-action@v0.1.5
# with:
# host: ${{ secrets.VM_HOST }}
# username: ${{ secrets.VM_USER }}
# key: ${{ secrets.VM_KEY }}
# script: |
# docker pull ${{ secrets.DOCKER_USERNAME }}/myapp:latest
# docker stop myapp || true
# docker rm myapp || true
# docker run -d --name myapp -p 80:80 ${{ secrets.DOCKER_USERNAME }}/myapp:latest
10 changes: 10 additions & 0 deletions app/(home)/about/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { Metadata } from "next"

export const metadata: Metadata = {
title: "About",
description: "This is the about page",
}

export default function About() {
return <h1>About</h1>
}
10 changes: 10 additions & 0 deletions app/(home)/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { Metadata } from "next"

export const metadata: Metadata = {
title: "Privacy Policy",
description: "This is the privacy policy page",
}

export default function Privacy() {
return <h1>Privacy Policy</h1>
}
10 changes: 10 additions & 0 deletions app/(home)/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { Metadata } from "next"

export const metadata: Metadata = {
title: "Terms of Service",
description: "This is the terms of service page",
}

export default function Terms() {
return <h1>Terms of Service</h1>
}
Loading

0 comments on commit c21270c

Please sign in to comment.