|
|
|
@@ -6,12 +6,6 @@ on:
|
|
|
|
|
- release
|
|
|
|
|
|
|
|
|
|
workflow_dispatch:
|
|
|
|
|
inputs:
|
|
|
|
|
directus-release:
|
|
|
|
|
description: 'A parameter passed via API'
|
|
|
|
|
required: true
|
|
|
|
|
type: boolean
|
|
|
|
|
default: false
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
build:
|
|
|
|
@@ -35,19 +29,18 @@ jobs:
|
|
|
|
|
- name: Install Dependencies
|
|
|
|
|
run: bun install --frozen-lockfile
|
|
|
|
|
|
|
|
|
|
- name: Cache Astro Build
|
|
|
|
|
- name: Cache Astro Build Cache
|
|
|
|
|
uses: actions/cache@v5
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
.astro
|
|
|
|
|
node_modules/.vite
|
|
|
|
|
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}-${{ github.event_name == 'workflow_dispatch' && github.run_id || 'static' }}
|
|
|
|
|
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}-
|
|
|
|
|
${{ runner.os }}-astro-
|
|
|
|
|
|
|
|
|
|
- name: Lint Code
|
|
|
|
|
run: bun run lint
|
|
|
|
|
# - name: Lint Code
|
|
|
|
|
# run: bun run lint
|
|
|
|
|
|
|
|
|
|
- name: Build Project
|
|
|
|
|
run: bun run build
|
|
|
|
@@ -58,13 +51,13 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Test Failure - Site Profile'
|
|
|
|
|
title: 'Test Failure - Site Documentation'
|
|
|
|
|
priority: 4
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,failed
|
|
|
|
|
details: 'During release tests failed for building Site Profile'
|
|
|
|
|
details: 'During release tests failed for building Site Documentation'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-saralebens/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
image: true
|
|
|
|
|
|
|
|
|
|
guarddog:
|
|
|
|
@@ -95,21 +88,18 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Security Failure - Site Profile'
|
|
|
|
|
title: 'Security Failure - Site Documentation'
|
|
|
|
|
priority: 4
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,failed
|
|
|
|
|
details: 'During release guarddog scan failed for Site Profile'
|
|
|
|
|
details: 'During release guarddog scan failed for Site Documentation'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-saralebens/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
image: true
|
|
|
|
|
|
|
|
|
|
semantic-release:
|
|
|
|
|
needs: [ build, guarddog ]
|
|
|
|
|
runs-on: ubuntu-js
|
|
|
|
|
if: |
|
|
|
|
|
github.event_name != 'workflow_dispatch' ||
|
|
|
|
|
inputs['directus-release'] == 'true'
|
|
|
|
|
outputs:
|
|
|
|
|
new-release-published: ${{ steps.semantic.outputs.new-release-published }}
|
|
|
|
|
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
|
|
|
|
@@ -121,13 +111,6 @@ jobs:
|
|
|
|
|
fetch-depth: 0
|
|
|
|
|
token: ${{ secrets.BOT_TOKEN }}
|
|
|
|
|
|
|
|
|
|
- name: Prepare Content Patch
|
|
|
|
|
if: inputs['directus-release'] == 'true'
|
|
|
|
|
run: |
|
|
|
|
|
git config user.name "gitea-bot"
|
|
|
|
|
git config user.email "gitea-bot@alexlebens.net"
|
|
|
|
|
git commit --allow-empty -m "fix(content): directus published update [skip ci]"
|
|
|
|
|
|
|
|
|
|
- name: Set up Node
|
|
|
|
|
uses: actions/setup-node@v6
|
|
|
|
|
with:
|
|
|
|
@@ -199,7 +182,7 @@ jobs:
|
|
|
|
|
uses: docker/metadata-action@v6
|
|
|
|
|
with:
|
|
|
|
|
images: |
|
|
|
|
|
${{ vars.REGISTRY_HOST }}/images/site-profile
|
|
|
|
|
${{ vars.REGISTRY_HOST }}/images/site-saralebens
|
|
|
|
|
tags: |
|
|
|
|
|
type=ref,event=branch
|
|
|
|
|
type=sha,format=long
|
|
|
|
@@ -230,11 +213,11 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Release Success - Site Profile'
|
|
|
|
|
title: 'Release Success - Site Documentation'
|
|
|
|
|
priority: 3
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,successfully,completed
|
|
|
|
|
details: 'Harbor Image for Site Profile has been released!'
|
|
|
|
|
details: 'Harbor Image for Site Documentation has been released!'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
|
|
|
|
|
- name: ntfy Failed
|
|
|
|
@@ -243,20 +226,20 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Release Failure - Site Profile'
|
|
|
|
|
title: 'Release Failure - Site Documentation'
|
|
|
|
|
priority: 4
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,failed
|
|
|
|
|
details: 'Harbor Image for Site Profile has failed to be released.'
|
|
|
|
|
details: 'Harbor Image for Site Documentation has failed to be released.'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-saralebens/actions?workflow=release-image.yml", "clear": true}]'
|
|
|
|
|
image: true
|
|
|
|
|
|
|
|
|
|
release-gitea:
|
|
|
|
|
runs-on: ubuntu-js
|
|
|
|
|
needs: [ semantic-release, release-harbor ]
|
|
|
|
|
if: |
|
|
|
|
|
always() &&
|
|
|
|
|
always() &&
|
|
|
|
|
needs.semantic-release.outputs.new-release-published == 'true'
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout
|
|
|
|
@@ -334,11 +317,11 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Release Success - Site Profile'
|
|
|
|
|
title: 'Release Success - Site Documentation'
|
|
|
|
|
priority: 3
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,successfully,completed
|
|
|
|
|
details: 'Gitea Image for Site Profile has been released!'
|
|
|
|
|
details: 'Gitea Image for Site Documentation has been released!'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
|
|
|
|
|
- name: ntfy Failed
|
|
|
|
@@ -347,11 +330,11 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
url: '${{ secrets.NTFY_URL }}'
|
|
|
|
|
topic: '${{ secrets.NTFY_TOPIC }}'
|
|
|
|
|
title: 'Release Failure - Site Profile'
|
|
|
|
|
title: 'Release Failure - Site Documentation'
|
|
|
|
|
priority: 4
|
|
|
|
|
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
|
|
|
|
tags: action,failed
|
|
|
|
|
details: 'Gitea Image for Site Profile has failed to be released.'
|
|
|
|
|
details: 'Gitea Image for Site Documentation has failed to be released.'
|
|
|
|
|
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-saralebens/actions?workflow=release-image.yaml", "clear": true}]'
|
|
|
|
|
image: true
|