ci: migrate GitHub actions to Gitea actions
Deploy CV Site (andreknie.de) / deploy (push) Canceled after 0s
Deploy CV Site (andreknie.de) / deploy (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import matter from 'gray-matter'
|
||||
|
||||
const POSTS_DIR = path.join(process.cwd(), 'content', 'posts')
|
||||
const KNIEPUNKT_DIR = path.join(process.cwd(), 'content', 'kniepunkt')
|
||||
const CONSULTING_DIR = path.join(process.cwd(), 'content', 'consulting')
|
||||
const TALKS_DIR = path.join(process.cwd(), 'content', 'talks')
|
||||
|
||||
function deleteIfExists(file) {
|
||||
if (fs.existsSync(file)) {
|
||||
fs.unlinkSync(file)
|
||||
console.log('Deleted:', path.basename(file))
|
||||
}
|
||||
}
|
||||
|
||||
// 1. Delete requested posts
|
||||
const toDelete = [
|
||||
'2026-04-06-puenktlich-zu-ostern-haben-sich-lasse-und-ich-ueber-ki-und-kirche-unterhalten-es.md',
|
||||
'2026-01-02-ai-almost-intelligent-geht-in-die-vierte-runde.md',
|
||||
'2025-12-26-zweiter-weihnachtsfeiertag.md',
|
||||
'2025-08-29-glueckwunsch-zu-dem-artikel.md',
|
||||
'2023-07-19-jobsharing-ist-eine-tolle-moeglichkeit-fuehrung-zu-leben-im-direkten-sparring-ka.md',
|
||||
'2022-12-23-mindestens-drei-marketingprofessionals-melden-sich-hier-pro-woche-bei-mir-was-s.md',
|
||||
'2022-11-22-jobsharing-fuer-maenner-geht-das.md',
|
||||
'2022-09-22-sonnenaufgang-zwischen-goettingen-und-hildesheim-der-tag-hat-frueh-begonnen-aber.md',
|
||||
'2022-07-23-wer-beschwert-sich-gerne-ueber-die-bahn-fast-jeder-den-ich-kenne-aber-die-meist.md',
|
||||
'2021-12-17-eine-echte-chance-den-zugang-zur-welt-der-bahn-einfacher-schneller-und-attrakti.md',
|
||||
'2020-04-01-die-krise-bietet-auch-chancen-digitalisierung-und-homeoffice-wird-ploetzlich-nor.md',
|
||||
// Post 12
|
||||
'2025-11-15-heute-geht-es-um-musik-immerhin-ist-ein-virtueller-ki-cowboy-auf-platz-1-der-co.md'
|
||||
]
|
||||
toDelete.forEach(f => deleteIfExists(path.join(POSTS_DIR, f)))
|
||||
|
||||
// 3. Post 16 -> Workshop section
|
||||
const post16Path = path.join(POSTS_DIR, '2025-10-16-unsere-ki-fraitage-an-der-universitaet-kassel-haben-auch-grosses-interesse-bei-a.md')
|
||||
if (fs.existsSync(post16Path)) {
|
||||
const p16 = matter(fs.readFileSync(post16Path, 'utf8'))
|
||||
const ws16 = `id: ki-experimentierraeume-verwaltung
|
||||
title: "KI über #Experimentierräume erfolgreich in der Verwaltung etablieren"
|
||||
description: "${p16.content.trim().replace(/\n/g, ' ')}"
|
||||
format: workshop
|
||||
target_audience: [public-admin, universities]
|
||||
tags: [ki, verwaltung, experimentierraeume]
|
||||
visibility: primary
|
||||
`
|
||||
fs.writeFileSync(path.join(CONSULTING_DIR, 'ki-experimentierraeume-verwaltung.yaml'), ws16)
|
||||
deleteIfExists(post16Path)
|
||||
console.log('Moved Post 16 to consulting')
|
||||
}
|
||||
|
||||
// 4. Post 17 -> Merge into Zwischen Gigafactories und DSGVO
|
||||
const post17Path = path.join(POSTS_DIR, '2025-10-09-diese-woche-kamen-gleich-zwei-grosse-europaeische-ki-initiativen-auf-die-buehne-.md')
|
||||
const gigaPath = path.join(POSTS_DIR, '2025-10-10-zwischen-gigafactories-und-dsgvo-europas-ki-dilemma.md')
|
||||
if (fs.existsSync(post17Path) && fs.existsSync(gigaPath)) {
|
||||
const p17 = matter(fs.readFileSync(post17Path, 'utf8'))
|
||||
let giga = matter(fs.readFileSync(gigaPath, 'utf8'))
|
||||
if (!giga.content.includes(p17.content.trim())) {
|
||||
giga.content = `> ${p17.content.trim()}\n\n---\n\n${giga.content}`
|
||||
fs.writeFileSync(gigaPath, matter.stringify(giga.content, giga.data))
|
||||
console.log('Merged Post 17 into article')
|
||||
}
|
||||
deleteIfExists(post17Path)
|
||||
}
|
||||
|
||||
// 5. Post 18 is Kniepunkt 006
|
||||
const post18Path = path.join(POSTS_DIR, '2025-10-03-ki-wunderkind-oder-klassenclown.md')
|
||||
const kp006Path = path.join(KNIEPUNKT_DIR, '006-ki-wunderkind-oder-klassenclown.md')
|
||||
if (fs.existsSync(post18Path)) {
|
||||
fs.renameSync(post18Path, kp006Path)
|
||||
console.log('Moved Post 18 to Kniepunkt 006')
|
||||
}
|
||||
|
||||
// 6 & 7. Posts 21 and 23 are already in Kniepunkt, delete from posts
|
||||
deleteIfExists(path.join(POSTS_DIR, '2025-09-20-die-ki-wetterkarte-zeigt-ein-chaotisches-bild-ueber-london-und-washington-regnet.md'))
|
||||
deleteIfExists(path.join(POSTS_DIR, '2025-09-06-ki-als-fitnessstudio-abo-jeder-bezahlt-es-aber-kaum-einer-nutzt-es.md'))
|
||||
|
||||
// 8. Rename Post 30 title
|
||||
const post30Path = path.join(POSTS_DIR, '2025-07-25-untitled-post.md')
|
||||
if (fs.existsSync(post30Path)) {
|
||||
let p30 = matter(fs.readFileSync(post30Path, 'utf8'))
|
||||
p30.data.title = 'Braucht es wirklich einen Chief AI Officer?'
|
||||
fs.writeFileSync(post30Path, matter.stringify(p30.content, p30.data))
|
||||
console.log('Renamed Post 30')
|
||||
}
|
||||
|
||||
// 9. Post 36 -> Workshop
|
||||
const post36Path = path.join(POSTS_DIR, '2024-04-03-wir-freuen-uns-auch-darauf-zeigen-zu-koennen-dass-jeder-produzierende-betrieb-am.md')
|
||||
if (fs.existsSync(post36Path)) {
|
||||
const p36 = matter(fs.readFileSync(post36Path, 'utf8'))
|
||||
const ws36 = `id: ki-in-der-praxis
|
||||
title: "KI in der Praxis – von der Datenerfassung bis zum Produktiveinsatz"
|
||||
description: "${p36.content.trim().replace(/\n/g, ' ')}"
|
||||
format: workshop
|
||||
target_audience: [mittelstand, executives]
|
||||
tags: [ki, datenerfassung, produktiveinsatz, praxis]
|
||||
visibility: primary
|
||||
`
|
||||
fs.writeFileSync(path.join(CONSULTING_DIR, 'ki-in-der-praxis.yaml'), ws36)
|
||||
deleteIfExists(post36Path)
|
||||
console.log('Moved Post 36 to consulting')
|
||||
}
|
||||
|
||||
// 10. Post 38 -> Retitle
|
||||
const post38Path = path.join(POSTS_DIR, '2023-12-19-.md')
|
||||
if (fs.existsSync(post38Path)) {
|
||||
let p38 = matter(fs.readFileSync(post38Path, 'utf8'))
|
||||
p38.data.title = 'Lehrer sind Führungskräfte!'
|
||||
fs.writeFileSync(post38Path, matter.stringify(p38.content, p38.data))
|
||||
console.log('Renamed Post 38')
|
||||
}
|
||||
|
||||
// 11. Post 50 -> Experience as mentor
|
||||
const post50Path = path.join(POSTS_DIR, '2021-12-16-es-hat-mir-viel-freude-bereitet-mit-start-ups-zu-diskutieren-welche-rolle-newwo.md')
|
||||
if (fs.existsSync(post50Path)) {
|
||||
const t50 = `id: mentor-pwc-scale-2021
|
||||
title: "PwC #Scale Mentor"
|
||||
description: "Startschuss des diesjährigen PwC #Scale. Mentoring zu Investor Readiness, Corporate Sales und Geschäftsmodellentwicklung."
|
||||
format: mentoring
|
||||
target_audience: [startups]
|
||||
tags: [newwork, culture, makechangework, pwc, lemin]
|
||||
visibility: primary
|
||||
`
|
||||
fs.writeFileSync(path.join(TALKS_DIR, 'mentor-pwc-scale-2021.yaml'), t50)
|
||||
deleteIfExists(post50Path)
|
||||
console.log('Moved Post 50 to talks as mentor')
|
||||
}
|
||||
|
||||
// 12. Post 53 -> Experience as speaker
|
||||
const post53Path = path.join(POSTS_DIR, '2020-07-29-ich-freue-mich-auf-digitaler-live-talk-agiles-arbeiten.md')
|
||||
if (fs.existsSync(post53Path)) {
|
||||
const t53 = `id: einfachbahn-agiles-arbeiten-2020
|
||||
title: "Agiles Arbeiten bei der DB Netz AG: Haltung, Methoden und Selbstorganisation bei der #Einfachbahn"
|
||||
description: "Digitaler Live-Talk: Agiles Arbeiten. Praxisbeispiele für neue Arbeitsweisen, servant leadership und Selbstorganisation."
|
||||
format: keynote
|
||||
target_audience: [executives, public-admin, mittelstand]
|
||||
tags: [newwork, einfachbahn, leadership, agile]
|
||||
visibility: primary
|
||||
`
|
||||
fs.writeFileSync(path.join(TALKS_DIR, 'einfachbahn-agiles-arbeiten-2020.yaml'), t53)
|
||||
deleteIfExists(post53Path)
|
||||
console.log('Moved Post 53 to talks as speaker')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user