diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc38dcd7fe6..611ee887112 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,9 +80,42 @@ jobs: echo "DOCKER_TAG: ${DOCKER_TAG}" echo "gh-docker-tag=${DOCKER_TAG}" >> $GITHUB_OUTPUT + notify-draft-services: + name: 🚀 Notify external services - draft + runs-on: ubuntu-20.04 + needs: [release-versions] + if: github.event_name == 'release' + steps: + - name: Register release on cloud as Draft + run: | + REPO_VERSION=$(node -p "require('./package.json').version") + + if [[ '${{ github.event_name }}' = 'release' ]]; then + GIT_TAG="${GITHUB_REF#*tags/}" + GIT_BRANCH="" + ARTIFACT_NAME="${REPO_VERSION}" + RC_VERSION=$GIT_TAG + + if [[ '${{ needs.release-versions.outputs.release }}' = 'release-candidate' ]]; then + RC_RELEASE=candidate + elif [[ '${{ needs.release-versions.outputs.release }}' = 'latest' ]]; then + RC_RELEASE=stable + fi + else + GIT_TAG="" + GIT_BRANCH="${GITHUB_REF#*heads/}" + ARTIFACT_NAME="${REPO_VERSION}.$GITHUB_SHA" + RC_VERSION="${REPO_VERSION}" + RC_RELEASE=develop + fi; + + curl -H "Content-Type: application/json" -H "X-Update-Token: $UPDATE_TOKEN" -d \ + "{\"nodeVersion\": \"${{ needs.release-versions.outputs.node-version }}\", \"compatibleMongoVersions\": [\"4.4\", \"5.0\", \"6.0\"], \"commit\": \"$GITHUB_SHA\", \"tag\": \"$RC_VERSION\", \"branch\": \"$GIT_BRANCH\", \"artifactName\": \"$ARTIFACT_NAME\", \"releaseType\": \"draft\", \"draftAs\": \"$RC_RELEASE\"}" \ + https://releases.rocket.chat/update + packages-build: name: 📦 Build Packages - needs: [release-versions] + needs: [release-versions, notify-draft-services] runs-on: ubuntu-20.04 steps: - name: Github Info diff --git a/apps/meteor/packages/rocketchat-version/plugin/compile-version.js b/apps/meteor/packages/rocketchat-version/plugin/compile-version.js index 084f14a1abd..268f60885d9 100644 --- a/apps/meteor/packages/rocketchat-version/plugin/compile-version.js +++ b/apps/meteor/packages/rocketchat-version/plugin/compile-version.js @@ -11,8 +11,13 @@ class VersionCompiler { async processFilesForTarget(files) { const processVersionFile = async function (file) { const data = await new Promise((resolve, reject) => { + const currentVersion = + JSON.parse(fs.readFileSync(path.resolve(process.cwd(), './package.json'), { encoding: 'utf8' }))?.version || ''; + + const url = `https://releases.rocket.chat/v2/server/supportedVersions?includeDraftType=stable&includeDraftTag=${currentVersion}`; + https - .get('https://releases.rocket.chat/v2/server/supportedVersions', function (response) { + .get(url, function (response) { let data = ''; response.on('data', function (chunk) { data += chunk;