Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6212c3b717 | ||
|
|
8ed3923c18 | ||
|
|
16d61c7dea | ||
|
|
303da88239 | ||
|
|
9f3db93f93 | ||
|
|
436cbfb2c6 | ||
|
|
cff8ba4b85 | ||
|
|
6c415c6382 | ||
|
|
e7dfef2ebc | ||
|
|
d0cb810bbe | ||
|
|
ffb31e7f33 |
@@ -17,19 +17,26 @@ jobs:
|
||||
name: CI
|
||||
runs-on: node
|
||||
steps:
|
||||
- name: Install Node.js and Docker
|
||||
- name: Install Docker and corepack
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y nodejs docker.io
|
||||
apt-get install -y docker.io
|
||||
corepack enable
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install pnpm via corepack
|
||||
run: corepack install
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
run: pnpm install --ignore-scripts
|
||||
|
||||
- name: Run tests
|
||||
run: npm test -- --run 2>&1 || echo "Tests completed"
|
||||
run: pnpm test -- --run 2>&1 || echo "Tests completed"
|
||||
|
||||
- name: Build
|
||||
run: pnpm run build
|
||||
|
||||
- name: Get short SHA
|
||||
id: sha
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
ignore-scripts=false
|
||||
enable-pre-post-scripts=true
|
||||
minimum-release-age=0
|
||||
|
||||
@@ -117,7 +117,7 @@ export default function Header() {
|
||||
</div>
|
||||
<div className="flex items-center justify-between">
|
||||
<a
|
||||
href="https://github.com/rockliang"
|
||||
href="https://github.com/Riotpiaole"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-sm text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 flex-1"
|
||||
@@ -125,7 +125,7 @@ export default function Header() {
|
||||
{t.header.contact.github}
|
||||
</a>
|
||||
<button
|
||||
onClick={() => handleCopy('https://github.com/rockliang', 'GitHub')}
|
||||
onClick={() => handleCopy('https://github.com/Riotpiaole', 'GitHub')}
|
||||
className="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 hover:bg-blue-100 dark:hover:bg-blue-900"
|
||||
>
|
||||
{copied === 'GitHub' ? '✓' : t.header.contact.copy}
|
||||
@@ -133,7 +133,7 @@ export default function Header() {
|
||||
</div>
|
||||
<div className="flex items-center justify-between">
|
||||
<a
|
||||
href="https://github.com/rockliang"
|
||||
href="https://forgejo.riotpiao.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-sm text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 flex-1"
|
||||
@@ -141,7 +141,7 @@ export default function Header() {
|
||||
{t.header.contact.privateGithub}
|
||||
</a>
|
||||
<button
|
||||
onClick={() => handleCopy('https://github.com/rockliang', 'PrivateGithub')}
|
||||
onClick={() => handleCopy('https://forgejo.riotpiao.com', 'PrivateGithub')}
|
||||
className="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 hover:bg-blue-100 dark:hover:bg-blue-900"
|
||||
>
|
||||
{copied === 'PrivateGithub' ? '✓' : t.header.contact.copy}
|
||||
@@ -314,7 +314,7 @@ export default function Header() {
|
||||
</div>
|
||||
<div className="flex items-center justify-between">
|
||||
<a
|
||||
href="https://github.com/rockliang"
|
||||
href="https://github.com/Riotpiaole"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-sm text-gray-700 dark:text-gray-300 hover:text-blue-600 flex-1"
|
||||
@@ -322,7 +322,7 @@ export default function Header() {
|
||||
{t.header.contact.github}
|
||||
</a>
|
||||
<button
|
||||
onClick={() => handleCopy('https://github.com/rockliang', 'GitHub')}
|
||||
onClick={() => handleCopy('https://github.com/Riotpiaole', 'GitHub')}
|
||||
className="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 hover:bg-blue-100 dark:hover:bg-blue-900"
|
||||
>
|
||||
{copied === 'GitHub' ? '✓' : t.header.contact.copy}
|
||||
@@ -330,7 +330,7 @@ export default function Header() {
|
||||
</div>
|
||||
<div className="flex items-center justify-between">
|
||||
<a
|
||||
href="https://github.com/rockliang"
|
||||
href="https://forgejo.riotpiao.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-sm text-gray-700 dark:text-gray-300 hover:text-blue-600 flex-1"
|
||||
@@ -338,7 +338,7 @@ export default function Header() {
|
||||
{t.header.contact.privateGithub}
|
||||
</a>
|
||||
<button
|
||||
onClick={() => handleCopy('https://github.com/rockliang', 'PrivateGithub')}
|
||||
onClick={() => handleCopy('https://forgejo.riotpiao.com', 'PrivateGithub')}
|
||||
className="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 hover:bg-blue-100 dark:hover:bg-blue-900"
|
||||
>
|
||||
{copied === 'PrivateGithub' ? '✓' : t.header.contact.copy}
|
||||
|
||||
@@ -6,6 +6,9 @@ metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: portfolio
|
||||
app.kubernetes.io/component: web
|
||||
annotations:
|
||||
argocd-image-updater.argoproj.io/image-list: portfolio=forgejo.riotpiao.com/rock/portfolio
|
||||
argocd-image-updater.argoproj.io/portfolio.update-strategy: latest
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: portfolio
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- configmap.enc.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
|
||||
# Decrypt secrets via SOPS before applying
|
||||
sops:
|
||||
version: 3
|
||||
# SOPS-encrypted secrets via ksops generator (ArgoCD repo-server plugin)
|
||||
# ksops intercepts encrypted files, decrypts them, returns valid resources
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
|
||||
generators:
|
||||
- secret-generator.yaml
|
||||
|
||||
# ArgoCD Image Updater configuration - for tag updates
|
||||
images:
|
||||
- name: forgejo.riotpiao.com/rock/portfolio
|
||||
newTag: latest
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
apiVersion: viaduct.ai/v1
|
||||
kind: ksops
|
||||
metadata:
|
||||
name: portfolio-secrets-generator
|
||||
annotations:
|
||||
config.kubernetes.io/function: |
|
||||
exec:
|
||||
path: ksops
|
||||
files:
|
||||
- configmap.enc.yaml
|
||||
@@ -12,6 +12,7 @@
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"packageManager": "[email protected]",
|
||||
"dependencies": {
|
||||
"framer-motion": "^11.0.0",
|
||||
"lucide-react": "^1.41.0",
|
||||
|
||||
Generated
+713
-573
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user