Compare commits

..

No commits in common. "c3f73291a3fc2a0c6fb419986491ce1e692d689d" and "fd5a5fe520794591751788e3b02109246411a84a" have entirely different histories.

16 changed files with 93 additions and 127 deletions

View File

@ -5,12 +5,11 @@ on:
branches: branches:
- main - main
paths: paths:
- "ct/**.sh" - 'ct/**.sh'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
update-app-files: update-app-files:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
@ -80,7 +79,7 @@ jobs:
--label "automated pr" --label "automated pr"
env: env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }} GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve pull request - name: Approve pull request
if: env.changed == 'true' if: env.changed == 'true'
env: env:
@ -90,7 +89,7 @@ jobs:
if [ -n "$PR_NUMBER" ]; then if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve gh pr review $PR_NUMBER --approve
fi fi
- name: Re-approve pull request after update - name: Re-approve pull request after update
if: env.changed == 'true' if: env.changed == 'true'
env: env:

View File

@ -7,7 +7,6 @@ on:
jobs: jobs:
autolabeler: autolabeler:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
pull-requests: write pull-requests: write
@ -43,9 +42,9 @@ jobs:
pull_number: prNumber, pull_number: prNumber,
}); });
const prFiles = prListFilesResponse.data; const prFiles = prListFilesResponse.data;
// Apply labels based on file changes // Apply labels based on file changes
for (const [label, rules] of Object.entries(autolabelerConfig)) { for (const [label, rules] of Object.entries(autolabelerConfig)) {
const shouldAddLabel = prFiles.some((prFile) => { const shouldAddLabel = prFiles.some((prFile) => {
@ -67,17 +66,17 @@ jobs:
"✨ **New feature**": "feature", "✨ **New feature**": "feature",
"💥 **Breaking change**": "breaking change", "💥 **Breaking change**": "breaking change",
}; };
for (const [checkbox, label] of Object.entries(templateLabelMappings)) { for (const [checkbox, label] of Object.entries(templateLabelMappings)) {
const escapedCheckbox = checkbox.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); const escapedCheckbox = checkbox.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
const regex = new RegExp(`- \\[(x|X)\\]\\s*.*${escapedCheckbox}`, "i"); const regex = new RegExp(`- \\[(x|X)\\]\\s*.*${escapedCheckbox}`, "i");
const match = prBody.match(regex); const match = prBody.match(regex);
if (match) { if (match) {
console.log(`Match: ${match}`); console.log(`Match: ${match}`);
labelsToAdd.add(label); labelsToAdd.add(label);
} }
} }
console.log(`Labels to add: ${Array.from(labelsToAdd).join(", ")}`); console.log(`Labels to add: ${Array.from(labelsToAdd).join(", ")}`);
if (labelsToAdd.size > 0) { if (labelsToAdd.size > 0) {

View File

@ -7,7 +7,7 @@ on:
jobs: jobs:
update-changelog-pull-request: update-changelog-pull-request:
if: github.repository == 'community-scripts/ProxmoxVED' if: github.repository == 'community-scripts/ProxmoxVE'
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
CONFIG_PATH: .github/changelog-pr-config.json CONFIG_PATH: .github/changelog-pr-config.json

View File

@ -11,7 +11,6 @@ permissions:
jobs: jobs:
close-discussion: close-discussion:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -6,7 +6,6 @@ on:
jobs: jobs:
close_tteck_issues: close_tteck_issues:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Auto-close if tteck script detected - name: Auto-close if tteck script detected
@ -23,12 +22,12 @@ jobs:
This repository is no longer used for active scripts. This repository is no longer used for active scripts.
**Please update your bookmarks** and use: [https://helper-scripts.com](https://helper-scripts.com) **Please update your bookmarks** and use: [https://helper-scripts.com](https://helper-scripts.com)
Also make sure your Bash command starts with: Also make sure your Bash command starts with:
\`\`\`bash \`\`\`bash
bash <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/...) bash <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/...)
\`\`\` \`\`\`
This issue is being closed automatically.`; This issue is being closed automatically.`;
await github.rest.issues.createComment({ await github.rest.issues.createComment({

View File

@ -11,7 +11,7 @@ permissions:
jobs: jobs:
post_to_discord: post_to_discord:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: contains(github.event.issue.labels.*.name, 'Ready For Testing') && github.repository == 'community-scripts/ProxmoxVED' if: contains(github.event.issue.labels.*.name, 'Ready For Testing')
steps: steps:
- name: Extract Issue Title (Lowercase & Underscores) - name: Extract Issue Title (Lowercase & Underscores)
id: extract_title id: extract_title

View File

@ -7,14 +7,13 @@ on:
jobs: jobs:
close_discord_thread: close_discord_thread:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Get thread-ID op and close thread - name: Get thread-ID op and close thread
run: | run: |
ISSUE_TITLE="${{ github.event.issue.title }}" ISSUE_TITLE="${{ github.event.issue.title }}"
THREAD_ID=$(curl -s -X GET "https://discord.com/api/v10/guilds/${{ secrets.DISCORD_GUILD_ID }}/threads/active" \ THREAD_ID=$(curl -s -X GET "https://discord.com/api/v10/guilds/${{ secrets.DISCORD_GUILD_ID }}/threads/active" \
-H "Authorization: Bot ${{ secrets.DISCORD_BOT_TOKEN }}" \ -H "Authorization: Bot ${{ secrets.DISCORD_BOT_TOKEN }}" \
-H "Content-Type: application/json" | \ -H "Content-Type: application/json" | \

View File

@ -7,7 +7,7 @@ on:
jobs: jobs:
delete-files: delete-files:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: contains(github.event.issue.labels.*.name, 'Started Migration To ProxmoxVE') && github.repository == 'community-scripts/ProxmoxVED' if: contains(github.event.issue.labels.*.name, 'Started Migration To ProxmoxVE')
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4

View File

@ -25,11 +25,10 @@ concurrency:
jobs: jobs:
build: build:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: frontend # Set default working directory for all run steps working-directory: frontend # Set default working directory for all run steps
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -64,7 +63,7 @@ jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: github.ref == 'refs/heads/main' && github.repository == 'community-scripts/ProxmoxVED' if: github.ref == 'refs/heads/main'
permissions: permissions:
pages: write pages: write
id-token: write id-token: write

View File

@ -12,7 +12,6 @@ permissions:
jobs: jobs:
crawl-versions: crawl-versions:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -33,10 +32,10 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
ls ls
chmod +x .github/workflows/scripts/get-gh-release.sh chmod +x .github/workflows/scripts/get-gh-release.sh
.github/workflows/scripts/get-gh-release.sh .github/workflows/scripts/get-gh-release.sh
- name: Commit JSON - name: Commit JSON
env: env:

View File

@ -12,7 +12,6 @@ permissions:
jobs: jobs:
crawl-versions: crawl-versions:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -14,7 +14,7 @@ permissions:
jobs: jobs:
move-to-main-repo: move-to-main-repo:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event.label.name == 'Migration To ProxmoxVE' && github.repository == 'community-scripts/ProxmoxVED' if: github.event.label.name == 'Migration To ProxmoxVE'
steps: steps:
- name: Generate a token - name: Generate a token
id: app-token id: app-token

View File

@ -7,7 +7,6 @@ on:
jobs: jobs:
sync: sync:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -20,7 +19,7 @@ jobs:
run: | run: |
git config --global user.name "Push From Github" git config --global user.name "Push From Github"
git config --global user.email "actions@github.com" git config --global user.email "actions@github.com"
git remote add gitea https://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVED.git git remote add gitea http://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVED.git
git push gitea --mirror git push gitea --mirror
env: env:
GITEA_USER: ${{ secrets.GITEA_USERNAME }} GITEA_USER: ${{ secrets.GITEA_USERNAME }}

View File

@ -1,17 +1,16 @@
name: Run Scripts on PVE Node for testing name: Run Scripts on PVE Node for testing
permissions: permissions:
pull-requests: write pull-requests: write
on: on:
pull_request_target: pull_request_target:
branches: branches:
- main - main
paths: paths:
- "install/**.sh" - 'install/**.sh'
- "ct/**.sh" - 'ct/**.sh'
jobs: jobs:
run-install-script: run-install-script:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: pvenode runs-on: pvenode
steps: steps:
- name: Checkout PR branch - name: Checkout PR branch
@ -40,6 +39,7 @@ jobs:
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Get scripts - name: Get scripts
id: check-install-script id: check-install-script
run: | run: |
@ -62,73 +62,73 @@ jobs:
id: run-install id: run-install
continue-on-error: true continue-on-error: true
run: | run: |
set +e set +e
#run for each files in /ct #run for each files in /ct
for FILE in ${{ env.ALL_FILES }}; do for FILE in ${{ env.ALL_FILES }}; do
STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//') STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//')
echo "Running Test for: $STRIPPED_NAME" echo "Running Test for: $STRIPPED_NAME"
if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "$FILE"; then if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "$FILE"; then
echo "The script contains an interactive prompt. Skipping execution." echo "The script contains an interactive prompt. Skipping execution."
continue
fi
if [[ $FILE =~ ^install/.*-install\.sh$ ]]; then
CT_SCRIPT="ct/$STRIPPED_NAME.sh"
if [[ ! -f $CT_SCRIPT ]]; then
echo "No CT script found for $STRIPPED_NAME"
ERROR_MSG="No CT script found for $FILE"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
continue continue
fi fi
if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "install/$STRIPPED_NAME-install.sh"; then if [[ $FILE =~ ^install/.*-install\.sh$ ]]; then
echo "The script contains an interactive prompt. Skipping execution." CT_SCRIPT="ct/$STRIPPED_NAME.sh"
if [[ ! -f $CT_SCRIPT ]]; then
echo "No CT script found for $STRIPPED_NAME"
ERROR_MSG="No CT script found for $FILE"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
continue continue
fi fi
echo "Found CT script for $STRIPPED_NAME" if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "install/$STRIPPED_NAME-install.sh"; then
chmod +x "$CT_SCRIPT" echo "The script contains an interactive prompt. Skipping execution."
RUNNING_FILE=$CT_SCRIPT continue
elif [[ $FILE =~ ^ct/.*\.sh$ ]]; then fi
INSTALL_SCRIPT="install/$STRIPPED_NAME-install.sh" echo "Found CT script for $STRIPPED_NAME"
if [[ ! -f $INSTALL_SCRIPT ]]; then chmod +x "$CT_SCRIPT"
echo "No install script found for $STRIPPED_NAME" RUNNING_FILE=$CT_SCRIPT
ERROR_MSG="No install script found for $FILE" elif [[ $FILE =~ ^ct/.*\.sh$ ]]; then
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log INSTALL_SCRIPT="install/$STRIPPED_NAME-install.sh"
continue if [[ ! -f $INSTALL_SCRIPT ]]; then
echo "No install script found for $STRIPPED_NAME"
ERROR_MSG="No install script found for $FILE"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
continue
fi
echo "Found install script for $STRIPPED_NAME"
chmod +x "$INSTALL_SCRIPT"
RUNNING_FILE=$FILE
if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "ct/$STRIPPED_NAME.sh"; then
echo "The script contains an interactive prompt. Skipping execution."
continue
fi
fi fi
echo "Found install script for $STRIPPED_NAME" git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git
chmod +x "$INSTALL_SCRIPT" git fetch community-scripts
RUNNING_FILE=$FILE rm -f .github/workflows/scripts/app-test/pr-build.func || true
if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "ct/$STRIPPED_NAME.sh"; then rm -f .github/workflows/scripts/app-test/pr-install.func || true
echo "The script contains an interactive prompt. Skipping execution." rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true
continue rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true
fi git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func
fi git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func
git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func
git fetch community-scripts git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-create-lxc.sh
rm -f .github/workflows/scripts/app-test/pr-build.func || true chmod +x $RUNNING_FILE
rm -f .github/workflows/scripts/app-test/pr-install.func || true chmod +x .github/workflows/scripts/app-test/pr-create-lxc.sh
rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true chmod +x .github/workflows/scripts/app-test/pr-install.func
rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true chmod +x .github/workflows/scripts/app-test/pr-alpine-install.func
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func chmod +x .github/workflows/scripts/app-test/pr-build.func
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|source .github/workflows/scripts/app-test/pr-build.func|g' "$RUNNING_FILE"
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func echo "Executing $RUNNING_FILE"
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-create-lxc.sh export TERM=xterm-256color
chmod +x $RUNNING_FILE ./$RUNNING_FILE
chmod +x .github/workflows/scripts/app-test/pr-create-lxc.sh ERROR_MSG=$(./$RUNNING_FILE 2>&1 > /dev/null)
chmod +x .github/workflows/scripts/app-test/pr-install.func echo "Finished running $FILE"
chmod +x .github/workflows/scripts/app-test/pr-alpine-install.func if [ -n "$ERROR_MSG" ]; then
chmod +x .github/workflows/scripts/app-test/pr-build.func echo "ERROR in $STRIPPED_NAME: $ERROR_MSG"
sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|source .github/workflows/scripts/app-test/pr-build.func|g' "$RUNNING_FILE" echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
echo "Executing $RUNNING_FILE" fi
export TERM=xterm-256color done
./$RUNNING_FILE set -e # Restore exit-on-error
ERROR_MSG=$(./$RUNNING_FILE 2>&1 > /dev/null)
echo "Finished running $FILE"
if [ -n "$ERROR_MSG" ]; then
echo "ERROR in $STRIPPED_NAME: $ERROR_MSG"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
fi
done
set -e # Restore exit-on-error
- name: Cleanup PVE Node - name: Cleanup PVE Node
run: | run: |
@ -175,3 +175,5 @@ jobs:
done done
echo "ERROR=$ERROR" >> $GITHUB_ENV echo "ERROR=$ERROR" >> $GITHUB_ENV

View File

@ -31,38 +31,11 @@ function update_script() {
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"
$STD apk -U upgrade $STD apk -U upgrade
$STD service bitmagnet stop $STD service bitmagnet stop
$STD su - postgres -c "pg_dump \
--column-inserts \
--data-only \
--on-conflict-do-nothing \
--rows-per-insert=1000 \
--table=metadata_sources \
--table=content \
--table=content_attributes \
--table=content_collections \
--table=content_collections_content \
--table=torrent_sources \
--table=torrents \
--table=torrent_files \
--table=torrent_hints \
--table=torrent_contents \
--table=torrent_tags \
--table=torrents_torrent_sources \
--table=key_values \
bitmagnet \
>/tmp/backup.sql"
mv /tmp/backup.sql /opt/
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
rm -rf /opt/bitmagnet/*
temp_file=$(mktemp) temp_file=$(mktemp)
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
cd /opt/bitmagnet cd /opt/bitmagnet
$STD go build $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$(git describe --tags --always --dirty)"
chmod +x bitmagnet
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
rm -f "$temp_file" rm -f "$temp_file"
echo "${RELEASE}" >/opt/bitmagnet_version.txt echo "${RELEASE}" >/opt/bitmagnet_version.txt
$STD service bitmagnet start $STD service bitmagnet start
@ -81,4 +54,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following IP:${CL}" echo -e "${INFO}${YW} Access it using the following IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@ -72,6 +72,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f "$temp_file" rm -f $temp_file
$STD apk cache clean $STD apk cache clean
msg_ok "Cleaned" msg_ok "Cleaned"