mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-03 19:42:15 +02:00
Merge pull request #494 from flatcar-linux/kai/migrate-github-actions
Migrate GitHub actions
This commit is contained in:
commit
158f72af0f
57
sdk_container/src/third_party/coreos-overlay/.github/workflows/common.sh
vendored
Normal file
57
sdk_container/src/third_party/coreos-overlay/.github/workflows/common.sh
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
readonly SDK_OUTER_TOPDIR="${HOME}/flatcar-sdk"
|
||||||
|
readonly SDK_OUTER_SRCDIR="${SDK_OUTER_TOPDIR}/src"
|
||||||
|
readonly SDK_INNER_SRCDIR="/mnt/host/source/src"
|
||||||
|
|
||||||
|
readonly BUILDBOT_USERNAME="Flatcar Buildbot"
|
||||||
|
readonly BUILDBOT_USEREMAIL="buildbot@flatcar-linux.org"
|
||||||
|
|
||||||
|
function enter() ( cd ../../..; exec cork enter -- $@ )
|
||||||
|
|
||||||
|
# caller needs to set pass a parameter as a branch name to be created.
|
||||||
|
function checkout_branches() {
|
||||||
|
TARGET_BRANCH=$1
|
||||||
|
|
||||||
|
[[ -z "${TARGET_BRANCH}" ]] && echo "No target branch specified. exit." && return 1
|
||||||
|
|
||||||
|
git -C "${SDK_OUTER_SRCDIR}/scripts" checkout -B "${BASE_BRANCH}" "github/${BASE_BRANCH}"
|
||||||
|
git -C "${SDK_OUTER_SRCDIR}/third_party/portage-stable" checkout -B "${BASE_BRANCH}" "github/${BASE_BRANCH}"
|
||||||
|
|
||||||
|
if git -C "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" show-ref "remotes/github/${TARGET_BRANCH}"; then
|
||||||
|
echo "Target branch already exists. exit.";
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git -C "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" checkout -B "${TARGET_BRANCH}" "github/${BASE_BRANCH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate_patches() {
|
||||||
|
CATEGORY_NAME=$1
|
||||||
|
PKGNAME_SIMPLE=$2
|
||||||
|
PKGNAME_DESC=$3
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
enter ebuild "${SDK_INNER_SRCDIR}/third_party/coreos-overlay/${CATEGORY_NAME}/${PKGNAME_SIMPLE}/${PKGNAME_SIMPLE}-${VERSION_NEW}.ebuild" manifest --force
|
||||||
|
|
||||||
|
# We can only create the actual commit in the actual source directory, not under the SDK.
|
||||||
|
# So create a format-patch, and apply to the actual source.
|
||||||
|
git add ${CATEGORY_NAME}/${PKGNAME_SIMPLE}
|
||||||
|
git commit -a -m "${CATEGORY_NAME}: Upgrade ${PKGNAME_DESC} ${VERSION_OLD} to ${VERSION_NEW}"
|
||||||
|
|
||||||
|
# Create a patch for the main ebuilds.
|
||||||
|
git format-patch -1 HEAD
|
||||||
|
popd || exit
|
||||||
|
}
|
||||||
|
|
||||||
|
function apply_patches() {
|
||||||
|
git config user.name "${BUILDBOT_USERNAME}"
|
||||||
|
git config user.email "${BUILDBOT_USEREMAIL}"
|
||||||
|
git reset --hard HEAD
|
||||||
|
git fetch origin
|
||||||
|
git checkout -B "${BASE_BRANCH}" "origin/${BASE_BRANCH}"
|
||||||
|
git am "${SDK_OUTER_SRCDIR}"/third_party/coreos-overlay/0*.patch
|
||||||
|
}
|
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/containerd-apply-patch.sh
vendored
Executable file
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/containerd-apply-patch.sh
vendored
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "containerd-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST containerd-\([0-9]*.[0-9]*.[0-9]*\).*/\1/p" app-emulation/containerd/Manifest | sort -ruV | head -n1)
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Containerd, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
DOCKER_VERSION=$(sed -n "s/^DIST docker-\([0-9]*.[0-9]*.[0-9]*\).*/\1/p" app-emulation/docker/Manifest | sort -ruV | head -n1)
|
||||||
|
|
||||||
|
# we need to update not only the main ebuild file, but also its CONTAINERD_COMMIT,
|
||||||
|
# which needs to point to COMMIT_HASH that matches with $VERSION_NEW from upstream containerd.
|
||||||
|
containerdEbuildOldSymlink=$(ls -1 app-emulation/containerd/containerd-${VERSION_OLD}*.ebuild | sort -ruV | head -n1)
|
||||||
|
containerdEbuildNewSymlink="app-emulation/containerd/containerd-${VERSION_NEW}.ebuild"
|
||||||
|
containerdEbuildMain="app-emulation/containerd/containerd-9999.ebuild"
|
||||||
|
git mv ${containerdEbuildOldSymlink} ${containerdEbuildNewSymlink}
|
||||||
|
sed -i "s/CONTAINERD_COMMIT=\"\(.*\)\"/CONTAINERD_COMMIT=\"${COMMIT_HASH}\"/g" ${containerdEbuildMain}
|
||||||
|
sed -i "s/v${VERSION_OLD}/v${VERSION_NEW}/g" ${containerdEbuildMain}
|
||||||
|
|
||||||
|
# torcx ebuild file has a docker version with only major and minor versions, like 19.03.
|
||||||
|
versionTorcx=${DOCKER_VERSION%.*}
|
||||||
|
torcxEbuildFile=$(ls -1 app-torcx/docker/docker-${versionTorcx}*.ebuild | sort -ruV | head -n1)
|
||||||
|
sed -i "s/containerd-${VERSION_OLD}/containerd-${VERSION_NEW}/g" ${torcxEbuildFile}
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches app-emulation containerd Containerd
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
47
sdk_container/src/third_party/coreos-overlay/.github/workflows/containerd-releases-main.yml
vendored
Normal file
47
sdk_container/src/third_party/coreos-overlay/.github/workflows/containerd-releases-main.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: Get the latest Containerd release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '00 8 * * 5'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-containerd-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Containerd release
|
||||||
|
id: fetch-latest-release
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/containerd/containerd
|
||||||
|
versionMain=$(git -C containerd ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v[0-9]*.[0-9]*.[0-9]*$/s/^refs\/tags\/v//p" | egrep -v -e '(beta|rc)' | sort -ruV | head -n1)
|
||||||
|
commitMain=$(git -C containerd rev-parse v${versionMain})
|
||||||
|
rm -rf containerd
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=COMMIT_MAIN::$(echo ${commitMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: main
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
COMMIT_HASH: ${{ steps.fetch-latest-release.outputs.COMMIT_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
run: .github/workflows/containerd-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: containerd-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Containerd in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Containerd in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Containerd in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
49
sdk_container/src/third_party/coreos-overlay/.github/workflows/docker-apply-patch.sh
vendored
Executable file
49
sdk_container/src/third_party/coreos-overlay/.github/workflows/docker-apply-patch.sh
vendored
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "docker-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST docker-\([0-9]*.[0-9]*.[0-9]*\).*/\1/p" app-emulation/docker/Manifest | sort -ruV | head -n1)
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Docker, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we need to update not only the main ebuild file, but also its DOCKER_GITCOMMIT,
|
||||||
|
# which needs to point to COMMIT_HASH that matches with $VERSION_NEW from upstream docker-ce.
|
||||||
|
dockerEbuildOldSymlink=$(ls -1 app-emulation/docker/docker-${VERSION_OLD}*.ebuild | sort -ruV | head -n1)
|
||||||
|
dockerEbuildNewSymlink="app-emulation/docker/docker-${VERSION_NEW}.ebuild"
|
||||||
|
dockerEbuildMain="app-emulation/docker/docker-9999.ebuild"
|
||||||
|
git mv ${dockerEbuildOldSymlink} ${dockerEbuildNewSymlink}
|
||||||
|
sed -i "s/DOCKER_GITCOMMIT=\"\(.*\)\"/DOCKER_GITCOMMIT=\"${COMMIT_HASH}\"/g" ${dockerEbuildMain}
|
||||||
|
sed -i "s/v${VERSION_OLD}/v${VERSION_NEW}/g" ${dockerEbuildMain}
|
||||||
|
|
||||||
|
# torcx ebuild file has a docker version with only major and minor versions, like 19.03.
|
||||||
|
versionTorcx=${VERSION_OLD%.*}
|
||||||
|
torcxEbuildFile=$(ls -1 app-torcx/docker/docker-${versionTorcx}*.ebuild | sort -ruV | head -n1)
|
||||||
|
sed -i "s/docker-${VERSION_OLD}/docker-${VERSION_NEW}/g" ${torcxEbuildFile}
|
||||||
|
|
||||||
|
# update also docker versions used by the current docker-runc ebuild file.
|
||||||
|
versionRunc=$(sed -n "s/^DIST docker-runc-\([0-9]*.[0-9]*.*\)\.tar.*/\1/p" app-emulation/docker-runc/Manifest | sort -ruV | head -n1)
|
||||||
|
runcEbuildFile=$(ls -1 app-emulation/docker-runc/docker-runc-${versionRunc}*.ebuild | sort -ruV | head -n1)
|
||||||
|
sed -i "s/github.com\/docker\/docker-ce\/blob\/v${VERSION_OLD}/github.com\/docker\/docker-ce\/blob\/v${VERSION_NEW}/g" ${runcEbuildFile}
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches app-emulation docker Docker
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
47
sdk_container/src/third_party/coreos-overlay/.github/workflows/docker-releases-main.yml
vendored
Normal file
47
sdk_container/src/third_party/coreos-overlay/.github/workflows/docker-releases-main.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: Get the latest Docker release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '35 7 * * 3'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-docker-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Docker release
|
||||||
|
id: fetch-latest-release
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/docker/docker-ce docker
|
||||||
|
versionMain=$(git -C docker ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v[0-9]*.[0-9]*.[0-9]*$/s/^refs\/tags\/v//p" | egrep -v -e '(beta|rc)' | sort -ruV | head -n1)
|
||||||
|
commitMain=$(git -C docker rev-parse --short=7 v${versionMain})
|
||||||
|
rm -rf docker
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=COMMIT_MAIN::$(echo ${commitMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: main
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
COMMIT_HASH: ${{ steps.fetch-latest-release.outputs.COMMIT_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
run: .github/workflows/docker-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: docker-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Docker in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Docker in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Docker in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
34
sdk_container/src/third_party/coreos-overlay/.github/workflows/go-apply-patch.sh
vendored
Executable file
34
sdk_container/src/third_party/coreos-overlay/.github/workflows/go-apply-patch.sh
vendored
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# trim the 3rd part in the input semver, e.g. from 1.14.3 to 1.14
|
||||||
|
VERSION_SHORT=${VERSION_NEW%.*}
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "go-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST go\(${VERSION_SHORT}.[0-9]*\).*/\1/p" dev-lang/go/Manifest | sort -ruV | head -n1)
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Go, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
git mv $(ls -1 dev-lang/go/go-${VERSION_OLD}*.ebuild | sort -ruV | head -n1) "dev-lang/go/go-${VERSION_NEW}.ebuild"
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches dev-lang go Go
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/go-releases-main.yml
vendored
Normal file
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/go-releases-main.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
name: Get the latest Go release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '15 7 * * 1'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-go-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Go release
|
||||||
|
id: fetch-latest-release
|
||||||
|
env:
|
||||||
|
GO_VERSION: 1.13
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --no-checkout https://github.com/golang/go
|
||||||
|
versionMain=$(git -C go ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/go${GO_VERSION}.[0-9]*$/s/^refs\/tags\/go//p" | egrep -v -e '(beta|rc)' | sort -ruV | head -1)
|
||||||
|
rm -rf go
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: main
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
run: .github/workflows/go-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: go-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Go in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Go in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Go in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
42
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-apply-patch.sh
vendored
Executable file
42
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-apply-patch.sh
vendored
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# trim the 3rd part in the input semver, e.g. from 5.4.1 to 5.4
|
||||||
|
VERSION_SHORT=${VERSION_NEW%.*}
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "linux-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST patch-\(${VERSION_SHORT}.[0-9]*\).*/\1/p" sys-kernel/coreos-sources/Manifest)
|
||||||
|
if [[ -z "${VERSION_OLD}" ]]; then
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST linux-\(${VERSION_SHORT}*\).*/\1/p" sys-kernel/coreos-sources/Manifest)
|
||||||
|
fi
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Kernel, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for pkg in sources modules kernel; do \
|
||||||
|
pushd "sys-kernel/coreos-${pkg}" >/dev/null || exit; \
|
||||||
|
git mv "coreos-${pkg}"-*.ebuild "coreos-${pkg}-${VERSION_NEW}.ebuild"; \
|
||||||
|
sed -i -e '/^COREOS_SOURCE_REVISION=/s/=.*/=""/' "coreos-${pkg}-${VERSION_NEW}.ebuild"; \
|
||||||
|
popd >/dev/null || exit; \
|
||||||
|
done
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches sys-kernel coreos-{sources,kernel,modules} Linux
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-alpha.yml
vendored
Normal file
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-alpha.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Get the latest Kernel release for the Alpha maintenance branch
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 7 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-kernel-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Kernel release
|
||||||
|
id: fetch-latest-release
|
||||||
|
env:
|
||||||
|
CHANNEL: alpha
|
||||||
|
run: |
|
||||||
|
KV_MAIN=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/flatcar_production_image_packages.txt" | grep -o 'coreos-kernel.*' | cut -d '-' -f 3- | cut -d . -f 1-2)
|
||||||
|
git clone --depth=1 --no-checkout https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux
|
||||||
|
versionMaintenance=$(git -C linux ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v${KV_MAIN}.[0-9]*$/s/^refs\/tags\/v//p" | sort -ruV | head -1)
|
||||||
|
rm -rf linux
|
||||||
|
maintenanceBranch=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/version.txt" | grep -m 1 FLATCAR_BUILD= | cut -d = -f 2-)
|
||||||
|
echo ::set-output name=VERSION_MAINTENANCE::$(echo ${versionMaintenance})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAINTENANCE::$(echo flatcar-${maintenanceBranch})
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for maintenance branch
|
||||||
|
id: apply-patch-maintenance
|
||||||
|
env:
|
||||||
|
TARGET: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
run: .github/workflows/kernel-apply-patch.sh
|
||||||
|
- name: Create pull request for maintenance branch
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-maintenance.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
branch: linux-${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}-${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Linux Kernel for ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
commit-message: Upgrade Linux Kernel in maintenance branch from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
body: Upgrade Linux Kernel in ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
labels: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-beta.yml
vendored
Normal file
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-beta.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Get the latest Kernel release for the Beta maintenance branch
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 7 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-kernel-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Kernel release
|
||||||
|
id: fetch-latest-release
|
||||||
|
env:
|
||||||
|
CHANNEL: beta
|
||||||
|
run: |
|
||||||
|
KV_MAIN=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/flatcar_production_image_packages.txt" | grep -o 'coreos-kernel.*' | cut -d '-' -f 3- | cut -d . -f 1-2)
|
||||||
|
git clone --depth=1 --no-checkout https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux
|
||||||
|
versionMaintenance=$(git -C linux ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v${KV_MAIN}.[0-9]*$/s/^refs\/tags\/v//p" | sort -ruV | head -1)
|
||||||
|
rm -rf linux
|
||||||
|
maintenanceBranch=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/version.txt" | grep -m 1 FLATCAR_BUILD= | cut -d = -f 2-)
|
||||||
|
echo ::set-output name=VERSION_MAINTENANCE::$(echo ${versionMaintenance})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAINTENANCE::$(echo flatcar-${maintenanceBranch})
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for maintenance branch
|
||||||
|
id: apply-patch-maintenance
|
||||||
|
env:
|
||||||
|
TARGET: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
run: .github/workflows/kernel-apply-patch.sh
|
||||||
|
- name: Create pull request for maintenance branch
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-maintenance.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
branch: linux-${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}-${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Linux Kernel for ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
commit-message: Upgrade Linux Kernel in maintenance branch from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
body: Upgrade Linux Kernel in ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
labels: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-main.yml
vendored
Normal file
46
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-main.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
name: Get the latest Kernel release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 7 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-kernel-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Kernel release
|
||||||
|
id: fetch-latest-release
|
||||||
|
env:
|
||||||
|
KV_MAIN: 5.4
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --no-checkout https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux
|
||||||
|
versionMain=$(git -C linux ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v${KV_MAIN}.[0-9]*$/s/^refs\/tags\/v//p" | sort -ruV | head -1)
|
||||||
|
rm -rf linux
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
run: .github/workflows/kernel-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: linux-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Linux Kernel in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Linux Kernel in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Linux Kernel in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-stable.yml
vendored
Normal file
48
sdk_container/src/third_party/coreos-overlay/.github/workflows/kernel-releases-stable.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Get the latest Kernel release for the Stable maintenance branch
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 7 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-kernel-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Kernel release
|
||||||
|
id: fetch-latest-release
|
||||||
|
env:
|
||||||
|
CHANNEL: stable
|
||||||
|
run: |
|
||||||
|
KV_MAIN=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/flatcar_production_image_packages.txt" | grep -o 'coreos-kernel.*' | cut -d '-' -f 3- | cut -d . -f 1-2)
|
||||||
|
git clone --depth=1 --no-checkout https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux
|
||||||
|
versionMaintenance=$(git -C linux ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/v${KV_MAIN}.[0-9]*$/s/^refs\/tags\/v//p" | sort -ruV | head -1)
|
||||||
|
rm -rf linux
|
||||||
|
maintenanceBranch=$(curl -s -S -f -L "https://${CHANNEL}.release.flatcar-linux.net/amd64-usr/current/version.txt" | grep -m 1 FLATCAR_BUILD= | cut -d = -f 2-)
|
||||||
|
echo ::set-output name=VERSION_MAINTENANCE::$(echo ${versionMaintenance})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAINTENANCE::$(echo flatcar-${maintenanceBranch})
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for maintenance branch
|
||||||
|
id: apply-patch-maintenance
|
||||||
|
env:
|
||||||
|
TARGET: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
run: .github/workflows/kernel-apply-patch.sh
|
||||||
|
- name: Create pull request for maintenance branch
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-maintenance.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
branch: linux-${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}-${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Linux Kernel for ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
commit-message: Upgrade Linux Kernel in maintenance branch from ${{ steps.apply-patch-maintenance.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
body: Upgrade Linux Kernel in ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }} from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAINTENANCE }}
|
||||||
|
labels: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAINTENANCE }}
|
56
sdk_container/src/third_party/coreos-overlay/.github/workflows/runc-apply-patch.sh
vendored
Executable file
56
sdk_container/src/third_party/coreos-overlay/.github/workflows/runc-apply-patch.sh
vendored
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "runc-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
# Get the original runc version, including official releases and rc versions.
|
||||||
|
# We need some sed tweaks like adding underscore, sort, and trim the underscore again,
|
||||||
|
# so that sort -V can give the newest version including non-rc versions.
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST docker-runc-\([0-9]*.[0-9]*.*\)\.tar.*/\1/p" app-emulation/docker-runc/Manifest | sed '/-/!{s/$/_/}' | sort -ruV | sed 's/_$//' | head -n1 | tr '-' '_')
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Runc, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
runcEbuildOld=$(ls -1 app-emulation/docker-runc/docker-runc-${VERSION_OLD}*.ebuild | sort -ruV | head -n1)
|
||||||
|
runcEbuildNew="app-emulation/docker-runc/docker-runc-${VERSION_NEW}.ebuild"
|
||||||
|
git mv ${runcEbuildOld} ${runcEbuildNew}
|
||||||
|
sed -i "s/${VERSION_OLD}/${VERSION_NEW}/g" ${runcEbuildNew}
|
||||||
|
sed -i "s/COMMIT_ID=\"\(.*\)\"/COMMIT_ID=\"${COMMIT_HASH}\"/g" ${runcEbuildNew}
|
||||||
|
|
||||||
|
# docker-runc ebuild file has also lines of runc versions with '-' instead of '_', e.g. '1.0.0-rc10'
|
||||||
|
VERSION_OLD_HYPHEN=${VERSION_OLD//_/-}
|
||||||
|
VERSION_NEW_HYPHEN=${VERSION_NEW//_/-}
|
||||||
|
|
||||||
|
sed -i "s/${VERSION_OLD_HYPHEN}/${VERSION_NEW_HYPHEN}/g" ${runcEbuildNew}
|
||||||
|
|
||||||
|
# update also runc versions used by docker and containerd
|
||||||
|
sed -i "s/docker-runc-${VERSION_OLD}/docker-runc-${VERSION_NEW}/g" app-emulation/docker/docker-9999.ebuild
|
||||||
|
sed -i "s/docker-runc-${VERSION_OLD}/docker-runc-${VERSION_NEW}/g" app-emulation/containerd/containerd-9999.ebuild
|
||||||
|
|
||||||
|
dockerVersion=$(sed -n "s/^DIST docker-\([0-9]*.[0-9]*.[0-9]*\).*/\1/p" app-emulation/docker/Manifest | sort -ruV | head -n1)
|
||||||
|
|
||||||
|
# torcx ebuild file has a docker version with only major and minor versions, like 19.03.
|
||||||
|
versionTorcx=${dockerVersion%.*}
|
||||||
|
torcxEbuildFile=$(ls -1 app-torcx/docker/docker-${versionTorcx}*.ebuild | sort -ruV | head -n1)
|
||||||
|
sed -i "s/docker-runc-${VERSION_OLD}/docker-runc-${VERSION_NEW}/g" ${torcxEbuildFile}
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches app-emulation docker-runc Runc
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
51
sdk_container/src/third_party/coreos-overlay/.github/workflows/runc-releases-main.yml
vendored
Normal file
51
sdk_container/src/third_party/coreos-overlay/.github/workflows/runc-releases-main.yml
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
name: Get the latest Runc release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '50 7 * * 4'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-runc-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Runc release
|
||||||
|
id: fetch-latest-release
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/opencontainers/runc
|
||||||
|
# Get the newest runc version, including official releases and rc versions.
|
||||||
|
# We need some sed tweaks like adding underscore, sort, and trim the underscore again,
|
||||||
|
# so that sort -V can give the newest version including non-rc versions.
|
||||||
|
versionMain=$(git -C runc ls-remote --tags origin | cut -f2 | sed '/-/!{s/$/_/}' | sed -n "/refs\/tags\/v[0-9]*.[0-9]*.[0-9]*/s/^refs\/tags\/v//p" |grep -v '\{\}$' | sort -ruV | sed 's/_$//' | head -n1)
|
||||||
|
commitMain="$(git -C runc rev-parse v${versionMain})"
|
||||||
|
versionMain="${versionMain//-/_}"
|
||||||
|
rm -rf runc
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=COMMIT_MAIN::$(echo ${commitMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: main
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
COMMIT_HASH: ${{ steps.fetch-latest-release.outputs.COMMIT_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
run: .github/workflows/runc-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: runc-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Runc in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Runc in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Runc in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
37
sdk_container/src/third_party/coreos-overlay/.github/workflows/rust-apply-patch.sh
vendored
Executable file
37
sdk_container/src/third_party/coreos-overlay/.github/workflows/rust-apply-patch.sh
vendored
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
UPDATE_NEEDED=1
|
||||||
|
|
||||||
|
. .github/workflows/common.sh
|
||||||
|
|
||||||
|
if ! checkout_branches "rust-${VERSION_NEW}-${TARGET}"; then
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${SDK_OUTER_SRCDIR}/third_party/coreos-overlay" >/dev/null || exit
|
||||||
|
|
||||||
|
VERSION_OLD=$(sed -n "s/^DIST rustc-\(1.[0-9]*.[0-9]*\).*/\1/p" dev-lang/rust/Manifest | sort -ruV | head -n1)
|
||||||
|
if [[ "${VERSION_NEW}" = "${VERSION_OLD}" ]]; then
|
||||||
|
echo "already the latest Rust, nothing to do"
|
||||||
|
UPDATE_NEEDED=0
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# replace rust version in profiles/, e.g. package.accept_keywords.
|
||||||
|
find profiles -name 'package.*' | xargs sed -i "s/=dev-lang\/rust-${VERSION_OLD}/=dev-lang\/rust-${VERSION_NEW}/"
|
||||||
|
|
||||||
|
pushd "dev-lang/rust" >/dev/null || exit
|
||||||
|
git mv $(ls -1 rust-${VERSION_OLD}*.ebuild | sort -ruV | head -n1) "rust-${VERSION_NEW}.ebuild"
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
popd >/dev/null || exit
|
||||||
|
|
||||||
|
generate_patches dev-lang rust Rust
|
||||||
|
|
||||||
|
apply_patches
|
||||||
|
|
||||||
|
echo ::set-output name=VERSION_OLD::"${VERSION_OLD}"
|
||||||
|
echo ::set-output name=UPDATE_NEEDED::"${UPDATE_NEEDED}"
|
51
sdk_container/src/third_party/coreos-overlay/.github/workflows/rust-release-main.yml
vendored
Normal file
51
sdk_container/src/third_party/coreos-overlay/.github/workflows/rust-release-main.yml
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
name: Get the latest Rust release for main
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '20 7 * * 2'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-rust-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest Rust release
|
||||||
|
id: fetch-latest-release
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --no-checkout https://github.com/rust-lang/rust
|
||||||
|
versionMain=$(git -C rust ls-remote --tags origin | cut -f2 | sed -n "/refs\/tags\/1.[0-9]*.[0-9]*$/s/^refs\/tags\///p" | sort -ruV | head -n1)
|
||||||
|
rm -rf rust
|
||||||
|
echo ::set-output name=VERSION_MAIN::$(echo ${versionMain})
|
||||||
|
echo ::set-output name=BASE_BRANCH_MAIN::main
|
||||||
|
- name: Set up Flatcar SDK
|
||||||
|
id: setup-flatcar-sdk
|
||||||
|
run: .github/workflows/setup-flatcar-sdk.sh
|
||||||
|
- name: Apply patch for main
|
||||||
|
id: apply-patch-main
|
||||||
|
env:
|
||||||
|
TARGET: main
|
||||||
|
BASE_BRANCH: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
PATH: ${{ steps.setup-flatcar-sdk.outputs.path }}
|
||||||
|
VERSION_NEW: ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
run: .github/workflows/rust-apply-patch.sh
|
||||||
|
- name: Create pull request for main
|
||||||
|
uses: peter-evans/create-pull-request@v2
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
base: ${{ steps.fetch-latest-release.outputs.BASE_BRANCH_MAIN }}
|
||||||
|
branch: rust-${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}-main
|
||||||
|
author: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
committer: Flatcar Buildbot <buildbot@flatcar-linux.org>
|
||||||
|
title: Upgrade Rust in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
commit-message: Upgrade Rust in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
body: Upgrade Rust in main from ${{ steps.apply-patch-main.outputs.VERSION_OLD }} to ${{ steps.fetch-latest-release.outputs.VERSION_MAIN }}
|
||||||
|
labels: main
|
||||||
|
- name: Send repository dispatch to portage-stable
|
||||||
|
uses: peter-evans/repository-dispatch@v1.0.0
|
||||||
|
if: steps.apply-patch-main.outputs.UPDATE_NEEDED == 1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.FLATCAR_PORTAGE_STABLE_ACCESS_TOKEN }}
|
||||||
|
repository: flatcar-linux/portage-stable
|
||||||
|
event-type: cargo-pull-request-main
|
60
sdk_container/src/third_party/coreos-overlay/.github/workflows/setup-flatcar-sdk.sh
vendored
Executable file
60
sdk_container/src/third_party/coreos-overlay/.github/workflows/setup-flatcar-sdk.sh
vendored
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CORK_VERSION=$(curl -s https://api.github.com/repos/flatcar-linux/mantle/releases/latest | jq -r .tag_name | sed -e 's/^v//')
|
||||||
|
curl -L -o cork https://github.com/flatcar-linux/mantle/releases/download/v"${CORK_VERSION}"/cork-"${CORK_VERSION}"-amd64
|
||||||
|
curl -L -o cork.sig https://github.com/flatcar-linux/mantle/releases/download/v"${CORK_VERSION}"/cork-"${CORK_VERSION}"-amd64.sig
|
||||||
|
gpg --keyserver keys.gnupg.net --receive-keys 84C8E771C0DF83DFBFCAAAF03ADA89DEC2507883
|
||||||
|
gpg --verify cork.sig cork
|
||||||
|
rm -f cork.sig
|
||||||
|
chmod +x cork
|
||||||
|
mkdir -p ~/.local/bin
|
||||||
|
mv cork ~/.local/bin
|
||||||
|
|
||||||
|
export PATH=$PATH:$HOME/.local/bin
|
||||||
|
mkdir -p ~/flatcar-sdk
|
||||||
|
|
||||||
|
pushd ~/flatcar-sdk || exit
|
||||||
|
cork create || true
|
||||||
|
|
||||||
|
sudo tee "./chroot/etc/portage/make.conf" <<EOF
|
||||||
|
PORTDIR="/mnt/host/source/src/third_party/portage-stable"
|
||||||
|
PORTDIR_OVERLAY="/mnt/host/source/src/third_party/coreos-overlay"
|
||||||
|
DISTDIR="/mnt/host/source/.cache/distfiles"
|
||||||
|
PKGDIR="/var/lib/portage/pkgs"
|
||||||
|
PORT_LOGDIR="/var/log/portage"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo tee "./chroot/etc/portage/repos.conf/coreos.conf" <<EOF
|
||||||
|
[DEFAULT]
|
||||||
|
main-repo = portage-stable
|
||||||
|
|
||||||
|
[gentoo]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[coreos]
|
||||||
|
location = /mnt/host/source/src/third_party/coreos-overlay
|
||||||
|
|
||||||
|
[portage-stable]
|
||||||
|
location = /mnt/host/source/src/third_party/portage-stable
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# /var under the chroot has to be writable by the runner user
|
||||||
|
sudo chown -R runner:docker ~/flatcar-sdk/chroot/var
|
||||||
|
|
||||||
|
function enter() ( exec cork enter -- $@ )
|
||||||
|
|
||||||
|
# To be able to generate metadata, we need to configure a profile
|
||||||
|
# /etc/portage/make.profile, a symlink pointing to the SDK profile.
|
||||||
|
enter sudo eselect profile set --force "coreos:coreos/amd64/sdk"
|
||||||
|
|
||||||
|
# make edb directory group-writable to run egencache
|
||||||
|
enter sudo chmod g+w /var/cache/edb
|
||||||
|
|
||||||
|
git -C src/third_party/coreos-overlay reset --hard github/main
|
||||||
|
git -C src/third_party/coreos-overlay config user.name 'Flatcar Buildbot'
|
||||||
|
git -C src/third_party/coreos-overlay config user.email 'buildbot@flatcar-linux.org'
|
||||||
|
popd || exit
|
||||||
|
|
||||||
|
echo ::set-output name=path::"${PATH}"
|
Loading…
x
Reference in New Issue
Block a user