diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 8b13789..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100755 index 0000000..f457baf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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-ombi + about: Documentation - information about all of our containers. diff --git a/.github/ISSUE_TEMPLATE/issue.bug.md b/.github/ISSUE_TEMPLATE/issue.bug.md new file mode 100755 index 0000000..cd31b0e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue.bug.md @@ -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] + + + + + +------------------------------ + +## Expected Behavior + + +## Current Behavior + + +## Steps to Reproduce + + +1. +2. +3. +4. + +## Environment +**OS:** +**CPU architecture:** x86_64/arm32/arm64 +**How docker service was installed:** + + + +## Command used to create docker container (run/create/compose/screenshot) + + +## Docker logs + diff --git a/.github/ISSUE_TEMPLATE/issue.feature.md b/.github/ISSUE_TEMPLATE/issue.feature.md new file mode 100755 index 0000000..20a91fd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue.feature.md @@ -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] + + + + + + + + +------------------------------ + +## Desired Behavior + + +## Current Behavior + + +## Alternatives Considered + diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 01cf158..3df2003 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -13,22 +13,23 @@ jobs: if: github.ref == 'refs/heads/v4-preview' run: | if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_OMBI_V4_PREVIEW }}" ]; then - echo "Github secret PAUSE_EXTERNAL_TRIGGER_OMBI_V4_PREVIEW is set; skipping trigger." + echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_OMBI_V4_PREVIEW is set; skipping trigger. ****" exit 0 fi - echo "External trigger running off of v4-preview branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_OMBI_V4_PREVIEW\"." - echo "Retrieving external version" + echo "**** External trigger running off of v4-preview branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_OMBI_V4_PREVIEW\". ****" + echo "**** Retrieving external version ****" EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/tidusjar/Ombi.Releases/releases" | jq -r '.[0] | .tag_name') - if [ -z "${EXT_RELEASE}" ]; then - echo "Can't retrieve external version, exiting" + if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then + echo "**** Can't retrieve external version, exiting ****" FAILURE_REASON="Can't retrieve external version for ombi branch v4-preview" 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 "External version: ${EXT_RELEASE}" - echo "Retrieving last pushed version" + EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') + echo "**** External version: ${EXT_RELEASE} ****" + echo "**** Retrieving last pushed version ****" image="linuxserver/ombi" tag="v4-preview" token=$(curl -sX GET \ @@ -51,25 +52,40 @@ jobs: 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" + echo "**** Can't retrieve last pushed version, exiting ****" FAILURE_REASON="Can't retrieve last pushed version for ombi tag v4-preview" 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}" + echo "**** Last pushed version: ${IMAGE_VERSION} ****" if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then - echo "Version ${EXT_RELEASE} already pushed, exiting" + echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" + exit 0 + elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-ombi/job/v4-preview/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" - curl -X POST \ + 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-ombi/job/v4-preview/buildWithParameters?PACKAGE_CHECK=false \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} - echo "Notifying Discord" + --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 ombi tag v4-preview. 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"}], + "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} fi diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml index 2a252d9..2215ab8 100644 --- a/.github/workflows/external_trigger_scheduler.yml +++ b/.github/workflows/external_trigger_scheduler.yml @@ -12,30 +12,32 @@ jobs: - 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}" + echo "**** Evaluating branch ${br} ****" ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-ombi/${br}/jenkins-vars.yml \ | docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) if [ "$br" == "$ls_branch" ]; then - echo "${br} is a live branch, checking workflow." + echo "**** Branch ${br} appears to be live; checking workflow. ****" if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-ombi/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then - echo "Workflow exists. Triggering external trigger workflow for branch ${br}." + 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-ombi/actions/workflows/external_trigger.yml/dispatches else - echo "Workflow doesn't exist; skipping trigger." + echo "**** Workflow doesn't exist; skipping trigger. ****" fi else - echo "${br} appears to be a dev branch; skipping trigger." + echo "**** ${br} appears to be a dev branch; skipping trigger. ****" fi done diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml index 6359cda..7dea63c 100644 --- a/.github/workflows/package_trigger.yml +++ b/.github/workflows/package_trigger.yml @@ -13,10 +13,26 @@ jobs: if: github.ref == 'refs/heads/v4-preview' run: | if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_OMBI_V4_PREVIEW }}" ]; then - echo "Github secret PAUSE_PACKAGE_TRIGGER_OMBI_V4_PREVIEW is set; skipping trigger." + echo "**** Github secret PAUSE_PACKAGE_TRIGGER_OMBI_V4_PREVIEW is set; skipping trigger. ****" exit 0 fi - echo "Package trigger running off of v4-preview branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_OMBI_V4_PREVIEW\"." - curl -X POST \ + if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-ombi/job/v4-preview/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 v4-preview branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_OMBI_V4_PREVIEW\". ****" + response=$(curl -iX POST \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-ombi/job/v4-preview/buildWithParameters?PACKAGE_CHECK=true \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ No newline at end of file + --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" diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml index bfc6eda..d39555c 100644 --- a/.github/workflows/package_trigger_scheduler.yml +++ b/.github/workflows/package_trigger_scheduler.yml @@ -12,21 +12,24 @@ jobs: - 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}" + echo "**** Evaluating branch ${br} ****" ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-ombi/${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; triggering." + echo "**** Branch ${br} appears to be live; checking workflow. ****" if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-ombi/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then - echo "Workflow exists. Triggering package trigger workflow for branch ${br}." + 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" \ @@ -34,9 +37,14 @@ jobs: https://api.github.com/repos/linuxserver/docker-ombi/actions/workflows/package_trigger.yml/dispatches sleep 30 else - echo "Workflow doesn't exist; skipping trigger." + echo "**** Workflow doesn't exist; skipping trigger. ****" fi else - echo "${br} appears to be a dev branch; skipping trigger." + 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 ombi** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-ombi/activity/"' \n"}], + "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}