mirror of
https://github.com/ironfox-oss/IronFox.git
synced 2026-09-16 16:32:45 -04:00
fix: Clean-up and update release handling (specifically for release notes)
Notably: - Changes are now specified directly at `CHANGELOG.md` (instead of just in the PR) - Release notes and information are now uploaded to `https://ironfoxoss.org/releases` (So we can now just link to/use this page for releases directly, instead of using GitLab) Signed-off-by: celenity <celenity@celenity.dev>
This commit is contained in:
4 files changed
+240
-88
No files matched your search
+136
-87
@@ -26,7 +26,40 @@ verify_file_with_env "${IRONFOX_RELEASES_S3_BUCKET_NAME_FILE}" 'IRONFOX_RELEASES
|
||||
verify_file_with_env "${IRONFOX_RELEASES_S3_ENDPOINT_FILE}" 'IRONFOX_RELEASES_S3_ENDPOINT_FILE' || exit 1
|
||||
verify_file_with_env "${IRONFOX_RELEASES_S3_SECRET_KEY_FILE}" 'IRONFOX_RELEASES_S3_SECRET_KEY_FILE' || exit 1
|
||||
|
||||
readonly GENERIC_PACKAGES_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic"
|
||||
# Constants
|
||||
|
||||
# Base releases URL
|
||||
readonly IRONFOX_RELEASES_URL='https://releases.ironfoxoss.org'
|
||||
readonly IRONFOX_RELEASES_BASE_URL="${IRONFOX_RELEASES_URL}/ironfox/releases/${IRONFOX_VERSION}"
|
||||
|
||||
# GitLab
|
||||
readonly IRONFOX_GITLAB_API_URL='https://gitlab.com/api/v4'
|
||||
readonly IRONFOX_GITLAB_PROJECT_ID='65779408'
|
||||
readonly IRONFOX_GITLAB_GENERIC_PACKAGES_URL="${IRONFOX_GITLAB_API_URL}/projects/${IRONFOX_GITLAB_PROJECT_ID}/packages/generic"
|
||||
|
||||
# Final release notes file
|
||||
readonly IRONFOX_RELEASE_NOTES="${IRONFOX_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-release-notes.md"
|
||||
|
||||
# Artifacts
|
||||
readonly IRONFOX_APK_ARM64="${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-arm64-v8a.apk"
|
||||
readonly IRONFOX_APK_ARM="${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-armeabi-v7a.apk"
|
||||
readonly IRONFOX_APK_X86_64="${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-x86_64.apk"
|
||||
readonly IRONFOX_APK_UNIVERSAL="${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-universal.apk"
|
||||
readonly IRONFOX_APKSET="${IRONFOX_APKS_ARTIFACTS}/ironfox-${IRONFOX_VERSION}.apks"
|
||||
|
||||
# Ensure we have our artifacts
|
||||
verify_file "${IRONFOX_APK_ARM64}" || exit 1
|
||||
verify_file "${IRONFOX_APK_ARM}" || exit 1
|
||||
verify_file "${IRONFOX_APK_X86_64}" || exit 1
|
||||
verify_file "${IRONFOX_APK_UNIVERSAL}" || exit 1
|
||||
verify_file "${IRONFOX_APKSET}" || exit 1
|
||||
|
||||
# Artifact SHA512sums
|
||||
readonly IRONFOX_ARM64_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARM64}" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_ARM_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARM}" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_X86_64_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_X86_64}" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_UNIVERSAL_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_UNIVERSAL}" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_BUNDLE_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APKSET}" | "${IRONFOX_AWK}" '{print $1}')
|
||||
|
||||
function upload_to_package_registry() {
|
||||
local -r upload_file="$1"
|
||||
@@ -34,7 +67,7 @@ function upload_to_package_registry() {
|
||||
local -r upload_file_name="$("${IRONFOX_BASENAME}" "${upload_file}")"
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --no-verbose --header "PRIVATE-TOKEN: ${GITLAB_CI_API_TOKEN}" \
|
||||
--upload-file "${upload_file}" \
|
||||
"${GENERIC_PACKAGES_URL}/${upload_package_name}/${IRONFOX_VERSION}/${upload_file_name}"
|
||||
"${IRONFOX_GITLAB_GENERIC_PACKAGES_URL}/${upload_package_name}/${IRONFOX_VERSION}/${upload_file_name}"
|
||||
}
|
||||
|
||||
# Pushes a file to S3
|
||||
@@ -73,6 +106,9 @@ function push_to_s3() {
|
||||
*.json)
|
||||
local -r mime_type='application/json'
|
||||
;;
|
||||
*.md)
|
||||
local -r mime_type='text/markdown'
|
||||
;;
|
||||
*.txt)
|
||||
local -r mime_type='text/plain'
|
||||
;;
|
||||
@@ -137,13 +173,6 @@ function add_sha512sum() {
|
||||
|
||||
"${IRONFOX_MKDIR}" -vp "${IRONFOX_BUILD}"
|
||||
|
||||
readonly RELEASE_NOTES_FILE="${IRONFOX_BUILD}/release-notes.md"
|
||||
readonly CHECKSUMS_FILE="${IRONFOX_BUILD}/asset-checksums.txt"
|
||||
readonly RELEASE_FILE="${IRONFOX_BUILD}/release.yml"
|
||||
|
||||
echo -n "" > "${RELEASE_NOTES_FILE}"
|
||||
echo -n "" > "${CHECKSUMS_FILE}"
|
||||
|
||||
declare -a assets
|
||||
function upload_asset() {
|
||||
local -r asset_package_name="$1"
|
||||
@@ -151,44 +180,109 @@ function upload_asset() {
|
||||
local -r asset_file="$3"
|
||||
local -r asset_file_name="$("${IRONFOX_BASENAME}" "${asset_file}")"
|
||||
|
||||
echo "\`${asset_file_name}\`: " >> "${CHECKSUMS_FILE}"
|
||||
echo "\`\`\`text" >> "${CHECKSUMS_FILE}"
|
||||
"${IRONFOX_SHASUM}" -a 512 -b "${asset_file}" | "${IRONFOX_CUT}" -d ' ' -f 1 >> "${CHECKSUMS_FILE}"
|
||||
echo "\`\`\`" >> "${CHECKSUMS_FILE}"
|
||||
echo '' >> "${CHECKSUMS_FILE}"
|
||||
upload_to_package_registry "${asset_file}" "${asset_package_name}"
|
||||
push_to_s3 "${asset_file}" "${asset_s3_path}"
|
||||
add_sha512sum "${asset_file}" "${asset_s3_path}"
|
||||
}
|
||||
|
||||
function upload_apk_arm64() {
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/arm64-v8a" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-arm64-v8a.apk"
|
||||
local -r arm64_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-arm64-v8a.apk")"
|
||||
assets+=("{\"name\": \"${arm64_file_name}\",\"url\": \"https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/arm64-v8a/${arm64_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${arm64_file_name}\"}")
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/arm64-v8a" "${IRONFOX_APK_ARM64}"
|
||||
local -r arm64_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARM64}")"
|
||||
assets+=("{\"name\": \"${arm64_file_name}\",\"url\": \"${IRONFOX_RELEASES_BASE_URL}/arm64-v8a/${arm64_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${arm64_file_name}\"}")
|
||||
}
|
||||
|
||||
function upload_apk_arm() {
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/armeabi-v7a" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-armeabi-v7a.apk"
|
||||
local -r arm_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-armeabi-v7a.apk")"
|
||||
assets+=("{\"name\": \"${arm_file_name}\",\"url\": \"https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/armeabi-v7a/${arm_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${arm_file_name}\"}")
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/armeabi-v7a" "${IRONFOX_APK_ARM}"
|
||||
local -r arm_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARM}")"
|
||||
assets+=("{\"name\": \"${arm_file_name}\",\"url\": \"${IRONFOX_RELEASES_BASE_URL}/armeabi-v7a/${arm_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${arm_file_name}\"}")
|
||||
}
|
||||
|
||||
function upload_apk_x86_64() {
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/x86_64" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-x86_64.apk"
|
||||
local -r x86_64_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-x86_64.apk")"
|
||||
assets+=("{\"name\": \"${x86_64_file_name}\",\"url\": \"https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/x86_64/${x86_64_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${x86_64_file_name}\"}")
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/x86_64" "${IRONFOX_APK_X86_64}"
|
||||
local -r x86_64_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_X86_64}")"
|
||||
assets+=("{\"name\": \"${x86_64_file_name}\",\"url\": \"${IRONFOX_RELEASES_BASE_URL}/x86_64/${x86_64_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${x86_64_file_name}\"}")
|
||||
}
|
||||
|
||||
function upload_apk_universal() {
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/universal" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-universal.apk"
|
||||
local -r universal_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-universal.apk")"
|
||||
assets+=("{\"name\": \"${universal_file_name}\",\"url\": \"https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/universal/${universal_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${universal_file_name}\"}")
|
||||
upload_asset 'apk' "ironfox/releases/${IRONFOX_VERSION}/universal" "${IRONFOX_APK_UNIVERSAL}"
|
||||
local -r universal_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APK_UNIVERSAL}")"
|
||||
assets+=("{\"name\": \"${universal_file_name}\",\"url\": \"${IRONFOX_RELEASES_BASE_URL}/universal/${universal_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${universal_file_name}\"}")
|
||||
}
|
||||
|
||||
function upload_apkset() {
|
||||
upload_asset 'apkset' "ironfox/releases/${IRONFOX_VERSION}/bundle" "${IRONFOX_APKS_ARTIFACTS}/ironfox-${IRONFOX_VERSION}.apks"
|
||||
local -r bundle_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APKS_ARTIFACTS}/ironfox-${IRONFOX_VERSION}.apks")"
|
||||
assets+=("{\"name\": \"${bundle_file_name}\",\"url\": \"https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/bundle/${bundle_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${bundle_file_name}\"}")
|
||||
upload_asset 'apkset' "ironfox/releases/${IRONFOX_VERSION}/bundle" "${IRONFOX_APKSET}"
|
||||
local -r bundle_file_name="$("${IRONFOX_BASENAME}" "${IRONFOX_APKSET}")"
|
||||
assets+=("{\"name\": \"${bundle_file_name}\",\"url\": \"${IRONFOX_RELEASES_BASE_URL}/bundle/${bundle_file_name}\",\"link_type\": \"package\",\"direct_asset_path\": \"/${bundle_file_name}\"}")
|
||||
}
|
||||
|
||||
# Create release notes
|
||||
function create_release_notes() {
|
||||
# Ensure our changelog (for release-specific changes) exists
|
||||
local -r IRONFOX_CHANGELOG_FILE="${IRONFOX_ROOT}/CHANGELOG.md"
|
||||
verify_file "${IRONFOX_CHANGELOG_FILE}" || exit 1
|
||||
|
||||
# Ensure our release template exists
|
||||
local -r IRONFOX_RELEASE_TEMPLATE="${IRONFOX_TEMPLATES}/release-notes.md"
|
||||
verify_file "${IRONFOX_RELEASE_TEMPLATE}" || exit 1
|
||||
|
||||
local -r IRONFOX_RELEASE_NOTES_TEMP="${IRONFOX_TEMP}/ironfox-${IRONFOX_VERSION}-release-notes-temp.md"
|
||||
"${IRONFOX_RM}" -f "${IRONFOX_RELEASE_NOTES}" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
"${IRONFOX_MKDIR}" -p "${IRONFOX_ARTIFACTS}" "${IRONFOX_TEMP}"
|
||||
"${IRONFOX_CP}" -f "${IRONFOX_RELEASE_TEMPLATE}" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
# Set our version
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_VERSION}|${IRONFOX_VERSION}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
# Set the previous (current) version
|
||||
local -r IRONFOX_PREVIOUS_VERSION=$("${IRONFOX_CAT}" "${IRONFOX_ROOT}/previous_release.txt" | "${IRONFOX_XARGS}")
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_PREVIOUS_VERSION}|${IRONFOX_PREVIOUS_VERSION}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
# Set our SHA512sums
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM64_SHA512SUM}|${IRONFOX_ARM64_SHA512SUM}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM_SHA512SUM}|${IRONFOX_ARM_SHA512SUM}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_X86_64_SHA512SUM}|${IRONFOX_X86_64_SHA512SUM}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_UNIVERSAL_SHA512SUM}|${IRONFOX_UNIVERSAL_SHA512SUM}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_BUNDLE_SHA512SUM}|${IRONFOX_BUNDLE_SHA512SUM}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
# Set CI commit + job ID
|
||||
"${IRONFOX_SED}" -i "s|{CI_COMMIT_SHA}|${CI_COMMIT_SHA}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{CI_COMMIT_SHORT_SHA}|${CI_COMMIT_SHORT_SHA}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
"${IRONFOX_SED}" -i "s|{CI_JOB_ID}|${CI_JOB_ID}|g" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
# Add release-specific changes
|
||||
local -r IRONFOX_CHANGELOG=$("${IRONFOX_CAT}" "${IRONFOX_CHANGELOG_FILE}")
|
||||
{
|
||||
echo "# IronFox ${IRONFOX_VERSION}"
|
||||
echo '____'
|
||||
echo ''
|
||||
echo '## Changes'
|
||||
echo ''
|
||||
"${IRONFOX_CAT}" "${IRONFOX_ROOT}/CHANGELOG.md"
|
||||
echo ''
|
||||
"${IRONFOX_CAT}" "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
} >> "${IRONFOX_RELEASE_NOTES}"
|
||||
|
||||
"${IRONFOX_RM}" -f "${IRONFOX_RELEASE_NOTES_TEMP}"
|
||||
|
||||
echo_green_text "SUCCESS: Created release notes for IronFox: ${IRONFOX_VERSION}"
|
||||
}
|
||||
|
||||
# Create our universal updates.json
|
||||
## (ex. used by Obtainium)
|
||||
function create_universal_json() {
|
||||
"${IRONFOX_CP}" -f "${IRONFOX_TEMPLATES}/updates.json" "${IRONFOX_ROOT}/updates.json"
|
||||
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_VERSION}|${IRONFOX_VERSION}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|ironfox-{IRONFOX_VERSION}|ironfox-${IRONFOX_VERSION}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM64_SHA512SUM}|${IRONFOX_ARM64_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM_SHA512SUM}|${IRONFOX_ARM_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_X86_64_SHA512SUM}|${IRONFOX_X86_64_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_UNIVERSAL_SHA512SUM}|${IRONFOX_UNIVERSAL_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_BUNDLE_SHA512SUM}|${IRONFOX_BUNDLE_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
|
||||
push_to_s3 "${IRONFOX_ROOT}/updates.json" 'ironfox/releases'
|
||||
add_sha512sum "${IRONFOX_ROOT}/updates.json" 'ironfox/releases'
|
||||
}
|
||||
|
||||
# Upload packages to package registry
|
||||
@@ -200,28 +294,12 @@ upload_apkset
|
||||
|
||||
# Update our universal updates.json file
|
||||
## (ex. used by Obtainium)
|
||||
"${IRONFOX_CP}" -f "${IRONFOX_TEMPLATES}/updates.json" "${IRONFOX_ROOT}/updates.json"
|
||||
|
||||
readonly IRONFOX_ARM64_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-arm64-v8a.apk" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_ARM_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-armeabi-v7a.apk" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_X86_64_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-x86_64.apk" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_UNIVERSAL_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APK_ARTIFACTS}/ironfox-${IRONFOX_VERSION}-universal.apk" | "${IRONFOX_AWK}" '{print $1}')
|
||||
readonly IRONFOX_BUNDLE_SHA512SUM=$("${IRONFOX_SHASUM}" -a 512 "${IRONFOX_APKS_ARTIFACTS}/ironfox-${IRONFOX_VERSION}.apks" | "${IRONFOX_AWK}" '{print $1}')
|
||||
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_VERSION}|${IRONFOX_VERSION}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|ironfox-{IRONFOX_VERSION}|ironfox-${IRONFOX_VERSION}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM64_SHA512SUM}|${IRONFOX_ARM64_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_ARM_SHA512SUM}|${IRONFOX_ARM_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_X86_64_SHA512SUM}|${IRONFOX_X86_64_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_UNIVERSAL_SHA512SUM}|${IRONFOX_UNIVERSAL_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
"${IRONFOX_SED}" -i "s|{IRONFOX_BUNDLE_SHA512SUM}|${IRONFOX_BUNDLE_SHA512SUM}|" "${IRONFOX_ROOT}/updates.json"
|
||||
|
||||
push_to_s3 "${IRONFOX_ROOT}/updates.json" 'ironfox/releases'
|
||||
create_universal_json
|
||||
|
||||
# Because we now upload all releases to releases.ironfoxoss.org, we only want to keep the last 3 releases in ex. F-Droid
|
||||
## In order to do so, we need to store/upload the current and prior 2 versions of IronFox as text files
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --location 'https://releases.ironfoxoss.org/ironfox/releases/latest_release.txt' --output "${IRONFOX_ROOT}/current-latest_release.txt"
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --location 'https://releases.ironfoxoss.org/ironfox/releases/previous_release.txt' --output "${IRONFOX_ROOT}/current-previous_release.txt"
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --location "${IRONFOX_RELEASES_URL}/ironfox/releases/latest_release.txt" --output "${IRONFOX_ROOT}/current-latest_release.txt"
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --location "${IRONFOX_RELEASES_URL}/ironfox/releases/previous_release.txt" --output "${IRONFOX_ROOT}/current-previous_release.txt"
|
||||
|
||||
echo -n "${IRONFOX_VERSION}" > "${IRONFOX_ROOT}/latest_release.txt"
|
||||
"${IRONFOX_CP}" "${IRONFOX_ROOT}/current-latest_release.txt" "${IRONFOX_ROOT}/previous_release.txt"
|
||||
@@ -236,52 +314,23 @@ add_sha512sum "${IRONFOX_ROOT}/previous_release.txt" 'ironfox/releases'
|
||||
push_to_s3 "${IRONFOX_ROOT}/previous_release.txt" 'ironfox/releases'
|
||||
add_sha512sum "${IRONFOX_ROOT}/previous_previous_release.txt" 'ironfox/releases'
|
||||
|
||||
{
|
||||
readonly changelog_file="${IRONFOX_ROOT}/changelogs/${IRONFOX_VERSION}.md"
|
||||
if [[ -f "${changelog_file}" ]]; then
|
||||
"${IRONFOX_CAT}" "${changelog_file}"
|
||||
fi
|
||||
# Create release notes
|
||||
## (NOTE: This needs to run after we have previous_release.txt above, so that we can properly set the previous version)
|
||||
create_release_notes
|
||||
|
||||
echo "# IronFox ${IRONFOX_VERSION}"
|
||||
echo '____'
|
||||
echo ''
|
||||
|
||||
echo '## Changes'
|
||||
echo ''
|
||||
echo '- '
|
||||
echo ''
|
||||
|
||||
echo '## App Verification'
|
||||
echo "To verify the integrity/authenticity of your IronFox installation, in addition to [the checksums](#checksums) provided below, we highly recommend using [\`AppVerifier\`](https://github.com/soupslurpr/AppVerifier):"
|
||||
echo ''
|
||||
echo "Package ID: \`org.ironfoxoss.ironfox\`"
|
||||
echo ''
|
||||
echo 'SHA256 hash of signing certificate:'
|
||||
echo "\`\`\`text"
|
||||
echo 'C5:E2:91:B5:A5:71:F9:C8:CD:9A:97:99:C2:C9:4E:02:EC:97:03:94:88:93:F2:CA:75:6D:67:B9:42:04:F9:04'
|
||||
echo "\`\`\`"
|
||||
echo ''
|
||||
echo '---'
|
||||
echo ''
|
||||
|
||||
echo '## Checksums'
|
||||
echo ''
|
||||
"${IRONFOX_CAT}" ${CHECKSUMS_FILE}
|
||||
echo ''
|
||||
|
||||
echo '---'
|
||||
echo "_This release was automatically generated by the CI/CD pipeline ([view pipeline](${CI_JOB_URL})) and is guaranteed to be generated from commit [${CI_COMMIT_SHORT_SHA}](${CI_PROJECT_URL}/-/tree/${CI_COMMIT_SHA})._"
|
||||
echo ''
|
||||
} >> "${RELEASE_NOTES_FILE}"
|
||||
# Push release notes
|
||||
push_to_s3 "${IRONFOX_RELEASE_NOTES}" "ironfox/releases/${IRONFOX_VERSION}"
|
||||
add_sha512sum "${IRONFOX_RELEASE_NOTES}" "ironfox/releases/${IRONFOX_VERSION}"
|
||||
|
||||
# Add assets to GitLab release
|
||||
{
|
||||
echo "---"
|
||||
echo "name: IronFox v${IRONFOX_VERSION}"
|
||||
echo "name: IronFox ${IRONFOX_VERSION}"
|
||||
echo "tag-name: v${IRONFOX_VERSION}"
|
||||
echo "description: |"
|
||||
"${IRONFOX_AWK}" '{print " " $0}' < "${RELEASE_NOTES_FILE}"
|
||||
"${IRONFOX_AWK}" '{print " " $0}' < "${IRONFOX_RELEASE_NOTES}"
|
||||
echo "assets-link:"
|
||||
for asset in "${assets[@]}"; do
|
||||
echo " - '${asset}'"
|
||||
done
|
||||
} > "${RELEASE_FILE}"
|
||||
} > "${IRONFOX_BUILD}/release.yml"
|
||||
@@ -35,7 +35,44 @@ source "${IRONFOX_PYENV}"
|
||||
"${IRONFOX_SED}" -i "s/IRONFOX_VERSION = .*/IRONFOX_VERSION = \"${IRONFOX_VERSION}\";/g" \
|
||||
./src/version.ts
|
||||
|
||||
# Update release notes
|
||||
"${IRONFOX_CURL}" ${IRONFOX_CURL_FLAGS} --location "https://releases.ironfoxoss.org/ironfox/releases/${IRONFOX_VERSION}/ironfox-${IRONFOX_VERSION}-release-notes.md" --output "${IRONFOX_VERSION}-temp.md"
|
||||
|
||||
"${IRONFOX_CP}" -f ./release-notes.md ./release-notes-temp.md
|
||||
"${IRONFOX_RM}" -f ./release-notes.md
|
||||
|
||||
"${IRONFOX_SED}" -i "s|# IronFox ${IRONFOX_VERSION}||g" "${IRONFOX_VERSION}-temp.md"
|
||||
{
|
||||
echo "<div id='${IRONFOX_VERSION}'>"
|
||||
echo " <h1>${IRONFOX_VERSION}</h1>"
|
||||
echo "</div>"
|
||||
"${IRONFOX_CAT}" "${IRONFOX_VERSION}-temp.md"
|
||||
echo ''
|
||||
} >> "${IRONFOX_VERSION}.md"
|
||||
"${IRONFOX_RM}" -f "${IRONFOX_VERSION}-temp.md"
|
||||
|
||||
"${IRONFOX_CAT}" "${IRONFOX_VERSION}.md" ./release-notes-temp.md > ./release-notes.md
|
||||
"${IRONFOX_RM}" -f "${IRONFOX_VERSION}.md"
|
||||
"${IRONFOX_RM}" -f ./release-notes-temp.md
|
||||
|
||||
"${IRONFOX_RM}" -f ./src/content/docs/releases.mdx
|
||||
{
|
||||
echo '---'
|
||||
echo 'title: IronFox releases'
|
||||
echo '---'
|
||||
echo ''
|
||||
echo 'import { IRONFOX_VERSION } from "../../version.ts";'
|
||||
echo 'import MarkdownLayout from "../../layouts/MarkdownLayout.astro";'
|
||||
echo ''
|
||||
echo '<MarkdownLayout>'
|
||||
echo ''
|
||||
echo '> Latest release: <a href={`https://ironfoxoss.org/releases/#${IRONFOX_VERSION}`} rel="noopener noreferrer me">{IRONFOX_VERSION}</a>'
|
||||
echo ''
|
||||
"${IRONFOX_CAT}" ./release-notes.md
|
||||
echo '</MarkdownLayout>'
|
||||
} >> ./src/content/docs/releases.mdx
|
||||
|
||||
# Commit changes
|
||||
"${IRONFOX_GIT}" add src
|
||||
"${IRONFOX_GIT}" add src release-notes.md
|
||||
"${IRONFOX_GIT}" commit -m "feat: update patch docs to reflect ironfox-oss/IronFox@${CI_COMMIT_SHA}"
|
||||
"${IRONFOX_GIT}" push origin "HEAD:${TARGET_REPO_BRANCH}"
|
||||
Reference in new issue
Block a user