diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index 7c943216e..d19f7c168 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -1,169 +1,199 @@
-name: "🐛 Bug Report"
+name: '🐛 Bug Report'
description: Create a report to help us improve KeeWeb!
-title: "🐛 Bug:
"
-labels: [
- "Type ◦ Bug"
-]
+title: '🐛 Bug: '
+labels: ['Type ◦ Bug']
body:
- - type: markdown
- attributes:
- value: |
- 1. Please speak `English`.
- 2. Make sure you are using the latest version and take a moment to check that your issue hasn't been reported before.
- 3. It's really important to provide pertinent details and logs,
- incomplete details will be handled as an invalid report.
+ - type: markdown
+ attributes:
+ value: |
+ 1. Please speak `English`.
+ 2. Make sure you are using the latest version and take a moment to check that your issue hasn't been reported before.
+ 3. It's really important to provide pertinent details and logs,
+ incomplete details will be handled as an invalid report.
-
+
- - type: dropdown
- id: priority-type
- attributes:
- label: Priority
- description: |
- How critical is the issue?
- Do not abuse this. Issues that completely break KeeWeb would be classified as critical.
- If you are requesting a new feature, then it would be low or normal.
- options:
- - "Low"
- - "Normal"
- - "High"
- - "Urgent"
- validations:
- required: true
+ - type: dropdown
+ id: priority-type
+ attributes:
+ label: Priority
+ description: |
+ How critical is the issue?
+ Do not abuse this. Issues that completely break KeeWeb would be classified as critical.
+ If you are requesting a new feature, then it would be **Low**
+ **`Required`**
+ options:
+ - 'Low'
+ - 'Medium'
+ - 'High'
+ - 'Urgent'
+ validations:
+ required: true
- - type: input
- id: ver-keeweb
- attributes:
- label: "Version: KeeWeb"
- description: |
- Version of KeeWeb you are running
- Version is located in Settings › Help › App Information
- placeholder: "Ex: v1.18.7"
- validations:
- required: true
+ - type: input
+ id: ver-keeweb
+ attributes:
+ label: 'Version: KeeWeb'
+ description: |
+ Version of KeeWeb you are running
+ Version is located in Settings › Help › App Information
+ **`Required`**
+ placeholder: 'Ex: v1.19.0'
+ validations:
+ required: true
- - type: dropdown
- id: build-env
- attributes:
- label: Environment
- description: |
- What environment are you running KeeWeb as?
- options:
- - "Web"
- - "Desktop"
+ - type: input
+ id: ver-docker
+ attributes:
+ label: 'Version: Docker'
+ description: |
+ If you are running Keeweb on docker, provide the docker version.
+ Type in console `docker version`
+ If you are not running Keeweb on docker; **skip**
+ **`Not Required`**
+ placeholder: 'Ex: v27.2.0'
- - type: dropdown
- id: build-os
- attributes:
- label: Operating System
- description: |
- Select which OS you are running:
- options:
- - "Windows"
- - "Mac"
- - "Linux"
+ - type: dropdown
+ id: host-platform
+ attributes:
+ label: Environment
+ description: |
+ How is your KeeWeb hosted?
+ **`Required`**
+ options:
+ - 'Application'
+ - 'Docker'
+ - 'Web'
+ validations:
+ required: true
- - type: dropdown
- id: issue-target
- attributes:
- label: Range of issue
- description: |
- Where does this issue occur?
- Before submitting your bug report, try to see if the issue also occurs on the official demo site at https://app.keeweb.info/
- options:
- - "The issue occurs on my own setup AND demo site"
- - "The issue only occurs on my own setup, demo site works correctly"
+ - type: dropdown
+ id: host-os
+ attributes:
+ label: Operating System (Build)
+ description: |
+ What OS is your KeeWeb running on?
+ This is for users hosting Keeweb but using it from elsewhere.
+ If you have Keeweb installed on Docker under Linux, but access it on Windows, your answer would be **Linux**
+ **`Required`**
+ options:
+ - 'Android'
+ - 'iOS'
+ - 'Linux'
+ - 'Mac'
+ - 'Windows'
+ validations:
+ required: true
- - type: dropdown
- id: issue-db-type
- attributes:
- label: Database Type
- description: |
- What type of database are you having this issue with?
- options:
- - "Issue occurs only on new databases"
- - "Issue occurs only on existing databases"
- - "Issue occurs on both new and existing databases"
+ - type: dropdown
+ id: user-os
+ attributes:
+ label: Operating System (User)
+ description: |
+ What OS are you accessing KeeWeb from?
+ If you have Keeweb installed on Docker under Linux, but access it on Windows, your answer would be **Windows**
+ If you are running Keeweb and using it on the same machine, the above answer and this answer would be the same.
+ **`Required`**
+ options:
+ - 'Android'
+ - 'iOS'
+ - 'Linux'
+ - 'Mac'
+ - 'Windows'
+ validations:
+ required: true
- - type: textarea
- id: logs-env
- attributes:
- label: Environment Copy/Paste
- description: |
- Copy all information from Settings › Help inside KeeWeb
- render: shell
+ - type: dropdown
+ id: issue-range
+ attributes:
+ label: Range of issue
+ description: |
+ Where does this issue occur?
+ Before submitting your bug report, try to see if the issue also occurs on the official demo site at https://app.keeweb.info/
+ **`Required`**
+ options:
+ - 'Issue occurs on my own install AND demo site'
+ - 'Issue occurs only on my own install, demo site works correctly'
+ validations:
+ required: true
- - type: textarea
- id: description
- attributes:
- label: Description
- description: |
- Please provide a description of your issue here.
- validations:
- required: true
+ - type: dropdown
+ id: issue-db-affect
+ attributes:
+ label: Database
+ description: |
+ Do different database files fix the issue?
+ **`Required`**
+ options:
+ - 'Issue occurs only with new databases'
+ - 'Issue occurs only with existing databases'
+ - 'Issue occurs with both new + existing databases'
+ validations:
+ required: true
- - type: textarea
- id: steps-reproduce
- attributes:
- label: Steps To Reproduce
- description: |
- Describe the steps that need taken by the developer(s) to get the error / issue you're experiencing.
- value: |
- -
- -
- -
- -
- validations:
- required: true
+ - type: textarea
+ id: logs-env
+ attributes:
+ label: Copy/Paste Environment Details
+ description: |
+ Copy all information from Settings › Help inside KeeWeb
+ **`Required`**
+ render: shell
+ validations:
+ required: true
- - type: textarea
- id: expected-behavior
- attributes:
- label: Expected Behavior
- description: |
- Describe what you expect KeeWeb to actually do if it were working properly
- value: |
- -
- -
- -
- -
- validations:
- required: true
+ - type: textarea
+ id: description
+ attributes:
+ label: Description
+ description: |
+ Please provide a description of your issue here.
+ **`Required`**
+ validations:
+ required: true
- - type: textarea
- id: logs-console
- attributes:
- label: Logs
- description: |
- List any error messages you received in the developer console.
- Developer console for **web** can be opened with **SHIFT + CTRL + I**
- Open **dev tools** in your browser and attach output log from **CONSOLE** tab. If you are using a desktop app, devtools can be opened from Settings › General › Advanced.
- render: shell
+ - type: textarea
+ id: steps-reproduce
+ attributes:
+ label: Steps To Reproduce
+ description: |
+ Describe the steps that need taken by the developer(s) to get the error / issue you're experiencing.
+ **`Required`**
+ value: |
+ 1.
+ 2.
+ validations:
+ required: true
- - type: textarea
- id: references
- attributes:
- label: Referenced Issues
- description: |
- List any existing issues this ticket may be associated with.
- Structure each issue as:
- - #NUMBER
- - #3
- value: |
- - #
+ - type: textarea
+ id: expected-behavior
+ attributes:
+ label: Expected Behavior
+ description: |
+ What do you expect KeeWeb to actually do if it were working properly
+ **`Required`**
+ value: |
+ -
+ -
+ validations:
+ required: true
- - type: textarea
- id: attachment-db
- attributes:
- label: "Attachments: Database kdbx File"
- description: |
- Attach a test database below that does give you the described issue.
- Ensure it has no real security information within it as it will be publicly visible to all.
+ - type: textarea
+ id: logs-console
+ attributes:
+ label: Logs
+ description: |
+ List any error messages you receive in the developer console. Developer console for **web** can be opened with **SHIFT + CTRL + I**
+ Open **dev tools** in your browser and attach output log from **CONSOLE** tab. If you are using a desktop app, devtools can be opened from Settings › General › Advanced.
+ **`Not Required`**
+ render: shell
- - type: textarea
- id: attachment-screenshots
- attributes:
- label: "Attachments: Screenshots"
- description: |
- Please provide screenshots of any errors or the issue you're having.
- Gifs are even better.
+ - type: textarea
+ id: attachments
+ attributes:
+ label: 'Attachments'
+ description: |
+ Add attachments here.
+ Attach a test database below if your issue is with a specific database. Ensure it has no real security information within it as it will be publicly visible to all.
+ Provide screenshots of any errors or the issue you're having. Gifs are even better.
+ **`Not Required`**
diff --git a/.github/workflows/deploy-docker-dockerhub.yml b/.github/workflows/deploy-docker-dockerhub.yml
index 252e242de..4fbdce4ec 100644
--- a/.github/workflows/deploy-docker-dockerhub.yml
+++ b/.github/workflows/deploy-docker-dockerhub.yml
@@ -34,7 +34,7 @@ on:
# #
IMAGE_NAME:
- description: "📦 Image Name"
+ description: '📦 Image Name'
required: true
default: 'keeweb'
type: string
@@ -47,7 +47,7 @@ on:
# #
IMAGE_AUTHOR:
- description: "🪪 Image Author"
+ description: '🪪 Image Author'
required: true
default: 'antelle'
type: string
@@ -59,7 +59,7 @@ on:
# #
IMAGE_VERSION:
- description: "🏷️ Image Version"
+ description: '🏷️ Image Version'
required: true
default: '1.19.0'
type: string
@@ -71,32 +71,32 @@ on:
# #
IMAGE_DOCKERHUB_USERNAME:
- description: "🪪 Dockerhub Username"
- required: true
- default: 'antelle'
- type: string
+ description: '🪪 Dockerhub Username'
+ required: true
+ default: 'antelle'
+ type: string
# #
- # true: runs all actions, even ones not scheduled
- # false: only scheduled tasks will run
+ # true no changes to the repo will be made
+ # false workflow will behave normally, and push any changes detected to the files
# #
- PRINT_ONLY:
- description: "📑 Print Debugs Only"
- required: true
- default: false
- type: boolean
+ DRY_RUN:
+ description: '🐛 Dry Run (Debug)'
+ required: true
+ default: false
+ type: boolean
# #
- # ENABLE: released version will be marked as beta and receive beta tag for docker
- # DISABLE: release version will be marked as stable / normal release
+ # true released version will be marked as a development build and will have the v1.x.x-development tag instead of -latest
+ # false release version will be marked with -latest docker tag
# #
DEV_RELEASE:
- description: "🧪 Development Release"
- required: true
- default: false
- type: boolean
+ description: '🧪 Development Release'
+ required: true
+ default: false
+ type: boolean
# #
# Trigger › Push
@@ -134,7 +134,7 @@ jobs:
job-docker-release-tags-create:
name: >-
- 📦 Release › Create Tag
+ 📦 Release › Create Tag
runs-on: ubuntu-latest
permissions:
contents: write
@@ -147,8 +147,8 @@ jobs:
# Release › Tags › Start
# #
- - name: "✅ Start"
- id: task_ctags_start
+ - name: '🏳️ Start'
+ id: task_release_tags_start
run: |
echo "Creating Tag"
@@ -156,27 +156,29 @@ jobs:
# Release › Tags › Checkout
# #
- - name: "☑️ Checkout"
- id: task_ctags_checkout
+ - name: '✅ Checkout'
+ id: task_release_tags_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Tags › Check Permissions
+ # Release › Tags › Fix Permissions
# #
- - name: 'Check Permissions'
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_tags_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
@@ -186,8 +188,8 @@ jobs:
# #
- uses: rickstaa/action-create-tag@v1
- id: task_ctags_create
- if: ( github.event_name != 'workflow_dispatch' && inputs.PRINT_ONLY == false )
+ id: task_release_tags_create
+ if: ( github.event_name != 'workflow_dispatch' && inputs.DRY_RUN == false )
with:
tag: "${{ env.IMAGE_VERSION }}"
tag_exists_error: false
@@ -199,9 +201,9 @@ jobs:
# Job › Docker Release › Dockerhub › Arm64
# #
- job-docker-release-github-arm64:
+ job-docker-release-dockerhub-arm64:
name: >-
- 📦 Release › Dockerhub › Arm64
+ 📦 Release › Dockerhub › Arm64
runs-on: ubuntu-latest
needs: [ job-docker-release-tags-create ]
permissions:
@@ -215,43 +217,65 @@ jobs:
# Release › Dockerhub › Start › Arm64
# #
- - name: "✅ Start"
+ - name: '🏳️ Start'
id: task_release_dh_start
run: |
- echo "Starting Dockerhub Docker arm64"
+ echo "Starting Dockerhub arm64"
# #
# Release › Dockerhub › Checkout › Arm64
# #
- - name: "☑️ Checkout"
+ - name: '✅ Checkout'
id: task_release_dh_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Dockerhub › Check Permissions
+ # Release › Dockerhub › Install Dependencies
+ # #
+
+ - name: '📦 Install Dependencies'
+ id: task_release_dh_dependencies
+ run:
+ sudo apt-get install -qq dos2unix
+
+ # #
+ # Release › Dockerhub › Execute dos2unix
# #
- - name: 'Check Permissions'
+ - name: '🔐 Apply dos2unix'
+ id: task_release_dh_dos2unix
+ run: |
+ echo "⚠️⚠️⚠️ Running DOS2UNIX ⚠️⚠️⚠️"
+ find ./ \( -path "./.git" -o -path "./docs" -o -path "./.github" -o -path "*.png" -o -path "*.jpg" \) -prune -o -name '*' -print | xargs dos2unix --
+ echo "✅✅✅ Completed DOS2UNIX ✅✅✅"
+
+ # #
+ # Release › Dockerhub › Fix Permissions
+ # #
+
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_dh_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
# Release › Dockerhub › QEMU › Arm64
# #
- - name: "⚙️ Set up QEMU"
+ - name: '⚙️ Set up QEMU'
id: task_release_dh_qemu
uses: docker/setup-qemu-action@v3
@@ -259,18 +283,18 @@ jobs:
# Release › Dockerhub › Setup BuildX › Arm64
# #
- - name: "⚙️ Setup Buildx"
+ - name: '⚙️ Setup Buildx'
id: task_release_dh_buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
- driver-opts: 'image=moby/buildkit:v0.10.5'
+ driver-opts: 'image=moby/buildkit:latest'
# #
# Release › Dockerhub › Registry Login › Arm64
# #
- - name: "⚙️ Login to Dockerhub"
+ - name: '⚙️ Login to Dockerhub'
id: task_release_dh_registry
uses: docker/login-action@v3
with:
@@ -281,14 +305,13 @@ jobs:
# Release › Dockerhub › Meta › Arm64
# #
- - name: "🔨 Dockerhub: Meta - Arm64"
+ - name: '🔨 Dockerhub: Meta - Arm64'
id: task_release_dh_meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.IMAGE_AUTHOR }}/${{ env.IMAGE_NAME }}
tags: |
-
# latest no
type=raw,value=latest,enable=false
@@ -304,17 +327,18 @@ jobs:
latest=false
# #
- # Release › Dockerhub › Debug › Arm64
+ # Release › Dockerhub › Checkpoint › Arm64
# #
- - name: "🪪 Debug › Print"
- id: task_release_dh_print
+ - name: '⚠️ Checkpoint'
+ id: task_release_dh_checkpoint
run: |
- echo "registry ............. Dockerhub"
+ echo "registry ............. Github"
echo "github.actor.......... ${{ github.actor }}"
echo "github.ref ........... ${{ github.ref }}"
+ echo "github.ref_name ...... ${{ github.ref_name }}"
echo "github.event_name .... ${{ github.event_name }}"
- echo "inputs.PRINT_ONLY .... ${{ inputs.PRINT_ONLY }}"
+ echo "inputs.DRY_RUN ....... ${{ inputs.DRY_RUN }}"
echo "env.AUTHOR ........... ${{ env.IMAGE_AUTHOR }}"
echo "tags ................. ${{ steps.task_release_dh_meta.outputs.tags }}"
echo "labels ............... ${{ steps.task_release_dh_meta.outputs.labels }}"
@@ -323,10 +347,10 @@ jobs:
# Release › Dockerhub › Build and Push › Arm64
# #
- - name: "📦 Build & Push (linux/arm64)"
+ - name: '📦 Build & Push (linux/arm64)'
id: task_release_dh_push
uses: docker/build-push-action@v6
- if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == false ) || ( github.event_name == 'push' )
+ if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' )
with:
context: .
file: Dockerfile.aarch64
@@ -339,7 +363,7 @@ jobs:
# Job › Docker Release › Dockerhub › Amd64
# #
- job-docker-release-github-amd64:
+ job-docker-release-dockerhub-amd64:
name: >-
📦 Release › Dockerhub › Amd64
runs-on: ubuntu-latest
@@ -348,14 +372,14 @@ jobs:
packages: write
attestations: write
id-token: write
- needs: [ job-docker-release-tags-create, job-docker-release-github-arm64 ]
+ needs: [ job-docker-release-tags-create, job-docker-release-dockerhub-arm64 ]
steps:
# #
# Release › Dockerhub › Start › Amd64
# #
- - name: "✅ Start"
+ - name: '🏳️ Start'
id: task_release_dh_start
run: |
echo "Starting Dockerhub docker release"
@@ -364,34 +388,54 @@ jobs:
# Release › Dockerhub › Checkout › Amd64
# #
- - name: "☑️ Checkout"
+ - name: '✅ Checkout'
id: task_release_dh_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Dockerhub › Check Permissions
+ # Release › Dockerhub › Install Dependencies
+ # #
+
+ - name: '📦 Install Dependencies'
+ id: task_release_dh_dependencies
+ run:
+ sudo apt-get install -qq dos2unix
+
+ # #
+ # Release › Dockerhub › Execute dos2unix
+ # #
+
+ - name: '🔐 Apply dos2unix'
+ id: task_release_dh_dos2unix
+ run: |
+ find ./ \( -path "./.git" -o -path "./docs" -o -path "./.github" -o -path "*.png" -o -path "*.jpg" \) -prune -o -name '*' -print | xargs dos2unix --
+
+ # #
+ # Release › Dockerhub › Fix Permissions
# #
- - name: 'Check Permissions'
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_dh_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
# Release › Dockerhub › QEMU › Amd64
# #
- - name: "⚙️ Set up QEMU"
+ - name: '⚙️ Set up QEMU'
id: task_release_dh_qemu
uses: docker/setup-qemu-action@v3
@@ -399,18 +443,18 @@ jobs:
# Release › Dockerhub › Setup BuildX › Amd64
# #
- - name: "⚙️ Setup Buildx"
+ - name: '⚙️ Setup Buildx'
id: task_release_dh_buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
- driver-opts: 'image=moby/buildkit:v0.10.5'
+ driver-opts: 'image=moby/buildkit:latest'
# #
# Release › Dockerhub › Registry Login › Amd64
# #
- - name: "⚙️ Login to Dockerhub"
+ - name: '⚙️ Login to Dockerhub'
id: task_release_dh_registry
uses: docker/login-action@v3
with:
@@ -421,7 +465,7 @@ jobs:
# Release › Dockerhub › Meta › Amd64
# #
- - name: "🔨 Dockerhub: Meta - Amd64"
+ - name: '🔨 Dockerhub: Meta - Amd64'
id: task_release_dh_meta
uses: docker/metadata-action@v5
with:
@@ -446,17 +490,18 @@ jobs:
latest=${{ !inputs.DEV_RELEASE }}
# #
- # Release › Dockerhub › Debug › Amd64
+ # Release › Dockerhub › Checkpoint › Amd64
# #
- - name: "🪪 Debug › Print"
- id: task_release_dh_print
+ - name: '⚠️ Checkpoint'
+ id: task_release_dh_checkpoint
run: |
- echo "registry ............. Dockerhub"
+ echo "registry ............. Github"
echo "github.actor.......... ${{ github.actor }}"
echo "github.ref ........... ${{ github.ref }}"
+ echo "github.ref_name ...... ${{ github.ref_name }}"
echo "github.event_name .... ${{ github.event_name }}"
- echo "inputs.PRINT_ONLY .... ${{ inputs.PRINT_ONLY }}"
+ echo "inputs.DRY_RUN ....... ${{ inputs.DRY_RUN }}"
echo "env.AUTHOR ........... ${{ env.IMAGE_AUTHOR }}"
echo "tags ................. ${{ steps.task_release_dh_meta.outputs.tags }}"
echo "labels ............... ${{ steps.task_release_dh_meta.outputs.labels }}"
@@ -465,10 +510,10 @@ jobs:
# Release › Dockerhub › Build and Push › Amd64
# #
- - name: "📦 Build & Push (linux/amd64)"
+ - name: '📦 Build & Push (linux/amd64)'
id: task_release_dh_push
uses: docker/build-push-action@v6
- if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == false ) || ( github.event_name == 'push' )
+ if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' )
with:
context: .
file: Dockerfile
diff --git a/.github/workflows/deploy-docker-github-sync.yml b/.github/workflows/deploy-docker-github-sync.yml
index 9ace2873c..73f03d498 100644
--- a/.github/workflows/deploy-docker-github-sync.yml
+++ b/.github/workflows/deploy-docker-github-sync.yml
@@ -43,10 +43,10 @@ on:
# #
BRANCH_SRC:
- description: '📂 Repo › Source'
- required: true
- default: 'docker/keeweb'
- type: string
+ description: '↪️ Branch › Source'
+ required: true
+ default: 'docker/keeweb'
+ type: string
# #
# Folder › Destination
@@ -128,7 +128,7 @@ jobs:
# Sync › Start
# #
- - name: "✅ Start"
+ - name: '🏳️ Start'
id: task_sync_start
run: |
echo "Starting branch sync"
@@ -137,7 +137,7 @@ jobs:
# Sync › Checkout
# #
- - name: "☑️ Checkout"
+ - name: '✅ Checkout'
id: task_sync_checkout
uses: actions/checkout@v4
with:
@@ -147,7 +147,7 @@ jobs:
# Sync › Install Dependencies
# #
- - name: "📦 Install Dependencies"
+ - name: '📦 Install Dependencies'
id: task_sync_dependencies
run:
sudo apt-get install -qq dos2unix
@@ -158,7 +158,7 @@ jobs:
# attempts to get the name of the default branch so that we don't have to manually changes
# #
- - name: "🔍 Find Default Branch Name"
+ - name: '🔍 Find Default Branch Name'
id: task_sync_branch_default_get
run:
echo "BRANCH_MAIN=${{ github.event.repository.default_branch }}" >> $GITHUB_ENV
@@ -183,7 +183,7 @@ jobs:
- name: '⚠️ Env Variable › Confirm'
id: task_sync_vars_confirm
run: |
- echo "BRANCH_DEST is now ${{ env.BRANCH_DEST }}"
+ echo "✅✅✅ BRANCH_DEST is now ${{ env.BRANCH_DEST }} ✅✅✅"
# #
# Sync › Checkpoint › 1
@@ -248,12 +248,13 @@ jobs:
find ${{ env.FOLDER_DEST }} -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ${{ env.FOLDER_DEST }} -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
@@ -263,7 +264,9 @@ jobs:
- name: '🔐 Apply dos2unix'
id: task_sync_fix_dos2unix
run: |
- find ${{ env.FOLDER_DEST }} -type f | grep -Ev '.git|.github|*.jpg|*.jpeg|*.png' | xargs dos2unix --
+ echo "⚠️⚠️⚠️ Running DOS2UNIX ⚠️⚠️⚠️"
+ find ${{ env.FOLDER_DEST }} \( -path "./.git" -o -path "./docs" -o -path "./.github" -o -path "*.png" -o -path "*.jpg" \) -prune -o -name '*' -print | xargs dos2unix --
+ echo "✅✅✅ Completed DOS2UNIX ✅✅✅"
# #
# Sync › Show Differences
diff --git a/.github/workflows/deploy-docker-github.yml b/.github/workflows/deploy-docker-github.yml
index 997d7b1e7..1ff1b0c8e 100644
--- a/.github/workflows/deploy-docker-github.yml
+++ b/.github/workflows/deploy-docker-github.yml
@@ -34,7 +34,7 @@ on:
# #
IMAGE_NAME:
- description: "📦 Image Name"
+ description: '📦 Image Name'
required: true
default: 'keeweb'
type: string
@@ -47,7 +47,7 @@ on:
# #
IMAGE_AUTHOR:
- description: "🪪 Image Author"
+ description: '🪪 Image Author'
required: true
default: 'keeweb'
type: string
@@ -59,7 +59,7 @@ on:
# #
IMAGE_VERSION:
- description: "🏷️ Image Version"
+ description: '🏷️ Image Version'
required: true
default: '1.19.0'
type: string
@@ -71,32 +71,32 @@ on:
# #
IMAGE_GHCR_USERNAME:
- description: "🪪 ghcr.io Username"
- required: true
- default: 'keeweb'
- type: string
+ description: '🪪 ghcr.io Username'
+ required: true
+ default: 'keeweb'
+ type: string
# #
- # true: runs all actions, even ones not scheduled
- # false: only scheduled tasks will run
+ # true no changes to the repo will be made
+ # false workflow will behave normally, and push any changes detected to the files
# #
- PRINT_ONLY:
- description: "📑 Print Debugs Only"
- required: true
- default: false
- type: boolean
+ DRY_RUN:
+ description: '🐛 Dry Run (Debug)'
+ required: true
+ default: false
+ type: boolean
# #
- # ENABLE: released version will be marked as beta and receive beta tag for docker
- # DISABLE: release version will be marked as stable / normal release
+ # true released version will be marked as a development build and will have the v1.x.x-development tag instead of -latest
+ # false release version will be marked with -latest docker tag
# #
DEV_RELEASE:
- description: "🧪 Development Release"
- required: true
- default: false
- type: boolean
+ description: '🧪 Development Release'
+ required: true
+ default: false
+ type: boolean
# #
# Trigger › Push
@@ -134,7 +134,7 @@ jobs:
job-docker-release-tags-create:
name: >-
- 📦 Release › Create Tag
+ 📦 Release › Create Tag
runs-on: ubuntu-latest
permissions:
contents: write
@@ -147,8 +147,8 @@ jobs:
# Release › Tags › Start
# #
- - name: "✅ Start"
- id: task_ctags_start
+ - name: '🏳️ Start'
+ id: task_release_tags_start
run: |
echo "Creating Tag"
@@ -156,27 +156,29 @@ jobs:
# Release › Tags › Checkout
# #
- - name: "☑️ Checkout"
- id: task_ctags_checkout
+ - name: '✅ Checkout'
+ id: task_release_tags_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Tags › Check Permissions
+ # Release › Tags › Fix Permissions
# #
- - name: 'Check Permissions'
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_tags_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
@@ -186,8 +188,8 @@ jobs:
# #
- uses: rickstaa/action-create-tag@v1
- id: task_ctags_create
- if: ( github.event_name != 'workflow_dispatch' && inputs.PRINT_ONLY == false )
+ id: task_release_tags_create
+ if: ( github.event_name != 'workflow_dispatch' && inputs.DRY_RUN == false )
with:
tag: "${{ env.IMAGE_VERSION }}"
tag_exists_error: false
@@ -201,7 +203,7 @@ jobs:
job-docker-release-github-arm64:
name: >-
- 📦 Release › Github › Arm64
+ 📦 Release › Github › Arm64
runs-on: ubuntu-latest
needs: [ job-docker-release-tags-create ]
permissions:
@@ -215,7 +217,7 @@ jobs:
# Release › Github › Start › Arm64
# #
- - name: "✅ Start"
+ - name: '🏳️ Start'
id: task_release_gh_start
run: |
echo "Starting Github Docker arm64"
@@ -224,34 +226,56 @@ jobs:
# Release › Github › Checkout › Arm64
# #
- - name: "☑️ Checkout"
+ - name: '✅ Checkout'
id: task_release_gh_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Github › Check Permissions
+ # Release › Github › Install Dependencies
+ # #
+
+ - name: '📦 Install Dependencies'
+ id: task_release_gh_dependencies
+ run:
+ sudo apt-get install -qq dos2unix
+
+ # #
+ # Release › Github › Execute dos2unix
# #
- - name: 'Check Permissions'
+ - name: '🔐 Apply dos2unix'
+ id: task_release_gh_dos2unix
+ run: |
+ echo "⚠️⚠️⚠️ Running DOS2UNIX ⚠️⚠️⚠️"
+ find ./ \( -path "./.git" -o -path "./docs" -o -path "./.github" -o -path "*.png" -o -path "*.jpg" \) -prune -o -name '*' -print | xargs dos2unix --
+ echo "✅✅✅ Completed DOS2UNIX ✅✅✅"
+
+ # #
+ # Release › Github › Fix Permissions
+ # #
+
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_gh_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
# Release › Github › QEMU › Arm64
# #
- - name: "⚙️ Set up QEMU"
+ - name: '⚙️ Set up QEMU'
id: task_release_gh_qemu
uses: docker/setup-qemu-action@v3
@@ -259,18 +283,18 @@ jobs:
# Release › Github › Setup BuildX › Arm64
# #
- - name: "⚙️ Setup Buildx"
+ - name: '⚙️ Setup Buildx'
id: task_release_gh_buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
- driver-opts: 'image=moby/buildkit:v0.10.5'
+ driver-opts: 'image=moby/buildkit:latest'
# #
# Release › Github › Registry Login › Arm64
# #
- - name: "⚙️ Login to Github"
+ - name: '⚙️ Login to Github'
id: task_release_gh_registry
uses: docker/login-action@v3
with:
@@ -282,7 +306,7 @@ jobs:
# Release › Github › Meta › Arm64
# #
- - name: "🔨 Github: Meta - Arm64"
+ - name: '🔨 Github: Meta - Arm64'
id: task_release_gh_meta
uses: docker/metadata-action@v5
with:
@@ -301,17 +325,18 @@ jobs:
latest=false
# #
- # Release › Github › Debug › Arm64
+ # Release › Github › Checkpoint › Arm64
# #
- - name: "🪪 Debug › Print"
- id: task_release_gh_print
+ - name: '⚠️ Checkpoint'
+ id: task_release_gh_checkpoint
run: |
echo "registry ............. Github"
echo "github.actor.......... ${{ github.actor }}"
echo "github.ref ........... ${{ github.ref }}"
+ echo "github.ref_name ...... ${{ github.ref_name }}"
echo "github.event_name .... ${{ github.event_name }}"
- echo "inputs.PRINT_ONLY .... ${{ inputs.PRINT_ONLY }}"
+ echo "inputs.DRY_RUN ....... ${{ inputs.DRY_RUN }}"
echo "env.AUTHOR ........... ${{ env.IMAGE_AUTHOR }}"
echo "tags ................. ${{ steps.task_release_gh_meta.outputs.tags }}"
echo "labels ............... ${{ steps.task_release_gh_meta.outputs.labels }}"
@@ -320,10 +345,10 @@ jobs:
# Release › Github › Build and Push › Arm64
# #
- - name: "📦 Build & Push (linux/arm64)"
+ - name: '📦 Build & Push (linux/arm64)'
id: task_release_gh_push
uses: docker/build-push-action@v6
- if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == false ) || ( github.event_name == 'push' )
+ if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' )
with:
context: .
file: Dockerfile.aarch64
@@ -338,7 +363,7 @@ jobs:
job-docker-release-github-amd64:
name: >-
- 📦 Release › Github › Amd64
+ 📦 Release › Github › Amd64
runs-on: ubuntu-latest
permissions:
contents: write
@@ -352,7 +377,7 @@ jobs:
# Release › Github › Start › Amd64
# #
- - name: "✅ Start"
+ - name: '🏳️ Start'
id: task_release_gh_start
run: |
echo "Starting Github docker release"
@@ -361,34 +386,54 @@ jobs:
# Release › Github › Checkout › Amd64
# #
- - name: "☑️ Checkout"
+ - name: '✅ Checkout'
id: task_release_gh_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# #
- # Release › Github › Check Permissions
+ # Release › Github › Install Dependencies
+ # #
+
+ - name: '📦 Install Dependencies'
+ id: task_release_gh_dependencies
+ run:
+ sudo apt-get install -qq dos2unix
+
+ # #
+ # Release › Github › Execute dos2unix
+ # #
+
+ - name: '🔐 Apply dos2unix'
+ id: task_release_gh_dos2unix
+ run: |
+ find ./ \( -path "./.git" -o -path "./docs" -o -path "./.github" -o -path "*.png" -o -path "*.jpg" \) -prune -o -name '*' -print | xargs dos2unix --
+
+ # #
+ # Release › Github › Fix Permissions
# #
- - name: 'Check Permissions'
+ - name: '#️⃣ Manage Permissions'
+ id: task_release_gh_permissions
run: |
find ./ -name 'run' -exec chmod 755 {} \;
WRONG_PERM=$(find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print)
if [ -n "${WRONG_PERM}" ]; then
+ echo "⚠️⚠️⚠️ Permissions are invalid ⚠️⚠️⚠️"
for i in ${WRONG_PERM}; do
echo "::error file=${i},line=1,title=Missing Executable Bit::This file needs to be set as executable!"
done
exit 1
else
- echo "**** Executable permissions are OK ****"
+ echo "✅✅✅ Executable permissions are OK ✅✅✅"
fi
# #
# Release › Github › QEMU › Amd64
# #
- - name: "⚙️ Set up QEMU"
+ - name: '⚙️ Set up QEMU'
id: task_release_gh_qemu
uses: docker/setup-qemu-action@v3
@@ -396,18 +441,18 @@ jobs:
# Release › Github › Setup BuildX › Amd64
# #
- - name: "⚙️ Setup Buildx"
+ - name: '⚙️ Setup Buildx'
id: task_release_gh_buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
- driver-opts: 'image=moby/buildkit:v0.10.5'
+ driver-opts: 'image=moby/buildkit:latest'
# #
# Release › Github › Registry Login › Amd64
# #
- - name: "⚙️ Login to Github"
+ - name: '⚙️ Login to Github'
id: task_release_gh_registry
uses: docker/login-action@v3
with:
@@ -419,7 +464,7 @@ jobs:
# Release › Github › Meta › Amd64
# #
- - name: "🔨 Github: Meta - Amd64"
+ - name: '🔨 Github: Meta - Amd64'
id: task_release_gh_meta
uses: docker/metadata-action@v5
with:
@@ -440,17 +485,18 @@ jobs:
latest=${{ !inputs.DEV_RELEASE }}
# #
- # Release › Github › Debug › Amd64
+ # Release › Github › Checkpoint › Amd64
# #
- - name: "🪪 Debug › Print"
- id: task_release_gh_print
+ - name: '⚠️ Checkpoint'
+ id: task_release_gh_checkpoint
run: |
echo "registry ............. Github"
echo "github.actor.......... ${{ github.actor }}"
echo "github.ref ........... ${{ github.ref }}"
+ echo "github.ref_name ...... ${{ github.ref_name }}"
echo "github.event_name .... ${{ github.event_name }}"
- echo "inputs.PRINT_ONLY .... ${{ inputs.PRINT_ONLY }}"
+ echo "inputs.DRY_RUN ....... ${{ inputs.DRY_RUN }}"
echo "env.AUTHOR ........... ${{ env.IMAGE_AUTHOR }}"
echo "tags ................. ${{ steps.task_release_gh_meta.outputs.tags }}"
echo "labels ............... ${{ steps.task_release_gh_meta.outputs.labels }}"
@@ -459,10 +505,10 @@ jobs:
# Release › Github › Build and Push › Amd64
# #
- - name: "📦 Build & Push (linux/amd64)"
+ - name: '📦 Build & Push (linux/amd64)'
id: task_release_gh_push
uses: docker/build-push-action@v6
- if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == false ) || ( github.event_name == 'push' )
+ if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' )
with:
context: .
file: Dockerfile