This repository has been archived by the owner on Oct 10, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 4
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
Showing
4 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
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,16 @@ | ||
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: | | ||
echo "**** No external release, exiting ****" | ||
exit 0 |
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: '35 * * * *' | ||
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-baseimage-cloud9/${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-baseimage-cloud9/${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-baseimage-cloud9/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_BASEIMAGE_CLOUD9_MASTER }}" ]; then | ||
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_CLOUD9_MASTER is set; skipping trigger. ****" | ||
exit 0 | ||
fi | ||
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-cloud9/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_BASEIMAGE_CLOUD9_MASTER\". ****" | ||
response=$(curl -iX POST \ | ||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-cloud9/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: '11 14 * * 0' | ||
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-baseimage-cloud9/${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-baseimage-cloud9/${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-baseimage-cloud9/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 baseimage-cloud9** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-cloud9/activity/"' \n"}], | ||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} |