feat: add release please

This commit is contained in:
2025-11-02 00:11:15 +00:00
parent b694081409
commit d2c4e08e39
7 changed files with 98 additions and 32 deletions
+72
View File
@@ -0,0 +1,72 @@
name: Release Please
on:
push:
branches:
- master
permissions:
contents: write
pull-requests: write
packages: write
jobs:
release-please:
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
manifest-file: .release-please-manifest.json
config-file: .release-please-config.json
- name: Checkout
if: ${{ steps.release.outputs.release_created }}
uses: actions/checkout@v4
- name: Set up Docker Buildx
if: ${{ steps.release.outputs.release_created }}
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
if: ${{ steps.release.outputs.release_created }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Read version
if: ${{ steps.release.outputs.release_created }}
id: version
run: |
VERSION=$(cat VERSION)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Build and push Docker image
if: ${{ steps.release.outputs.release_created }}
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
ghcr.io/jdb-net/echolog:${{ env.VERSION }}
ghcr.io/jdb-net/echolog:latest
build-args: |
VERSION=${{ env.VERSION }}
deploy:
name: Deploy to Kubernetes
needs: release-please
if: ${{ needs.release-please.outputs.release_created }}
runs-on: [ k3s-lan-01 ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Apply manifests
run: |
sudo kubectl replace -f deployment.yml --grace-period=60 --force
-25
View File
@@ -1,25 +0,0 @@
stages:
- buildandpush
- deploy
variables:
IMAGE_NAME: "$HARBOR_REGISTRY/public/echolog"
buildandpush:
stage: buildandpush
image: docker:latest
tags:
- docker
script:
- echo "$HARBOR_PASSWORD" | docker login $HARBOR_REGISTRY -u "$HARBOR_USERNAME" --password-stdin
- docker build -t $IMAGE_NAME:$IMAGE_TAG .
- docker tag $IMAGE_NAME:$IMAGE_TAG $IMAGE_NAME:latest
- docker push $IMAGE_NAME:$IMAGE_TAG
- docker push $IMAGE_NAME:latest
deploy:
stage: deploy
tags:
- k3s-lan-01
script:
- sudo kubectl replace -f deployment.yml --grace-period=60 --force
+10
View File
@@ -0,0 +1,10 @@
{
"packages": {
".": {
"release-type": "simple",
"version-file": "VERSION"
}
},
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
+3
View File
@@ -0,0 +1,3 @@
{
".": "1.0.0"
}
+1
View File
@@ -0,0 +1 @@
1.0.0
+9 -2
View File
@@ -6,6 +6,13 @@ from datetime import datetime, date as datedate, datetime as dt
import mysql.connector
from dotenv import load_dotenv
# Read version from VERSION file
try:
with open('VERSION', 'r') as f:
__version__ = f.read().strip()
except FileNotFoundError:
__version__ = 'unknown'
app = Flask(__name__)
load_dotenv()
@@ -96,7 +103,7 @@ def index():
has_next = offset + per_page < total
now = datetime.now(tz)
streak = calculate_streak()
return render_template('index.html', entries=entries, today=today, page=page, has_prev=has_prev, has_next=has_next, now=now, todays_entry=todays_entry, streak=streak)
return render_template('index.html', entries=entries, today=today, page=page, has_prev=has_prev, has_next=has_next, now=now, todays_entry=todays_entry, streak=streak, version=__version__)
@app.route('/add', methods=['POST'])
def add_entry():
@@ -153,7 +160,7 @@ def search():
page = 1
has_prev = False
has_next = False
return render_template('index.html', entries=entries, today=today, now=now, page=page, has_prev=has_prev, has_next=has_next)
return render_template('index.html', entries=entries, today=today, now=now, page=page, has_prev=has_prev, has_next=has_next, version=__version__)
@app.route('/login', methods=['GET', 'POST'])
def login():
+3 -5
View File
@@ -210,12 +210,10 @@
</section>
</div>
<footer class="mt-16 py-6 border-t border-gray-800 text-center text-gray-500 text-sm">
<span class="mr-1">JDB-NET &copy; {{ now.year }}</span>
<footer class="mt-8 py-6 border-t border-gray-800 text-center text-gray-500 text-sm">
<span class="mr-1"><a href="https://www.jdbnet.co.uk" target="_blank" rel="noopener" class="text-gray-500 hover:text-pink-400 hover:underline mx-1">JDB-NET</a> &copy; {{ now.year }}</span>
&middot;
<a href="https://projects.jdbnet.co.uk/echolog" target="_blank" rel="noopener" class="text-gray-500 hover:text-pink-400 hover:underline mx-1">Docs</a>
&middot;
<a href="mailto:jamie@jdbnet.co.uk?subject=EchoLog" class="text-gray-500 hover:text-pink-400 hover:underline ml-1">Support</a>
<span class="mx-1"><a href="https://github.com/JDB-NET/echolog" target="_blank" rel="noopener" class="text-gray-500 hover:text-pink-400 hover:underline mx-1">v{{ version }}</a></span>
</footer>
<script>