This repository has been archived by the owner on Sep 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Split base image check for base-legacy and base-csgo
Signed-off-by: Timo Reichl <[email protected]>
- Loading branch information
Showing
3 changed files
with
212 additions
and
100 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,106 @@ | ||
name: Check for newer base-csgo image every night | ||
|
||
on: | ||
schedule: | ||
- cron: "0 0 * * *" | ||
|
||
jobs: | ||
compare-base-csgo-image-tag: | ||
permissions: write-all | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Compare base-csgo image platform and tag | ||
id: compare-base-csgo | ||
run: | | ||
# Get base-csgo SteamRT platform variant | ||
export STEAMRT_PLATFORM_VARIANT=$(docker compose config base-csgo | grep 'STEAMRT_PLATFORM_VARIANT' | cut -d ':' -f 2 | xargs) | ||
export STEAMRT_PLATFORM_VERSION=$(docker compose config base-csgo | grep 'STEAMRT_PLATFORM_VERSION' | cut -d ':' -f 2 | xargs) | ||
# Get image repository | ||
current_repository=$(eval echo $(sed -rn '/FROM /p' image/base/Dockerfile | cut -d ' ' -f 2 | cut -d ':' -f 1)) | ||
# Use crane to list all available remote tags based on the base-csgo image tag prefix | ||
# https://github.com/google/go-containerregistry/tree/main/cmd/crane | ||
remote_tags=$(docker run --rm gcr.io/go-containerregistry/crane:v0.15.2 ls ${current_repository} | grep -v -e '[[a-z]]*') | ||
# Compare current tag to remote tags | ||
new_tag=$(python3 ./scripts/compare_tags.py "${STEAMRT_PLATFORM_VERSION}" "${remote_tags}") | ||
if [[ ! -z "${new_tag}" ]]; then | ||
echo "CI_PR_NEW_BASE_CSGO_IMAGE_TAG=${new_tag}" >> $GITHUB_ENV | ||
echo "createpr_csgo=1" >> $GITHUB_OUTPUT | ||
else | ||
echo "No newer tag found." | ||
echo "createpr_csgo=0" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Check if pull request exists for newer base-csgo image | ||
if: ${{ steps.compare.outputs.createpr_csgo == 1 }} | ||
id: checkpr_csgo | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
const { repo, owner } = context.repo; | ||
const result = await github.rest.pulls.list({ | ||
owner, | ||
repo, | ||
head: 'actions/bump-base-csgo-image-tag', | ||
base: 'main', | ||
state: 'open' | ||
}); | ||
if (result.length > 0) | ||
{ | ||
return 'skip' | ||
} | ||
return 'continue' | ||
result-encoding: string | ||
|
||
- name: Push new branch with updated base-csgo image | ||
if: ${{ steps.checkpr_csgo.outputs.result == 'continue' }} | ||
run: | | ||
# Install yq | ||
apt-get update | ||
apt-get install -y --no-install-recommends yq | ||
# Prepare git user | ||
git config user.name github-actions | ||
git config user.email [email protected] | ||
# Checkout new branch from main | ||
git fetch origin main | ||
git checkout main | ||
git checkout -b actions/bump-base-csgo-image-tag | ||
# Replace base-csgo image tag | ||
cat docker-compose.yml | yq -M -y '.services."base-csgo".build.args.STEAMRT_PLATFORM_VERSION = "${CI_PR_NEW_BASE_CSGO_IMAGE_TAG}"' > docker-compose-new.yml | ||
rm -rf docker-compose.yml | ||
mv docker-compose-new.yml docker-compose.yml | ||
# Add, commit and push changes to the branch | ||
git add docker-compose.yml | ||
git commit -m "Bump base-csgo image tag to ${CI_PR_NEW_BASE_CSGO_IMAGE_TAG}" | ||
git push origin actions/bump-base-csgo-image-tag -f | ||
- name: Create pull request for newer base-csgo image | ||
if: ${{ steps.checkpr_csgo.outputs.result == 'continue' }} | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
const { repo, owner } = context.repo; | ||
const result = await github.rest.pulls.create({ | ||
title: `[Bump] base-csgo image tag to ${process.env.CI_PR_NEW_BASE_CSGO_IMAGE_TAG}`, | ||
owner, | ||
repo, | ||
head: 'actions/bump-base-csgo-image-tag', | ||
base: 'main' | ||
}); | ||
github.rest.issues.addLabels({ | ||
owner, | ||
repo, | ||
issue_number: result.data.number, | ||
labels: ['improvement', 'bump base-csgo image tag'] | ||
}); |
This file was deleted.
Oops, something went wrong.
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,106 @@ | ||
name: Check for newer base-legacy image every night | ||
|
||
on: | ||
schedule: | ||
- cron: "0 0 * * *" | ||
|
||
jobs: | ||
compare-base-legacy-image-tag: | ||
permissions: write-all | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Compare base-legacy image platform and tag | ||
id: compare-base-legacy | ||
run: | | ||
# Get base-legacy SteamRT platform variant | ||
export STEAMRT_PLATFORM_VARIANT=$(docker compose config base-legacy | grep 'STEAMRT_PLATFORM_VARIANT' | cut -d ':' -f 2 | xargs) | ||
export STEAMRT_PLATFORM_VERSION=$(docker compose config base-legacy | grep 'STEAMRT_PLATFORM_VERSION' | cut -d ':' -f 2 | xargs) | ||
# Get image repository | ||
current_repository=$(eval echo $(sed -rn '/FROM /p' image/base/Dockerfile | cut -d ' ' -f 2 | cut -d ':' -f 1)) | ||
# Use crane to list all available remote tags based on the base-legacy image tag prefix | ||
# https://github.com/google/go-containerregistry/tree/main/cmd/crane | ||
remote_tags=$(docker run --rm gcr.io/go-containerregistry/crane:v0.15.2 ls ${current_repository} | grep -v -e '[[a-z]]*') | ||
# Compare current tag to remote tags | ||
new_tag=$(python3 ./scripts/compare_tags.py "${STEAMRT_PLATFORM_VERSION}" "${remote_tags}") | ||
if [[ ! -z "${new_tag}" ]]; then | ||
echo "CI_PR_NEW_BASE_LEGACY_IMAGE_TAG=${new_tag}" >> $GITHUB_ENV | ||
echo "createpr_legacy=1" >> $GITHUB_OUTPUT | ||
else | ||
echo "No newer tag found." | ||
echo "createpr_legacy=0" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Check if pull request exists for newer base-legacy image | ||
if: ${{ steps.compare.outputs.createpr_legacy == 1 }} | ||
id: checkpr_legacy | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
const { repo, owner } = context.repo; | ||
const result = await github.rest.pulls.list({ | ||
owner, | ||
repo, | ||
head: 'actions/bump-base-legacy-image-tag', | ||
base: 'main', | ||
state: 'open' | ||
}); | ||
if (result.length > 0) | ||
{ | ||
return 'skip' | ||
} | ||
return 'continue' | ||
result-encoding: string | ||
|
||
- name: Push new branch with updated base-legacy image | ||
if: ${{ steps.checkpr_legacy.outputs.result == 'continue' }} | ||
run: | | ||
# Install yq | ||
apt-get update | ||
apt-get install -y --no-install-recommends yq | ||
# Prepare git user | ||
git config user.name github-actions | ||
git config user.email [email protected] | ||
# Checkout new branch from main | ||
git fetch origin main | ||
git checkout main | ||
git checkout -b actions/bump-base-legacy-image-tag | ||
# Replace base-legacy image tag | ||
cat docker-compose.yml | yq -M -y '.services."base-legacy".build.args.STEAMRT_PLATFORM_VERSION = "${CI_PR_NEW_BASE_LEGACY_IMAGE_TAG}"' > docker-compose-new.yml | ||
rm -rf docker-compose.yml | ||
mv docker-compose-new.yml docker-compose.yml | ||
# Add, commit and push changes to the branch | ||
git add docker-compose.yml | ||
git commit -m "Bump base-legacy image tag to ${CI_PR_NEW_BASE_LEGACY_IMAGE_TAG}" | ||
git push origin actions/bump-base-legacy-image-tag -f | ||
- name: Create pull request for newer base-legacy image | ||
if: ${{ steps.checkpr_legacy.outputs.result == 'continue' }} | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
const { repo, owner } = context.repo; | ||
const result = await github.rest.pulls.create({ | ||
title: `[Bump] base-legacy image tag to ${process.env.CI_PR_NEW_BASE_LEGACY_IMAGE_TAG}`, | ||
owner, | ||
repo, | ||
head: 'actions/bump-base-legacy-image-tag', | ||
base: 'main' | ||
}); | ||
github.rest.issues.addLabels({ | ||
owner, | ||
repo, | ||
issue_number: result.data.number, | ||
labels: ['improvement', 'bump base-legacy image tag'] | ||
}); |