ci: include a .app release, include macOS in release metadata generation

This commit is contained in:
Tyler Wilding 2023-07-31 00:12:44 -04:00
parent d3871838cd
commit 2ce541714e
No known key found for this signature in database
GPG key ID: C500E15300515B67
7 changed files with 38 additions and 18 deletions

View file

@ -173,7 +173,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_ID: ${{needs.create-release.outputs.release_id}}
EXPECTED_ASSET_NAME_REGEXES: '[".*AppImage", ".*AppImage.tar.gz", ".*AppImage.tar.gz.sig", ".*msi", ".*AppImage.msi.zip", ".*msi.zip.sig", ".*dmg", ".*dmg.tar.gz", ".*dmg.tar.gz.sig", "latest.json"]'
EXPECTED_ASSET_NAME_REGEXES: '[".*AppImage", ".*AppImage.tar.gz", ".*AppImage.tar.gz.sig", ".*msi", ".*AppImage.msi.zip", ".*msi.zip.sig", ".*dmg", ".*app", ".*app.tar.gz", ".*app.tar.gz.sig", "latest.json"]'
run: yarn verify-release-assets
publish-release:

View file

@ -1,7 +1,7 @@
{
"name": "opengoal-launcher",
"private": true,
"version": "2.2.0",
"version": "2.1.4",
"type": "module",
"scripts": {
"dev": "vite",

View file

@ -128,7 +128,7 @@ if (launcherRelease === undefined) {
// Get changes for the launcher
const launcherChanges = changesFromBody(launcherRelease.body);
// Retrieve linux and windows signatures
// Retrieve application bundle signatures
const { data: releaseAssets } = await octokit.rest.repos.listReleaseAssets({
owner: "open-goal",
repo: "launcher",
@ -138,6 +138,7 @@ const { data: releaseAssets } = await octokit.rest.repos.listReleaseAssets({
let linuxSignature = "";
let windowsSignature = "";
let macosSignature = "";
for (var i = 0; i < releaseAssets.length; i++) {
const asset = releaseAssets[i];
if (asset.name.toLowerCase().endsWith("appimage.tar.gz.sig")) {
@ -162,9 +163,19 @@ for (var i = 0; i < releaseAssets.length; i++) {
});
windowsSignature = Buffer.from(assetDownload.data).toString();
}
if (asset.name.toLowerCase().endsWith("app.tar.gz.sig")) {
const assetDownload = await octokit.rest.repos.getReleaseAsset({
owner: "open-goal",
repo: "launcher",
asset_id: asset.id,
headers: {
Accept: "application/octet-stream",
},
});
macosSignature = Buffer.from(assetDownload.data).toString();
}
}
// TODO - no macOS yet
const releaseMeta = {
name: launcherRelease.tag_name,
notes: JSON.stringify({
@ -190,6 +201,15 @@ const releaseMeta = {
"",
)}_x64_en-US.msi.zip`,
},
"macos-x86_64": {
signature: windowsSignature,
url: `https://github.com/open-goal/launcher/releases/download/${
launcherRelease.tag_name
}/OpenGOAL-Launcher_${launcherRelease.tag_name.replace(
"v",
"",
)}_x64.app.tar.gz`,
},
},
};
fs.writeFileSync(

View file

@ -54,6 +54,7 @@ const assets = await octokit.rest.repos.listReleaseAssets({
release_id: releaseId,
per_page: 100,
});
console.log(assets);
let expectedAssetNameRegexes = process.env.EXPECTED_ASSET_NAME_REGEXES;
if (expectedAssetNameRegexes === undefined || expectedAssetNameRegexes === "") {
@ -61,20 +62,18 @@ if (expectedAssetNameRegexes === undefined || expectedAssetNameRegexes === "") {
process.exit(1);
}
expectedAssetNameRegexes = JSON.parse(expectedAssetNameRegexes);
let missingAsset = false;
for (const asset of assets.data) {
const assetName = asset.name;
let matchFound = false;
for (const expectedAssetNameRegex of expectedAssetNameRegexes) {
if (new RegExp(expectedAssetNameRegex).test(assetName)) {
matchFound = true;
for (const expectedAssetRegex of expectedAssetNameRegexes) {
let assetMatchFound = false;
for (const asset of assets.data) {
if (new RegExp(expectedAssetRegex).test(asset.name)) {
assetMatchFound = true;
break;
}
}
if (!matchFound) {
if (!assetMatchFound) {
console.log(
`Asset name does not match any of the expected regexes: ${assetName}`,
`No assets matched ${expectedAssetRegex}`,
);
missingAsset = true;
}

2
src-tauri/Cargo.lock generated
View file

@ -2535,7 +2535,7 @@ dependencies = [
[[package]]
name = "opengoal-launcher"
version = "2.2.0"
version = "2.1.4"
dependencies = [
"backtrace",
"chrono",

View file

@ -1,6 +1,6 @@
[package]
name = "opengoal-launcher"
version = "2.2.0" # APP_VERSION
version = "2.1.4" # APP_VERSION
description = "A frontend for the OpenGOAL project"
authors = ["OpenGOAL"]
license = "ISC"

View file

@ -1,7 +1,7 @@
{
"package": {
"productName": "OpenGOAL-Launcher",
"version": "2.2.0"
"version": "2.1.4"
},
"build": {
"distDir": "../dist",
@ -15,8 +15,9 @@
"targets": [
"msi",
"appimage",
"updater",
"dmg"
"app",
"dmg",
"updater"
],
"appimage": {
"bundleMediaFramework": true