Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
090eca5134 | ||
| 1b5086aadc | |||
|
|
d60343bfd5 | ||
|
|
e4580e3239 | ||
|
|
321b0c20c8 | ||
|
|
6859056efc | ||
| e4e71b4df8 | |||
| 59eaed06a9 | |||
|
|
2b8334104f | ||
|
|
03a5c05e46 | ||
| 16ac1d5205 |
@@ -5,9 +5,6 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
|
||||||
- cron: '28 5 * * *'
|
|
||||||
# workflow_run support in Gitea can be tricky, keeping it but might need adjustment
|
|
||||||
workflow_run:
|
workflow_run:
|
||||||
workflows: ["Sync Repo"]
|
workflows: ["Sync Repo"]
|
||||||
types:
|
types:
|
||||||
@@ -19,7 +16,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: catthehacker/ubuntu:act-latest
|
image: catthehacker/ubuntu:act-latest
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
packages: write
|
packages: write
|
||||||
@@ -139,7 +136,7 @@ jobs:
|
|||||||
LATEST_RELEASE_TAG=$(curl -sL -H "Accept: application/json" \
|
LATEST_RELEASE_TAG=$(curl -sL -H "Accept: application/json" \
|
||||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
||||||
"${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/latest" | jq -r .tag_name)
|
"${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/latest" | jq -r .tag_name)
|
||||||
|
|
||||||
if [ -z "$LATEST_RELEASE_TAG" ] || [ "$LATEST_RELEASE_TAG" = "null" ]; then
|
if [ -z "$LATEST_RELEASE_TAG" ] || [ "$LATEST_RELEASE_TAG" = "null" ]; then
|
||||||
LATEST_RELEASE_TAG="v1.0.0"
|
LATEST_RELEASE_TAG="v1.0.0"
|
||||||
fi
|
fi
|
||||||
@@ -245,7 +242,7 @@ jobs:
|
|||||||
AUTHOR="Ivan Carlos"
|
AUTHOR="Ivan Carlos"
|
||||||
VERSION_FILE="manifest.json"
|
VERSION_FILE="manifest.json"
|
||||||
UPSTREAM_SHA="${{ steps.check_upstream.outputs.upstream_sha }}"
|
UPSTREAM_SHA="${{ steps.check_upstream.outputs.upstream_sha }}"
|
||||||
|
|
||||||
if [ -f "$VERSION_FILE" ]; then
|
if [ -f "$VERSION_FILE" ]; then
|
||||||
jq --arg v "$VERSION" \
|
jq --arg v "$VERSION" \
|
||||||
--arg a "$AUTHOR" \
|
--arg a "$AUTHOR" \
|
||||||
@@ -265,6 +262,11 @@ jobs:
|
|||||||
git commit -m "Update manifest version to ${{ steps.version.outputs.VERSION }} [▶️]" || echo "Nothing to commit"
|
git commit -m "Update manifest version to ${{ steps.version.outputs.VERSION }} [▶️]" || echo "Nothing to commit"
|
||||||
git push origin main
|
git push origin main
|
||||||
|
|
||||||
|
- name: 🛠 Install zip
|
||||||
|
if: steps.check_commits.outputs.commit_count != '0'
|
||||||
|
run: |
|
||||||
|
apt-get update && apt-get install -y zip
|
||||||
|
|
||||||
- name: 📦 Create ZIP package (excluding certain files)
|
- name: 📦 Create ZIP package (excluding certain files)
|
||||||
if: steps.check_commits.outputs.commit_count != '0'
|
if: steps.check_commits.outputs.commit_count != '0'
|
||||||
run: |
|
run: |
|
||||||
@@ -279,11 +281,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
TAG_NAME="v${{ steps.version.outputs.VERSION }}"
|
TAG_NAME="v${{ steps.version.outputs.VERSION }}"
|
||||||
RELEASE_NAME="${{ steps.version.outputs.REPO_NAME }} v${{ steps.version.outputs.VERSION }}"
|
RELEASE_NAME="${{ steps.version.outputs.REPO_NAME }} v${{ steps.version.outputs.VERSION }}"
|
||||||
|
|
||||||
# Construct Markdown body safely using env var
|
# Construct Markdown body safely using env var
|
||||||
# We use printf to avoid interpreting backslashes in the file list
|
# We use printf to avoid interpreting backslashes in the file list
|
||||||
BODY=$(printf "### Changelog\nFiles changed in this release:\n%s" "$CHANGELOG_LIST")
|
BODY=$(printf "### Changelog\nFiles changed in this release:\n%s" "$CHANGELOG_LIST")
|
||||||
|
|
||||||
# Create JSON payload using jq
|
# Create JSON payload using jq
|
||||||
jq -n \
|
jq -n \
|
||||||
--arg tag_name "$TAG_NAME" \
|
--arg tag_name "$TAG_NAME" \
|
||||||
@@ -299,13 +301,13 @@ jobs:
|
|||||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d @release_payload.json > api_response.json
|
-d @release_payload.json > api_response.json
|
||||||
|
|
||||||
echo "DEBUG: API Response:"
|
echo "DEBUG: API Response:"
|
||||||
cat api_response.json || true
|
cat api_response.json || true
|
||||||
|
|
||||||
RELEASE_ID=$(jq -r .id api_response.json)
|
RELEASE_ID=$(jq -r .id api_response.json)
|
||||||
echo "RELEASE_ID=$RELEASE_ID" >> "$GITHUB_OUTPUT"
|
echo "RELEASE_ID=$RELEASE_ID" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
if [ "$RELEASE_ID" == "null" ] || [ -z "$RELEASE_ID" ]; then
|
if [ "$RELEASE_ID" == "null" ] || [ -z "$RELEASE_ID" ]; then
|
||||||
echo "Failed to create release. Response content:"
|
echo "Failed to create release. Response content:"
|
||||||
cat api_response.json
|
cat api_response.json
|
||||||
@@ -318,19 +320,18 @@ jobs:
|
|||||||
RELEASE_ID="${{ steps.create_release.outputs.RELEASE_ID }}"
|
RELEASE_ID="${{ steps.create_release.outputs.RELEASE_ID }}"
|
||||||
ZIP_NAME="${{ steps.version.outputs.ZIP_NAME }}"
|
ZIP_NAME="${{ steps.version.outputs.ZIP_NAME }}"
|
||||||
FILE_PATH="./$ZIP_NAME"
|
FILE_PATH="./$ZIP_NAME"
|
||||||
|
|
||||||
curl -s -X POST "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/$RELEASE_ID/assets" \
|
curl --fail -s -X POST "${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/$RELEASE_ID/assets?name=$ZIP_NAME" \
|
||||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
||||||
-H "Content-Type: application/zip" \
|
-H "Content-Type: application/zip" \
|
||||||
--data-binary @"$FILE_PATH" \
|
--data-binary @"$FILE_PATH"
|
||||||
-o /dev/null
|
|
||||||
|
|
||||||
# ----- Docker steps -----
|
# ----- Docker steps -----
|
||||||
- name: Clone Upstream Code (if needed)
|
- name: Clone Upstream Code (if needed)
|
||||||
if: steps.check_commits.outputs.commit_count != '0' && (steps.check_upstream.outputs.upstream_needs_update == 'true' || steps.check_upstream.outputs.repo_url != '')
|
if: steps.check_commits.outputs.commit_count != '0' && (steps.check_upstream.outputs.upstream_needs_update == 'true' || steps.check_upstream.outputs.repo_url != '')
|
||||||
run: |
|
run: |
|
||||||
rm -rf upstream_src
|
rm -rf upstream_src
|
||||||
git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src
|
git clone --depth 1 --branch ${{ steps.check_upstream.outputs.repo_branch }} ${{ steps.check_upstream.outputs.repo_url }} upstream_src
|
||||||
|
|
||||||
- name: 🔍 Check if Dockerfile exists
|
- name: 🔍 Check if Dockerfile exists
|
||||||
if: steps.check_commits.outputs.commit_count != '0' || steps.check_upstream.outputs.upstream_needs_update == 'true'
|
if: steps.check_commits.outputs.commit_count != '0' || steps.check_upstream.outputs.upstream_needs_update == 'true'
|
||||||
|
|||||||
59
.gitea/workflows/update_readme.yml
Normal file
59
.gitea/workflows/update_readme.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: Update README
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 4 * * *" # Every day at 4 AM UTC
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-readme:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: catthehacker/ubuntu:act-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
SOURCE_REPO: ivancarlos/.gitea
|
||||||
|
SOURCE_BRANCH: main
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout current repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Checkout source README template
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: ${{ env.SOURCE_REPO }}
|
||||||
|
ref: ${{ env.SOURCE_BRANCH }}
|
||||||
|
token: ${{ secrets.CR_PAT }}
|
||||||
|
path: source_readme
|
||||||
|
|
||||||
|
- name: Update README.md (footer only)
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# --- Extract footer block from source (everything from <!-- footer --> onward) ---
|
||||||
|
FOOTER=$(awk '/<!-- footer -->/{flag=1}flag' source_readme/README.md)
|
||||||
|
|
||||||
|
# --- Replace everything after <!-- footer --> with FOOTER ---
|
||||||
|
awk -v footer="$FOOTER" '
|
||||||
|
/<!-- footer -->/ {
|
||||||
|
print footer
|
||||||
|
found=1
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
{ print }
|
||||||
|
' README.md > README.tmp && mv README.tmp README.md
|
||||||
|
|
||||||
|
- name: Remove source_readme from git index
|
||||||
|
run: rm -rf source_readme
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
run: |
|
||||||
|
git config user.name "Gitea Actions"
|
||||||
|
git config user.email "actions@git.icc.gg"
|
||||||
|
git add README.md
|
||||||
|
git commit -m "Sync README from template [▶️]" || echo "Nothing to commit"
|
||||||
|
git push origin ${{ github.ref_name }}
|
||||||
29
README.md
29
README.md
@@ -1,19 +1,6 @@
|
|||||||
# Backup Scripts
|
# Backup Scripts
|
||||||
Backup Scripts gives ideas do generate backup of webservers and databases for backup purposes with option to send it to BackBlaze buckets configured on Rclone, also check BackBlaze repositories for outdated buckets and send email messages when find outdated buckets to you through Amazon SES. You can change the script to fit it for other backup storage services and messaging.
|
Backup Scripts gives ideas do generate backup of webservers and databases for backup purposes with option to send it to BackBlaze buckets configured on Rclone, also check BackBlaze repositories for outdated buckets and send email messages when find outdated buckets to you through Amazon SES. You can change the script to fit it for other backup storage services and messaging.
|
||||||
|
|
||||||
<!-- buttons -->
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts/stargazers)
|
|
||||||
[](https://github.com/sponsors/ivancarlosti)
|
|
||||||
[](https://github.com/sponsors/ivancarlosti)
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts/pulse)
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts/issues)
|
|
||||||
[](LICENSE)
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts/commits)
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts/security)
|
|
||||||
[](https://github.com/ivancarlosti/bkpscripts?tab=coc-ov-file)
|
|
||||||
[][sponsor]
|
|
||||||
<!-- endbuttons -->
|
|
||||||
|
|
||||||
## Instructions
|
## Instructions
|
||||||
|
|
||||||
* Setup `rclone.sh` file to run backup of webserver and MariaDB/MySQL or Postgres database
|
* Setup `rclone.sh` file to run backup of webserver and MariaDB/MySQL or Postgres database
|
||||||
@@ -50,20 +37,10 @@ Backup Scripts gives ideas do generate backup of webservers and databases for ba
|
|||||||
* For personal support and queries, please submit a new issue to have it addressed.
|
* For personal support and queries, please submit a new issue to have it addressed.
|
||||||
* For commercial related questions, please [**contact me**][ivancarlos] for consulting costs.
|
* For commercial related questions, please [**contact me**][ivancarlos] for consulting costs.
|
||||||
|
|
||||||
## 🩷 Project support
|
| 🩷 Project support |
|
||||||
| If you found this project helpful, consider |
|
|
||||||
| :---: |
|
| :---: |
|
||||||
[**buying me a coffee**][buymeacoffee], [**donate by paypal**][paypal], [**sponsor this project**][sponsor] or just [**leave a star**](../..)⭐
|
If you found this project helpful, consider [**buying me a coffee**][buymeacoffee]
|
||||||
|Thanks for your support, it is much appreciated!|
|
|Thanks for your support, it is much appreciated!|
|
||||||
|
|
||||||
[cc]: https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project
|
[ivancarlos]: https://ivancarlos.me
|
||||||
[contributing]: https://docs.github.com/en/articles/setting-guidelines-for-repository-contributors
|
|
||||||
[security]: https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository
|
|
||||||
[support]: https://docs.github.com/en/articles/adding-support-resources-to-your-project
|
|
||||||
[it]: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
|
|
||||||
[prt]: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository
|
|
||||||
[funding]: https://docs.github.com/en/articles/displaying-a-sponsor-button-in-your-repository
|
|
||||||
[ivancarlos]: https://ivancarlos.it
|
|
||||||
[buymeacoffee]: https://www.buymeacoffee.com/ivancarlos
|
[buymeacoffee]: https://www.buymeacoffee.com/ivancarlos
|
||||||
[paypal]: https://icc.gg/donate
|
|
||||||
[sponsor]: https://github.com/sponsors/ivancarlosti
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.1.1",
|
||||||
"author": "Ivan Carlos"
|
"author": "Ivan Carlos"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user