fix(ci): rpm uses aarch64 & x86_64 as convention, which fails the name matching
This commit is contained in:
@@ -5,6 +5,8 @@ permissions:
|
||||
|
||||
env:
|
||||
BUNDLE_NAME: ''
|
||||
DEB_BUNDLE_NAME: ''
|
||||
RPM_BUNDLE_NAME: ''
|
||||
PRODUCT_NAME: 'AIRI'
|
||||
VERSION: ''
|
||||
|
||||
@@ -141,19 +143,26 @@ jobs:
|
||||
name: ${{ env.BUNDLE_NAME }}
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.BUNDLE_NAME }}
|
||||
|
||||
- name: Get Linux Artifact Names (Nightly + Linux Only)
|
||||
if: ${{ github.event_name == 'schedule' && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
working-directory: ./apps/stage-tamagotchi
|
||||
run: |
|
||||
echo "DEB_BUNDLE_NAME=$(pnpm exec tsx scripts/artifacts-metadata.ts ${{ matrix.target }} --get-filename deb)" >> $GITHUB_ENV
|
||||
echo "RPM_BUNDLE_NAME=$(pnpm exec tsx scripts/artifacts-metadata.ts ${{ matrix.target }} --get-filename rpm)" >> $GITHUB_ENV
|
||||
|
||||
- name: Upload Artifacts (Nightly + Linux deb)
|
||||
if: ${{ github.event_name == 'schedule' && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.deb
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.deb
|
||||
name: ${{ env.DEB_BUNDLE_NAME }}
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.DEB_BUNDLE_NAME }}
|
||||
|
||||
- name: Upload Artifacts (Nightly + Linux rpm)
|
||||
if: ${{ github.event_name == 'schedule' && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.rpm
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.rpm
|
||||
name: ${{ env.RPM_BUNDLE_NAME }}
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.RPM_BUNDLE_NAME }}
|
||||
|
||||
# ---------
|
||||
# Workflow Dispatch only
|
||||
@@ -183,6 +192,13 @@ jobs:
|
||||
run: |
|
||||
pnpm run -F @proj-airi/stage-tamagotchi rename-artifacts ${{ matrix.target }} --release ${{ !inputs.build_only && !inputs.artifacts_only }} --tag ${{ inputs.tag }} --auto-tag ${{ !inputs.build_only }}
|
||||
|
||||
- name: Get Linux Artifact Names (Manual + Non-Release + Linux Only)
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && !inputs.build_only && inputs.artifacts_only && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
working-directory: ./apps/stage-tamagotchi
|
||||
run: |
|
||||
echo "DEB_BUNDLE_NAME=$(pnpm exec tsx scripts/artifacts-metadata.ts ${{ matrix.target }} --get-filename deb --release ${{ !inputs.build_only && !inputs.artifacts_only }} --tag ${{ inputs.tag }} --auto-tag ${{ !inputs.build_only }})" >> $GITHUB_ENV
|
||||
echo "RPM_BUNDLE_NAME=$(pnpm exec tsx scripts/artifacts-metadata.ts ${{ matrix.target }} --get-filename rpm --release ${{ !inputs.build_only && !inputs.artifacts_only }} --tag ${{ inputs.tag }} --auto-tag ${{ !inputs.build_only }})" >> $GITHUB_ENV
|
||||
|
||||
- name: Upload Artifacts (Manual + Non-Release + Non-Linux)
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && !inputs.build_only && inputs.artifacts_only && (matrix.os != 'ubuntu-latest' && matrix.os != 'ubuntu-24.04-arm') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -194,15 +210,15 @@ jobs:
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && !inputs.build_only && inputs.artifacts_only && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.deb
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.deb
|
||||
name: ${{ env.DEB_BUNDLE_NAME }}
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.DEB_BUNDLE_NAME }}
|
||||
|
||||
- name: Upload Artifacts (Manual + Non-Release + Linux rpm)
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && !inputs.build_only && inputs.artifacts_only && (matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm') }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.rpm
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-linux-${{ matrix.arch }}.rpm
|
||||
name: ${{ env.RPM_BUNDLE_NAME }}
|
||||
path: apps/stage-tamagotchi/bundle/${{ env.RPM_BUNDLE_NAME }}
|
||||
|
||||
- name: Upload To GitHub Releases (Manual + Overwrite Release)
|
||||
if: ${{ github.event_name == 'workflow_dispatch' && !inputs.build_only && !inputs.artifacts_only }}
|
||||
|
||||
@@ -11,6 +11,11 @@ async function main() {
|
||||
'Rename with version from package.json',
|
||||
{ default: false },
|
||||
)
|
||||
.option(
|
||||
'--get-filename <ext>',
|
||||
'Get the release artifact filename for a specific extension (e.g., deb, rpm, dmg, exe)',
|
||||
{ default: '', type: [String] },
|
||||
)
|
||||
.option(
|
||||
'--auto-tag',
|
||||
'Automatically tag the release with the latest git ref',
|
||||
@@ -46,6 +51,7 @@ async function main() {
|
||||
getBundleName: boolean
|
||||
getProductName: boolean
|
||||
getVersion: boolean
|
||||
getFilename: string[]
|
||||
}
|
||||
|
||||
const target = args.args[0]
|
||||
@@ -53,6 +59,16 @@ async function main() {
|
||||
const filenames = await getFilenames(target, argOptions)
|
||||
console.info(filenames[0].releaseArtifactFilename)
|
||||
}
|
||||
if (argOptions.getFilename && argOptions.getFilename[0]) {
|
||||
const ext = String(argOptions.getFilename[0]).trim()
|
||||
const filenames = await getFilenames(target, argOptions)
|
||||
const match = filenames.find(f => f.extension === ext)
|
||||
if (!match) {
|
||||
console.error(`No artifact found for extension: ${ext}`)
|
||||
process.exit(1)
|
||||
}
|
||||
console.info(match.releaseArtifactFilename)
|
||||
}
|
||||
if (argOptions.getProductName) {
|
||||
const electronBuilderConfig = await getElectronBuilderConfig()
|
||||
console.info(electronBuilderConfig.productName)
|
||||
|
||||
@@ -84,6 +84,34 @@ interface FilenameOutputEntry {
|
||||
version: string
|
||||
}
|
||||
|
||||
function mapArchFor(
|
||||
target: string,
|
||||
ext: string,
|
||||
): string {
|
||||
switch (true) {
|
||||
case target === 'aarch64-unknown-linux-gnu':
|
||||
if (ext === 'rpm') {
|
||||
return 'aarch64'
|
||||
}
|
||||
|
||||
return 'arm64'
|
||||
case target === 'x86_64-unknown-linux-gnu':
|
||||
if (ext === 'rpm') {
|
||||
return 'x86_64'
|
||||
}
|
||||
|
||||
return 'x64'
|
||||
case target === 'aarch64-apple-darwin':
|
||||
return 'arm64'
|
||||
case target === 'x86_64-apple-darwin':
|
||||
return 'x64'
|
||||
case target === 'x86_64-pc-windows-msvc':
|
||||
return 'x64'
|
||||
default:
|
||||
return 'x64'
|
||||
}
|
||||
}
|
||||
|
||||
export async function getFilenames(target: string, options: { release: boolean, autoTag: boolean, tag: string[] }): Promise<FilenameOutputEntry[]> {
|
||||
const electronBuilder = await getElectronBuilderConfig()
|
||||
const version = await getVersion(options)
|
||||
@@ -102,8 +130,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'x86_64-pc-windows-msvc',
|
||||
extension: 'exe',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.nsis?.artifactName!, productName, beforeVersion, 'x64', 'exe'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.nsis?.artifactName!, productName, version, 'x64', 'exe'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.nsis?.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'exe'),
|
||||
'exe',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.nsis?.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'exe'),
|
||||
'exe',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -120,8 +160,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'x86_64-unknown-linux-gnu',
|
||||
extension: 'deb',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, beforeVersion, 'x64', 'deb'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, version, 'x64', 'deb'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'deb'),
|
||||
'deb',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'deb'),
|
||||
'deb',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -136,8 +188,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'x86_64-unknown-linux-gnu',
|
||||
extension: 'rpm',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, beforeVersion, 'x64', 'rpm'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, version, 'x64', 'rpm'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'rpm'),
|
||||
'rpm',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'rpm'),
|
||||
'rpm',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -159,8 +223,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'aarch64-unknown-linux-gnu',
|
||||
extension: 'deb',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, beforeVersion, 'arm64', 'deb'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, version, 'arm64', 'deb'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'deb'),
|
||||
'deb',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'deb'),
|
||||
'deb',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -175,8 +251,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'aarch64-unknown-linux-gnu',
|
||||
extension: 'rpm',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, beforeVersion, 'arm64', 'rpm'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.linux.artifactName!, productName, version, 'arm64', 'rpm'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'rpm'),
|
||||
'rpm',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.linux.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'rpm'),
|
||||
'rpm',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -191,8 +279,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'aarch64-apple-darwin',
|
||||
extension: 'dmg',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.dmg?.artifactName!, productName, beforeVersion, 'arm64', 'dmg'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.dmg?.artifactName!, productName, version, 'arm64', 'dmg'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.dmg?.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'dmg'),
|
||||
'dmg',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.dmg?.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'dmg'),
|
||||
'dmg',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
@@ -202,8 +302,20 @@ export async function getFilenames(target: string, options: { release: boolean,
|
||||
{
|
||||
target: 'x86_64-apple-darwin',
|
||||
extension: 'dmg',
|
||||
outputFilename: applyTemplateOfArtifactName(electronBuilder.dmg?.artifactName!, productName, beforeVersion, 'x64', 'dmg'),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(electronBuilder.dmg?.artifactName!, productName, version, 'x64', 'dmg'),
|
||||
outputFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.dmg?.artifactName!,
|
||||
productName,
|
||||
beforeVersion,
|
||||
mapArchFor(target, 'dmg'),
|
||||
'dmg',
|
||||
),
|
||||
releaseArtifactFilename: applyTemplateOfArtifactName(
|
||||
electronBuilder.dmg?.artifactName!,
|
||||
productName,
|
||||
version,
|
||||
mapArchFor(target, 'dmg'),
|
||||
'dmg',
|
||||
),
|
||||
productName,
|
||||
version,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user