Skip to content

Update S6 Overlay #1143

Update S6 Overlay

Update S6 Overlay #1143

name: Update S6 Overlay
on:
schedule:
- cron: '0 15 * * 1-5'
workflow_dispatch:
permissions:
contents: read
concurrency: update-s6-overlay
jobs:
update-s6-overlay:
name: Update S6 Overlay
runs-on: ${{vars.RUNS_ON}}
timeout-minutes: 5
strategy:
matrix:
branch:
- main
- release/jammy
- release/focal
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
with:
ref: ${{matrix.branch}}
- name: Generate app token
id: app-token
uses: actions/create-github-app-token@v1.11.3
with:
app-id: ${{secrets.GH_APP_ID}}
private-key: ${{secrets.GH_APP_PRIVATE_KEY}}
- name: Determine info
shell: bash
id: info
run: |
REGEX="^(ARG S6_OVERLAY_VERSION=)([0-9]+\.){3}[0-9]+(\-[0-9]+)?$"
OLD_VERSION=$(
grep -oEi "$REGEX" Dockerfile |
grep -oEi '([0-9]+\.){3}[0-9]+(\-[0-9]+)?$'
)
API=https://api.github.com/repos/just-containers/s6-overlay/releases
RELEASES=https://github.com/just-containers/s6-overlay/releases
NEW_VERSION=$(curl -sSf "$API/latest" | jq -r .tag_name)
NEW_VERSION=${NEW_VERSION#'v'}
UPDATE_TITLE="Bump s6 overlay from $OLD_VERSION to $NEW_VERSION"
UPDATE_BODY="Bump s6 overlay from"
UPDATE_BODY="$UPDATE_BODY [$OLD_VERSION]($RELEASES/v$OLD_VERSION)"
UPDATE_BODY="$UPDATE_BODY to [$NEW_VERSION]($RELEASES/v$NEW_VERSION)."
USER_NAME="$GH_APP_SLUG[bot]"
USER_ID=$(gh api "/users/$USER_NAME" --jq .id)
USER_EMAIL="$USER_ID+$USER_NAME@users.noreply.github.com"
echo "replace-regex=$REGEX" >> $GITHUB_OUTPUT
echo "s6-overlay-version=$NEW_VERSION" >> $GITHUB_OUTPUT
echo "update-title=$UPDATE_TITLE" >> $GITHUB_OUTPUT
echo "update-body=$UPDATE_BODY" >> $GITHUB_OUTPUT
echo "commit-author=$USER_NAME <$USER_EMAIL>" >> $GITHUB_OUTPUT
env:
GH_APP_SLUG: ${{steps.app-token.outputs.app-slug}}
GH_TOKEN: ${{steps.app-token.outputs.token}}
- name: Update Dockerfile
run: sed -i -E "s/$REPLACE_REGEX/\1$S6_OVERLAY_VERSION/" Dockerfile
env:
S6_OVERLAY_VERSION: ${{steps.info.outputs.s6-overlay-version}}
REPLACE_REGEX: ${{steps.info.outputs.replace-regex}}
- name: Handle changes
uses: peter-evans/create-pull-request@v7.0.6
id: changes
with:
token: ${{steps.app-token.outputs.token}}
commit-message: ${{steps.info.outputs.update-title}}
author: ${{steps.info.outputs.commit-author}}
committer: ${{steps.info.outputs.commit-author}}
add-paths: Dockerfile
base: ${{matrix.branch}}
branch: auto/${{matrix.branch}}/update-s6-overlay
delete-branch: true
title: ${{steps.info.outputs.update-title}}
body: ${{steps.info.outputs.update-body}}
labels: |
dependencies
auto
- name: Enable auto-merge
if: steps.changes.outputs.pull-request-operation == 'created'
run: gh pr merge --auto --squash "$PULL_REQUEST_URL"
env:
PULL_REQUEST_URL: ${{steps.changes.outputs.pull-request-url}}
GITHUB_TOKEN: ${{steps.app-token.outputs.token}}