From a7d041669a926a60d8e6482d1b251d567554c979 Mon Sep 17 00:00:00 2001 From: aptalca Date: Sun, 15 Nov 2020 20:19:15 -0500 Subject: [PATCH] update baseimages, add trigger workflows --- .github/workflows/external_trigger.yml | 40 ++++++++++++++++++ .../workflows/external_trigger_scheduler.yml | 41 ++++++++++++++++++ .github/workflows/package_trigger.yml | 22 ++++++++++ .../workflows/package_trigger_scheduler.yml | 42 +++++++++++++++++++ Dockerfile | 2 +- Dockerfile.aarch64 | 2 +- Dockerfile.armhf | 2 +- 7 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/external_trigger.yml create mode 100644 .github/workflows/external_trigger_scheduler.yml create mode 100644 .github/workflows/package_trigger.yml create mode 100644 .github/workflows/package_trigger_scheduler.yml diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml new file mode 100644 index 00000000..a7ad8ac1 --- /dev/null +++ b/.github/workflows/external_trigger.yml @@ -0,0 +1,40 @@ +name: External Trigger Main + +on: + workflow_dispatch: + +jobs: + external-trigger-3.9: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.3 + + - name: External Trigger + if: github.ref == 'refs/heads/3.9' + run: | + if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9 }}" ]; then + echo "Github secret PAUSE_EXTERNAL_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9 is set; skipping trigger." + exit 0 + fi + echo "External trigger running off of 3.9 branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9\"." + echo "Setting env vars" + BUILD_VERSION_ARG='OS' + LS_USER='linuxserver' + LS_REPO='docker-baseimage-alpine-nginx' + CONTAINER_NAME='baseimage-alpine-nginx' + DOCKERHUB_IMAGE='lsiobase/nginx' + DEV_DOCKERHUB_IMAGE='lsiodev/baseimage-nginx' + PR_DOCKERHUB_IMAGE='lspipepr/baseimage-nginx' + DIST_IMAGE='alpine' + MULTIARCH='true' + CI='true' + CI_WEB='true' + CI_PORT='80' + CI_SSL='true' + CI_DELAY='120' + CI_DOCKERENV='TZ=US/Pacific' + CI_AUTH='user:password' + CI_WEBPATH='' + echo "Retrieving external version" + echo "No external release, exiting." + exit 0 diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml new file mode 100644 index 00000000..6e2bc743 --- /dev/null +++ b/.github/workflows/external_trigger_scheduler.yml @@ -0,0 +1,41 @@ +name: External Trigger Scheduler + +on: + schedule: + - cron: '20 * * * *' + 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: | + git for-each-ref --format='%(refname:short)' refs/remotes + 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-alpine-nginx/${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." + if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine-nginx/${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-alpine-nginx/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 diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml new file mode 100644 index 00000000..b48eb3b9 --- /dev/null +++ b/.github/workflows/package_trigger.yml @@ -0,0 +1,22 @@ +name: Package Trigger Main + +on: + workflow_dispatch: + +jobs: + package-trigger-3.9: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.3 + + - name: Package Trigger + if: github.ref == 'refs/heads/3.9' + run: | + if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9 }}" ]; then + echo "Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9 is set; skipping trigger." + exit 0 + fi + echo "Package trigger running off of 3.9 branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ALPINE_NGINX_3.9\"." + curl -X POST \ + https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-alpine-nginx/job/3.9/buildWithParameters?PACKAGE_CHECK=true \ + --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml new file mode 100644 index 00000000..421a2614 --- /dev/null +++ b/.github/workflows/package_trigger_scheduler.yml @@ -0,0 +1,42 @@ +name: Package Trigger Scheduler + +on: + schedule: + - cron: '01 6 * * 6' + 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: | + git for-each-ref --format='%(refname:short)' refs/remotes + 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-alpine-nginx/${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." + if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine-nginx/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then + echo "Workflow exists. Triggering package 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-alpine-nginx/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 diff --git a/Dockerfile b/Dockerfile index 1b0f93b6..a3bcafb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM lsiobase/alpine:3.9 +FROM ghcr.io/linuxserver/baseimage-alpine:3.9 # install packages RUN \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 78613eaf..ca83bb2d 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM lsiobase/alpine:arm64v8-3.9 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.9 # install packages RUN \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 9a5a9fba..f9c79267 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM lsiobase/alpine:arm32v7-3.9 +FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.9 # install packages RUN \