This repository has been archived by the owner on Feb 24, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 94
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
44b394a
commit 1395897
Showing
8 changed files
with
300 additions
and
1 deletion.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
blank_issues_enabled: false | ||
contact_links: | ||
- name: Discord chat support | ||
url: https://discord.gg/YWrKVTn | ||
about: Realtime support / chat with the community and the team. | ||
|
||
- name: Discourse discussion forum | ||
url: https://discourse.linuxserver.io | ||
about: Post on our community forum. | ||
|
||
- name: Documentation | ||
url: https://docs.linuxserver.io/images/docker-rutorrent | ||
about: Documentation - information about all of our containers. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
|
||
--- | ||
[linuxserverurl]: https://linuxserver.io | ||
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl] | ||
|
||
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. ---> | ||
|
||
<!--- Provide a general summary of the bug in the Title above --> | ||
|
||
------------------------------ | ||
|
||
## Expected Behavior | ||
<!--- Tell us what should happen --> | ||
|
||
## Current Behavior | ||
<!--- Tell us what happens instead of the expected behavior --> | ||
|
||
## Steps to Reproduce | ||
<!--- Provide a link to a live example, or an unambiguous set of steps to --> | ||
<!--- reproduce this bug. Include code to reproduce, if relevant --> | ||
1. | ||
2. | ||
3. | ||
4. | ||
|
||
## Environment | ||
**OS:** | ||
**CPU architecture:** x86_64/arm32/arm64 | ||
**How docker service was installed:** | ||
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. --> | ||
<!--- Providing context helps us come up with a solution that is most useful in the real world --> | ||
|
||
## Command used to create docker container (run/create/compose/screenshot) | ||
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container --> | ||
|
||
## Docker logs | ||
<!--- Provide a full docker log, output of "docker logs rutorrent" --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
|
||
--- | ||
[linuxserverurl]: https://linuxserver.io | ||
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl] | ||
|
||
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. ---> | ||
|
||
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from ---> | ||
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ --> | ||
|
||
<!--- Provide a general summary of the request in the Title above --> | ||
|
||
------------------------------ | ||
|
||
## Desired Behavior | ||
<!--- Tell us what should happen --> | ||
|
||
## Current Behavior | ||
<!--- Tell us what happens instead of the expected behavior --> | ||
|
||
## Alternatives Considered | ||
<!--- Tell us what other options you have tried or considered --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
name: External Trigger Main | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
external-trigger-master: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2.3.3 | ||
|
||
- name: External Trigger | ||
if: github.ref == 'refs/heads/master' | ||
run: | | ||
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_RUTORRENT_MASTER }}" ]; then | ||
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_RUTORRENT_MASTER is set; skipping trigger. ****" | ||
exit 0 | ||
fi | ||
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_RUTORRENT_MASTER\". ****" | ||
echo "**** Retrieving external version ****" | ||
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/Novik/rutorrent/releases/latest" | jq -r '. | .tag_name') | ||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then | ||
echo "**** Can't retrieve external version, exiting ****" | ||
FAILURE_REASON="Can't retrieve external version for rutorrent branch master" | ||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, | ||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], | ||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} | ||
exit 1 | ||
fi | ||
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') | ||
echo "**** External version: ${EXT_RELEASE} ****" | ||
echo "**** Retrieving last pushed version ****" | ||
image="linuxserver/rutorrent" | ||
tag="latest" | ||
token=$(curl -sX GET \ | ||
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Frutorrent%3Apull" \ | ||
| jq -r '.token') | ||
multidigest=$(curl -s \ | ||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ | ||
--header "Authorization: Bearer ${token}" \ | ||
"https://ghcr.io/v2/${image}/manifests/${tag}" \ | ||
| jq -r 'first(.manifests[].digest)') | ||
digest=$(curl -s \ | ||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ | ||
--header "Authorization: Bearer ${token}" \ | ||
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \ | ||
| jq -r '.config.digest') | ||
image_info=$(curl -sL \ | ||
--header "Authorization: Bearer ${token}" \ | ||
"https://ghcr.io/v2/${image}/blobs/${digest}" \ | ||
| jq -r '.container_config') | ||
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') | ||
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') | ||
if [ -z "${IMAGE_VERSION}" ]; then | ||
echo "**** Can't retrieve last pushed version, exiting ****" | ||
FAILURE_REASON="Can't retrieve last pushed version for rutorrent tag latest" | ||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, | ||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], | ||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} | ||
exit 1 | ||
fi | ||
echo "**** Last pushed version: ${IMAGE_VERSION} ****" | ||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then | ||
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" | ||
exit 0 | ||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rutorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then | ||
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" | ||
exit 0 | ||
else | ||
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" | ||
response=$(curl -iX POST \ | ||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rutorrent/job/master/buildWithParameters?PACKAGE_CHECK=false \ | ||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") | ||
echo "**** Jenkins job queue url: ${response%$'\r'} ****" | ||
echo "**** Sleeping 10 seconds until job starts ****" | ||
sleep 10 | ||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') | ||
buildurl="${buildurl%$'\r'}" | ||
echo "**** Jenkins job build url: ${buildurl} ****" | ||
echo "**** Attempting to change the Jenkins job description ****" | ||
curl -iX POST \ | ||
"${buildurl}submitDescription" \ | ||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ | ||
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ | ||
--data-urlencode "Submit=Submit" | ||
echo "**** Notifying Discord ****" | ||
TRIGGER_REASON="A version change was detected for rutorrent tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" | ||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, | ||
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], | ||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: External Trigger Scheduler | ||
|
||
on: | ||
schedule: | ||
- cron: '43 * * * *' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
external-trigger-scheduler: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2.3.3 | ||
with: | ||
fetch-depth: '0' | ||
|
||
- name: External Trigger Scheduler | ||
run: | | ||
echo "**** Branches found: ****" | ||
git for-each-ref --format='%(refname:short)' refs/remotes | ||
echo "**** Pulling the yq docker image ****" | ||
docker pull ghcr.io/linuxserver/yq | ||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) | ||
do | ||
br=$(echo "$br" | sed 's|origin/||g') | ||
echo "**** Evaluating branch ${br} ****" | ||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-rutorrent/${br}/jenkins-vars.yml \ | ||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) | ||
if [ "$br" == "$ls_branch" ]; then | ||
echo "**** Branch ${br} appears to be live; checking workflow. ****" | ||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-rutorrent/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then | ||
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." | ||
curl -iX POST \ | ||
-H "Authorization: token ${{ secrets.CR_PAT }}" \ | ||
-H "Accept: application/vnd.github.v3+json" \ | ||
-d "{\"ref\":\"refs/heads/${br}\"}" \ | ||
https://api.github.com/repos/linuxserver/docker-rutorrent/actions/workflows/external_trigger.yml/dispatches | ||
else | ||
echo "**** Workflow doesn't exist; skipping trigger. ****" | ||
fi | ||
else | ||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****" | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Package Trigger Main | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
package-trigger-master: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2.3.3 | ||
|
||
- name: Package Trigger | ||
if: github.ref == 'refs/heads/master' | ||
run: | | ||
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RUTORRENT_MASTER }}" ]; then | ||
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RUTORRENT_MASTER is set; skipping trigger. ****" | ||
exit 0 | ||
fi | ||
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rutorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then | ||
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****" | ||
exit 0 | ||
fi | ||
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RUTORRENT_MASTER\". ****" | ||
response=$(curl -iX POST \ | ||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rutorrent/job/master/buildWithParameters?PACKAGE_CHECK=true \ | ||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") | ||
echo "**** Jenkins job queue url: ${response%$'\r'} ****" | ||
echo "**** Sleeping 10 seconds until job starts ****" | ||
sleep 10 | ||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') | ||
buildurl="${buildurl%$'\r'}" | ||
echo "**** Jenkins job build url: ${buildurl} ****" | ||
echo "**** Attempting to change the Jenkins job description ****" | ||
curl -iX POST \ | ||
"${buildurl}submitDescription" \ | ||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ | ||
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ | ||
--data-urlencode "Submit=Submit" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: Package Trigger Scheduler | ||
|
||
on: | ||
schedule: | ||
- cron: '55 9 * * 4' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
package-trigger-scheduler: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2.3.3 | ||
with: | ||
fetch-depth: '0' | ||
|
||
- name: Package Trigger Scheduler | ||
run: | | ||
echo "**** Branches found: ****" | ||
git for-each-ref --format='%(refname:short)' refs/remotes | ||
echo "**** Pulling the yq docker image ****" | ||
docker pull ghcr.io/linuxserver/yq | ||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) | ||
do | ||
br=$(echo "$br" | sed 's|origin/||g') | ||
echo "**** Evaluating branch ${br} ****" | ||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-rutorrent/${br}/jenkins-vars.yml \ | ||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) | ||
if [ "${br}" == "${ls_branch}" ]; then | ||
echo "**** Branch ${br} appears to be live; checking workflow. ****" | ||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-rutorrent/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then | ||
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" | ||
triggered_branches="${triggered_branches}${br} " | ||
curl -iX POST \ | ||
-H "Authorization: token ${{ secrets.CR_PAT }}" \ | ||
-H "Accept: application/vnd.github.v3+json" \ | ||
-d "{\"ref\":\"refs/heads/${br}\"}" \ | ||
https://api.github.com/repos/linuxserver/docker-rutorrent/actions/workflows/package_trigger.yml/dispatches | ||
sleep 30 | ||
else | ||
echo "**** Workflow doesn't exist; skipping trigger. ****" | ||
fi | ||
else | ||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****" | ||
fi | ||
done | ||
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" | ||
echo "**** Notifying Discord ****" | ||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, | ||
"description": "**Package Check Build(s) Triggered for rutorrent** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-rutorrent/activity/"' \n"}], | ||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} |