Compare commits
8 Commits
fuse
...
2025.07-rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c856610a9 | ||
|
|
75360e4c45 | ||
|
|
5799c8f9b1 | ||
|
|
a00a473657 | ||
|
|
d3e3575148 | ||
|
|
dbe7b5ae23 | ||
|
|
630c46362a | ||
|
|
7c4ce04b1d |
48
.gitlab-ci-release.yml
Normal file
48
.gitlab-ci-release.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
# .gitlab-ci-release.yml
|
||||
|
||||
# This single job handles the creation of both final releases and release candidates.
|
||||
# It determines which type of release to create based on the date.
|
||||
release:create:
|
||||
stage: release
|
||||
# We use the official release-cli image provided by GitLab.
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
rules:
|
||||
# This job only runs on scheduled pipelines that target the 'master' branch.
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == "master"'
|
||||
script:
|
||||
- |
|
||||
echo "🚀 Checking release conditions for pipeline on branch '$CI_COMMIT_REF_NAME'..."
|
||||
# Use %-m, %-u, %-d to avoid issues with zero-padding (e.g., '08' being an invalid octal number).
|
||||
MONTH=$(date +%-m)
|
||||
DAY_OF_WEEK=$(date +%-u) # 1=Monday, 7=Sunday
|
||||
DAY_OF_MONTH=$(date +%-d)
|
||||
|
||||
# FINAL RELEASE: Occurs on the first Monday of an even-numbered month.
|
||||
# 1. The month is even (e.g., February, April...).
|
||||
# 2. The day of the week is Monday.
|
||||
# 3. The day is within the first 7 days of the month.
|
||||
if [ $((MONTH % 2)) -eq 0 ] && [ "$DAY_OF_WEEK" -eq 1 ] && [ "$DAY_OF_MONTH" -le 7 ]; then
|
||||
|
||||
# This is a Final Release
|
||||
TAG_NAME=$(date +%Y.%m)
|
||||
RELEASE_TITLE="Release $TAG_NAME"
|
||||
echo "✅ Conditions met for a Final Release. Creating tag: $TAG_NAME"
|
||||
|
||||
else
|
||||
|
||||
# This is a Release Candidate (RC)
|
||||
# RC index is calculated based on the day of the month:
|
||||
# Days 1-14 -> rc1, Days 15-28 -> rc2, etc.
|
||||
RC_INDEX=$(( (DAY_OF_MONTH - 1) / 14 + 1 ))
|
||||
TAG_NAME="$(date +%Y.%m)-rc${RC_INDEX}"
|
||||
RELEASE_TITLE="Release Candidate $TAG_NAME"
|
||||
echo "📝 Conditions met for a Release Candidate. Creating tag: $TAG_NAME"
|
||||
|
||||
fi
|
||||
|
||||
echo "Executing release-cli to create the release..."
|
||||
release-cli create \
|
||||
--name "$RELEASE_TITLE" \
|
||||
--tag-name "$TAG_NAME" \
|
||||
--description "Automated release created by GitLab CI. Based on commit $CI_COMMIT_SHORT_SHA on the '$CI_COMMIT_REF_NAME' branch." \
|
||||
--ref "$CI_COMMIT_SHA"
|
||||
@@ -1,5 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
include:
|
||||
- local: '.gitlab-ci-release.yml'
|
||||
|
||||
variables:
|
||||
DEFAULT_TAG: ""
|
||||
MIRROR_DOCKER: docker.io
|
||||
@@ -24,6 +27,7 @@ stages:
|
||||
- test.py
|
||||
- sjg-lab
|
||||
- world build
|
||||
- release
|
||||
|
||||
.buildman_and_testpy_template: &buildman_and_testpy_dfn
|
||||
stage: test.py
|
||||
@@ -633,7 +637,8 @@ coreboot test.py:
|
||||
fi;
|
||||
fi
|
||||
- export SRC="$(pwd)"
|
||||
- export OUT="${SRC}/build/${BOARD}"
|
||||
- export OUT="${SRC}/build/${ROLE}"
|
||||
- export OUT_EXTRA="${SRC}/build/${ROLE}_extra"
|
||||
- export PATH=$PATH:~/bin
|
||||
- export PATH=$PATH:test/hooks/bin
|
||||
|
||||
@@ -648,7 +653,8 @@ coreboot test.py:
|
||||
vars="-V build-adjust ${ADJUST}";
|
||||
fi
|
||||
- ${SRC}/test/py/test.py --role ${ROLE} --build-dir "${OUT}"
|
||||
--capture=tee-sys -k "not bootstd ${TEST_PY_TEST_SPEC}" || ret=$?
|
||||
--build-dir-extra ${OUT_EXTRA} --capture=tee-sys
|
||||
-k "not bootstd ${TEST_PY_TEST_SPEC}" || ret=$?
|
||||
- U_BOOT_BOARD_IDENTITY="${ROLE}" u-boot-test-release || true
|
||||
- if [[ $ret -ne 0 ]]; then
|
||||
exit $ret;
|
||||
@@ -656,8 +662,8 @@ coreboot test.py:
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "build/${BOARD}/test-log.html"
|
||||
- "build/${BOARD}/multiplexed_log.css"
|
||||
- "build/${ROLE}/test-log.html"
|
||||
- "build/${ROLE}/multiplexed_log.css"
|
||||
expire_in: 1 week
|
||||
|
||||
rpi3:
|
||||
@@ -842,3 +848,8 @@ vbe:
|
||||
variables:
|
||||
ROLE: vbe
|
||||
<<: *lab_dfn
|
||||
|
||||
play:
|
||||
variables:
|
||||
ROLE: play
|
||||
<<: *lab_dfn
|
||||
|
||||
@@ -136,7 +136,7 @@ void release_resources_for_core_shutdown(void)
|
||||
}
|
||||
}
|
||||
|
||||
void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
void __noreturn jump_to_image(struct spl_image_info *spl_image)
|
||||
{
|
||||
typedef void __noreturn (*image_entry_noargs_t)(void);
|
||||
struct ti_sci_handle *ti_sci = get_ti_sci_handle();
|
||||
|
||||
@@ -347,7 +347,7 @@ uintptr_t get_stm32mp_bl2_dtb(void)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XPL_BUILD
|
||||
void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
void __noreturn jump_to_image(struct spl_image_info *spl_image)
|
||||
{
|
||||
typedef void __noreturn (*image_entry_stm32_t)(u32 romapi);
|
||||
uintptr_t romapi = get_stm32mp_rom_api_table();
|
||||
|
||||
@@ -112,7 +112,7 @@ static int load_from_image(struct spl_image_info *spl_image,
|
||||
log_info("Reading from pos %lx size %lx\n", pos, size);
|
||||
|
||||
/*
|
||||
* Set up spl_image to boot from jump_to_image_no_args(). Allocate this
|
||||
* Set up spl_image to boot from jump_to_image(). Allocate this
|
||||
* outside the RAM buffer (i.e. don't use strdup()).
|
||||
*/
|
||||
fname = state->prog_fname ? state->prog_fname : state->argv[0];
|
||||
|
||||
@@ -59,3 +59,18 @@ def test_distro(ubman):
|
||||
ubman.p.expect(['Welcome to .*Ubuntu 24.04.1 LTS.*!'])
|
||||
|
||||
ubman.restart_uboot()
|
||||
|
||||
@pytest.mark.boardspec('colibri-imx8x')
|
||||
@pytest.mark.role('colibrimx8')
|
||||
def test_distro_script(ubman):
|
||||
"""Test that a selected board can boot into Llinux using a script"""
|
||||
with ubman.log.section('boot'):
|
||||
ubman.run_command('boot', wait_for_prompt=False)
|
||||
|
||||
# This is the start of userspace
|
||||
ubman.p.expect(['Welcome to TDX Wayland'])
|
||||
|
||||
# Shortly later, we should see this banner
|
||||
ubman.p.expect(['Colibri-iMX8X_Reference-Multimedia-Image'])
|
||||
|
||||
ubman.restart_uboot()
|
||||
|
||||
Reference in New Issue
Block a user