mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-06-28 09:45:45 +02:00
[ci] Fix update-deps workflow (again) (#4110)
Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4110
This commit is contained in:
parent
97a8470b12
commit
e63b248e54
4 changed files with 90 additions and 64 deletions
|
|
@ -52,7 +52,7 @@ jobs:
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
curl -X 'POST' \
|
curl -XPOST \
|
||||||
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
||||||
-H 'accept: application/json' \
|
-H 'accept: application/json' \
|
||||||
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
name: update-deps
|
name: Update Dependencies
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# saturday at noon
|
# saturday at noon
|
||||||
|
|
@ -7,7 +7,7 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tx-update:
|
update-deps:
|
||||||
runs-on: source
|
runs-on: source
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
@ -24,18 +24,21 @@ jobs:
|
||||||
git remote set-url origin ci:eden-emu/eden.git
|
git remote set-url origin ci:eden-emu/eden.git
|
||||||
|
|
||||||
DATE=$(date +"%b %d")
|
DATE=$(date +"%b %d")
|
||||||
|
TIMESTAMP=$(date +"%s")
|
||||||
echo "DATE=$DATE" >> "$GITHUB_ENV"
|
echo "DATE=$DATE" >> "$GITHUB_ENV"
|
||||||
|
echo "TIMESTAMP=$TIMESTAMP" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
git switch -c update-deps-$DATE
|
git switch -c update-deps-$TIMESTAMP
|
||||||
tools/cpmutil.sh package update -ac
|
tools/cpmutil.sh package update -ac
|
||||||
git push
|
git push
|
||||||
|
|
||||||
- name: Create PR
|
- name: Create PR
|
||||||
run: |
|
run: |
|
||||||
|
set -x
|
||||||
TITLE="[externals] Dependency update for $DATE"
|
TITLE="[externals] Dependency update for $DATE"
|
||||||
BODY="$(git show -s --format='%b')"
|
BODY="$(git show -s --format='%b')"
|
||||||
BASE=master
|
BASE=master
|
||||||
HEAD=update-deps-$DATE
|
HEAD=update-deps-$TIMESTAMP
|
||||||
|
|
||||||
cat << EOF > data.json
|
cat << EOF > data.json
|
||||||
{
|
{
|
||||||
|
|
@ -46,7 +49,7 @@ jobs:
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
curl -X 'POST' \
|
curl -XPOST \
|
||||||
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
||||||
-H 'accept: application/json' \
|
-H 'accept: application/json' \
|
||||||
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,8 @@ function(AddDependentPackages)
|
||||||
message(FATAL_ERROR "Partial dependency installation detected "
|
message(FATAL_ERROR "Partial dependency installation detected "
|
||||||
"for the following packages:\n${package_names}\n"
|
"for the following packages:\n${package_names}\n"
|
||||||
"You can solve this in one of two ways:\n"
|
"You can solve this in one of two ways:\n"
|
||||||
"1. Install the following packages to your system if available:"
|
"1. Install or upgrade the following packages "
|
||||||
|
"to your system if available:"
|
||||||
"\n\t${bundled_names}\n"
|
"\n\t${bundled_names}\n"
|
||||||
"2. Set the following variables to ON:"
|
"2. Set the following variables to ON:"
|
||||||
"\n\t${system_names}\n"
|
"\n\t${system_names}\n"
|
||||||
|
|
@ -241,15 +242,14 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
# these are overrides that can be generated at runtime,
|
# these are overrides that can be generated at runtime,
|
||||||
# so can be defined separately from the json
|
# so can be defined separately from the json
|
||||||
DOWNLOAD_ONLY
|
|
||||||
BUNDLED_PACKAGE
|
BUNDLED_PACKAGE
|
||||||
FORCE_BUNDLED_PACKAGE)
|
FORCE_BUNDLED_PACKAGE)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS)
|
set(multiValueArgs OPTIONS)
|
||||||
|
|
||||||
set(options MODULE)
|
set(optionArgs MODULE_PATH DOWNLOAD_ONLY)
|
||||||
|
|
||||||
cmake_parse_arguments(JSON "${options}" "${oneValueArgs}" "${multiValueArgs}"
|
cmake_parse_arguments(JSON "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
list(LENGTH ARGN argnLength)
|
list(LENGTH ARGN argnLength)
|
||||||
|
|
@ -278,11 +278,15 @@ function(AddJsonPackage)
|
||||||
|
|
||||||
parse_object(${object})
|
parse_object(${object})
|
||||||
|
|
||||||
if(ci)
|
if (JSON_MODULE_PATH)
|
||||||
if (JSON_MODULE)
|
list(APPEND EXTRA_ARGS MODULE_PATH)
|
||||||
set(EXTRA_ARGS MODULE)
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
|
if (JSON_DOWNLOAD_ONLY)
|
||||||
|
list(APPEND EXTRA_ARGS DOWNLOAD_ONLY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ci)
|
||||||
AddCIPackage(
|
AddCIPackage(
|
||||||
VERSION ${version}
|
VERSION ${version}
|
||||||
NAME ${name}
|
NAME ${name}
|
||||||
|
|
@ -313,40 +317,25 @@ function(AddJsonPackage)
|
||||||
FORCE_BUNDLED_PACKAGE "${JSON_FORCE_BUNDLED_PACKAGE}"
|
FORCE_BUNDLED_PACKAGE "${JSON_FORCE_BUNDLED_PACKAGE}"
|
||||||
SOURCE_SUBDIR "${source_subdir}"
|
SOURCE_SUBDIR "${source_subdir}"
|
||||||
|
|
||||||
GIT_VERSION ${git_version}
|
GIT_VERSION "${git_version}"
|
||||||
GIT_HOST ${git_host}
|
GIT_HOST "${git_host}"
|
||||||
|
|
||||||
ARTIFACT ${artifact}
|
ARTIFACT "${artifact}"
|
||||||
TAG ${tag})
|
TAG "${tag}"
|
||||||
|
${EXTRA_ARGS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
Propagate(${package}_ADDED)
|
Propagate(${package}_ADDED)
|
||||||
Propagate(${package}_SOURCE_DIR)
|
Propagate(${package}_SOURCE_DIR)
|
||||||
Propagate(${package}_BINARY_DIR)
|
Propagate(${package}_BINARY_DIR)
|
||||||
|
Propagate(CMAKE_PREFIX_PATH)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(AddPackage)
|
function(AddPackage)
|
||||||
cpm_set_policies()
|
cpm_set_policies()
|
||||||
|
set(EXTRA_ARGS "")
|
||||||
|
|
||||||
# TODO(crueter): git clone?
|
|
||||||
|
|
||||||
#[[
|
|
||||||
URL configurations, descending order of precedence:
|
|
||||||
- URL [+ GIT_URL] -> bare URL fetch
|
|
||||||
- REPO + TAG + ARTIFACT -> github release artifact
|
|
||||||
- REPO + TAG -> github release archive
|
|
||||||
- REPO + SHA -> github commit archive
|
|
||||||
- REPO + BRANCH -> github branch
|
|
||||||
|
|
||||||
Hash configurations, descending order of precedence:
|
|
||||||
- HASH -> bare sha512sum
|
|
||||||
- HASH_SUFFIX -> hash grabbed from the URL + this suffix
|
|
||||||
- HASH_URL -> hash grabbed from a URL
|
|
||||||
* technically this is unsafe since a hacker can attack that url
|
|
||||||
|
|
||||||
NOTE: hash algo defaults to sha512
|
|
||||||
#]]
|
|
||||||
set(oneValueArgs
|
set(oneValueArgs
|
||||||
NAME
|
NAME
|
||||||
VERSION
|
VERSION
|
||||||
|
|
@ -366,6 +355,7 @@ function(AddPackage)
|
||||||
|
|
||||||
URL
|
URL
|
||||||
GIT_URL
|
GIT_URL
|
||||||
|
SOURCE_SUBDIR
|
||||||
|
|
||||||
KEY
|
KEY
|
||||||
BUNDLED_PACKAGE
|
BUNDLED_PACKAGE
|
||||||
|
|
@ -374,7 +364,9 @@ function(AddPackage)
|
||||||
|
|
||||||
set(multiValueArgs OPTIONS PATCHES)
|
set(multiValueArgs OPTIONS PATCHES)
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}"
|
set(optionArgs MODULE_PATH DOWNLOAD_ONLY)
|
||||||
|
|
||||||
|
cmake_parse_arguments(PKG_ARGS "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}"
|
||||||
"${ARGN}")
|
"${ARGN}")
|
||||||
|
|
||||||
if(NOT DEFINED PKG_ARGS_NAME)
|
if(NOT DEFINED PKG_ARGS_NAME)
|
||||||
|
|
@ -558,16 +550,36 @@ function(AddPackage)
|
||||||
VERSION ${PKG_ARGS_VERSION})
|
VERSION ${PKG_ARGS_VERSION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
CPMAddPackage(
|
if (PKG_ARGS_FIND_PACKAGE_ARGUMENTS)
|
||||||
NAME ${PKG_ARGS_NAME}
|
list(APPEND EXTRA_ARGS
|
||||||
URL ${pkg_url}
|
FIND_PACKAGE_ARGUMENTS "${PKG_ARGS_FIND_PACKAGE_ARGUMENTS}")
|
||||||
URL_HASH ${pkg_hash}
|
endif()
|
||||||
CUSTOM_CACHE_KEY ${pkg_key}
|
|
||||||
DOWNLOAD_ONLY ${PKG_ARGS_DOWNLOAD_ONLY}
|
if (PKG_ARGS_PATCHES)
|
||||||
FIND_PACKAGE_ARGUMENTS ${PKG_ARGS_FIND_PACKAGE_ARGUMENTS}
|
list(APPEND EXTRA_ARGS
|
||||||
|
PATCHES "${PKG_ARGS_PATCHES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (PKG_ARGS_OPTIONS)
|
||||||
|
list(APPEND EXTRA_ARGS
|
||||||
|
OPTIONS "${PKG_ARGS_OPTIONS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (PKG_ARGS_SOURCE_SUBDIR)
|
||||||
|
list(APPEND EXTRA_ARGS
|
||||||
|
SOURCE_SUBDIR "${PKG_ARGS_SOURCE_SUBDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (PKG_ARGS_DOWNLOAD_ONLY OR PKG_ARGS_MODULE_PATH)
|
||||||
|
list(APPEND EXTRA_ARGS DOWNLOAD_ONLY ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME "${PKG_ARGS_NAME}"
|
||||||
|
URL "${pkg_url}"
|
||||||
|
URL_HASH "${pkg_hash}"
|
||||||
|
CUSTOM_CACHE_KEY "${pkg_key}"
|
||||||
|
|
||||||
OPTIONS ${PKG_ARGS_OPTIONS}
|
|
||||||
PATCHES ${PKG_ARGS_PATCHES}
|
|
||||||
EXCLUDE_FROM_ALL ON
|
EXCLUDE_FROM_ALL ON
|
||||||
|
|
||||||
${EXTRA_ARGS}
|
${EXTRA_ARGS}
|
||||||
|
|
@ -607,13 +619,14 @@ function(AddPackage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
set(${PKG_ARGS_NAME}_ADDED "${${PKG_ARGS_NAME}_ADDED}"
|
Propagate(${PKG_ARGS_NAME}_ADDED)
|
||||||
PARENT_SCOPE)
|
Propagate(${PKG_ARGS_NAME}_SOURCE_DIR)
|
||||||
set(${PKG_ARGS_NAME}_SOURCE_DIR "${${PKG_ARGS_NAME}_SOURCE_DIR}"
|
Propagate(${PKG_ARGS_NAME}_BINARY_DIR)
|
||||||
PARENT_SCOPE)
|
|
||||||
set(${PKG_ARGS_NAME}_BINARY_DIR "${${PKG_ARGS_NAME}_BINARY_DIR}"
|
|
||||||
PARENT_SCOPE)
|
|
||||||
|
|
||||||
|
if (PKG_ARGS_MODULE_PATH)
|
||||||
|
list(PREPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}")
|
||||||
|
Propagate(CMAKE_PREFIX_PATH)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# TODO(crueter): we could do an AddMultiArchPackage, multiplatformpackage?
|
# TODO(crueter): we could do an AddMultiArchPackage, multiplatformpackage?
|
||||||
|
|
@ -629,7 +642,7 @@ function(AddCIPackage)
|
||||||
|
|
||||||
set(multiValueArgs DISABLED_PLATFORMS)
|
set(multiValueArgs DISABLED_PLATFORMS)
|
||||||
|
|
||||||
set(optionArgs MODULE)
|
set(optionArgs MODULE_PATH)
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS
|
cmake_parse_arguments(PKG_ARGS
|
||||||
"${optionArgs}"
|
"${optionArgs}"
|
||||||
|
|
@ -706,6 +719,10 @@ function(AddCIPackage)
|
||||||
set(ARTIFACT
|
set(ARTIFACT
|
||||||
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
||||||
|
|
||||||
|
if (PKG_ARGS_MODULE_PATH)
|
||||||
|
list(APPEND EXTRA_ARGS MODULE_PATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
AddPackage(
|
AddPackage(
|
||||||
NAME ${ARTIFACT_PACKAGE}
|
NAME ${ARTIFACT_PACKAGE}
|
||||||
REPO ${ARTIFACT_REPO}
|
REPO ${ARTIFACT_REPO}
|
||||||
|
|
@ -716,16 +733,11 @@ function(AddCIPackage)
|
||||||
KEY "${pkgname}-${ARTIFACT_VERSION}"
|
KEY "${pkgname}-${ARTIFACT_VERSION}"
|
||||||
HASH_SUFFIX sha512sum
|
HASH_SUFFIX sha512sum
|
||||||
FORCE_BUNDLED_PACKAGE ON
|
FORCE_BUNDLED_PACKAGE ON
|
||||||
DOWNLOAD_ONLY ${PKG_ARGS_MODULE})
|
${EXTRA_ARGS})
|
||||||
|
|
||||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||||
set(${ARTIFACT_PACKAGE}_SOURCE_DIR
|
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR)
|
||||||
"${${ARTIFACT_PACKAGE}_SOURCE_DIR}" PARENT_SCOPE)
|
Propagate(CMAKE_PREFIX_PATH)
|
||||||
|
|
||||||
if (PKG_ARGS_MODULE)
|
|
||||||
list(PREPEND CMAKE_PREFIX_PATH "${${ARTIFACT_PACKAGE}_SOURCE_DIR}")
|
|
||||||
Propagate(CMAKE_PREFIX_PATH)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED)
|
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -750,7 +762,7 @@ function(AddQt repo version)
|
||||||
DISABLED_PLATFORMS
|
DISABLED_PLATFORMS
|
||||||
android-x86_64 android-aarch64
|
android-x86_64 android-aarch64
|
||||||
freebsd-amd64 solaris-amd64 openbsd-amd64
|
freebsd-amd64 solaris-amd64 openbsd-amd64
|
||||||
MODULE)
|
MODULE_PATH)
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH)
|
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,8 +83,13 @@ for pkg in $packages; do
|
||||||
echo "-- Package $PACKAGE"
|
echo "-- Package $PACKAGE"
|
||||||
|
|
||||||
# TODO(crueter): Support for Forgejo updates w/ forgejo_token
|
# TODO(crueter): Support for Forgejo updates w/ forgejo_token
|
||||||
# Use gh-cli to avoid ratelimits lmao
|
# Use gh-cli to avoid ratelimits, if available
|
||||||
TAGS=$(gh api --method GET "/repos/$REPO/tags")
|
endpoint="/repos/$REPO/tags"
|
||||||
|
if command -v gh >/dev/null 2>&1; then
|
||||||
|
TAGS=$(gh api --method GET "$endpoint")
|
||||||
|
else
|
||||||
|
TAGS=$(curl -sfL "https://api.github.com$endpoint")
|
||||||
|
fi
|
||||||
|
|
||||||
# filter out some commonly known annoyances
|
# filter out some commonly known annoyances
|
||||||
# TODO add more
|
# TODO add more
|
||||||
|
|
@ -105,6 +110,12 @@ for pkg in $packages; do
|
||||||
filter_out beta
|
filter_out beta
|
||||||
filter_out rc
|
filter_out rc
|
||||||
|
|
||||||
|
# openssl
|
||||||
|
if [ "$PACKAGE" = openssl ]; then
|
||||||
|
filter_out rsaref
|
||||||
|
filter_in "openssl-"
|
||||||
|
fi
|
||||||
|
|
||||||
# Add package-specific overrides here, e.g. here for fmt:
|
# Add package-specific overrides here, e.g. here for fmt:
|
||||||
[ "$PACKAGE" != fmt ] || filter_out v0.11
|
[ "$PACKAGE" != fmt ] || filter_out v0.11
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue