diff --git a/.github/workflows/MarketplaceRelease.yml b/.github/workflows/MarketplaceRelease.yml index 341bdd657..d65ceee98 100644 --- a/.github/workflows/MarketplaceRelease.yml +++ b/.github/workflows/MarketplaceRelease.yml @@ -48,6 +48,7 @@ jobs: CPAPI_USERNAME: ${{ secrets.CPAPI_USERNAME }} CPAPI_PASS_PROD: ${{ secrets.CPAPI_PASS_PROD }} TAG: ${{ steps.variables.outputs.tag }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: "Send slack msg on failure" if: ${{ failure() }} uses: ./.github/actions/slack-notification diff --git a/packages/jsActions/mobile-resources-native/package.json b/packages/jsActions/mobile-resources-native/package.json index 31f53d295..66c1da31f 100644 --- a/packages/jsActions/mobile-resources-native/package.json +++ b/packages/jsActions/mobile-resources-native/package.json @@ -54,4 +54,4 @@ "rimraf": "^4.4.1", "rollup": "^2.79.2" } -} \ No newline at end of file +} diff --git a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md index 224e51dd9..6c62b038e 100644 --- a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md +++ b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## [5.2.1] Nanoflow Commons - 2026-3-4 - We fixed an issue with @react-native-community/geolocation where Android devices had difficulty obtaining precise location data. ### Fixed diff --git a/packages/jsActions/nanoflow-actions-native/package.json b/packages/jsActions/nanoflow-actions-native/package.json index cf0402841..93df7df6f 100644 --- a/packages/jsActions/nanoflow-actions-native/package.json +++ b/packages/jsActions/nanoflow-actions-native/package.json @@ -1,7 +1,7 @@ { "name": "nanoflow-actions-native", "moduleName": "Nanoflow Commons", - "version": "5.2.0", + "version": "5.2.1", "license": "Apache-2.0", "copyright": "© Mendix Technology BV 2022. All rights reserved.", "repository": { @@ -37,4 +37,4 @@ "mendix": "~10.0.9976", "rollup": "^2.79.2" } -} +} \ No newline at end of file diff --git a/scripts/release/marketplaceRelease.js b/scripts/release/marketplaceRelease.js index 8657cd544..cbe803bb4 100644 --- a/scripts/release/marketplaceRelease.js +++ b/scripts/release/marketplaceRelease.js @@ -53,22 +53,40 @@ async function uploadModuleToAppStore(pkgName, marketplaceId, version, minimumMX async function getGithubAssetUrl() { console.log("Retrieving informations from Github Tag"); - const request = await fetch("GET", "https://api.github.com/repos/mendix/native-widgets/releases?per_page=10"); - const data = (await request) ?? []; - const releaseId = data.find(info => info.tag_name === process.env.TAG)?.id; - if (!releaseId) { - throw new Error(`Could not find release with tag ${process.env.TAG} on GitHub`); - } - const assetsRequest = await fetch( - "GET", - `https://api.github.com/repos/mendix/native-widgets/releases/${releaseId}/assets` - ); - const assetsData = (await assetsRequest) ?? []; - const downloadUrl = assetsData.find(asset => asset.name.endsWith(".mpk"))?.browser_download_url; - if (!downloadUrl) { - throw new Error(`Could not retrieve MPK url from GitHub release with tag ${process.env.TAG}`); + const tag = process.env.TAG; + const githubHeaders = process.env.GITHUB_TOKEN ? { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } : {}; + + // Use direct tag lookup endpoint instead of listing releases + // This avoids pagination issues and is more reliable + const maxRetries = 5; + const retryDelayMs = 5000; + + for (let attempt = 1; attempt <= maxRetries; attempt++) { + console.log(`Attempt ${attempt}/${maxRetries}: Fetching release for tag ${tag}`); + + const releaseData = await fetch( + "GET", + `https://api.github.com/repos/mendix/native-widgets/releases/tags/${tag}`, + undefined, + githubHeaders + ); + + if (releaseData && releaseData.id) { + console.log(`Found release: ${releaseData.name} (id: ${releaseData.id})`); + const downloadUrl = releaseData.assets?.find(asset => asset.name.endsWith(".mpk"))?.browser_download_url; + if (!downloadUrl) { + throw new Error(`Could not retrieve MPK url from GitHub release with tag ${tag}`); + } + return downloadUrl; + } + + if (attempt < maxRetries) { + console.log(`Release not found yet, waiting ${retryDelayMs / 1000}s before retry...`); + await new Promise(resolve => setTimeout(resolve, retryDelayMs)); + } } - return downloadUrl; + + throw new Error(`Could not find release with tag ${tag} on GitHub after ${maxRetries} attempts`); } async function createDraft(marketplaceId, version, minimumMXVersion) {