From 352530b92abd8de4e0aa0d0c78a62466c1b9b01a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 17:05:42 +0000 Subject: [PATCH 1/7] Initial plan From 1f6787063d700afde2f45ddcbb05160a62c129a5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 17:15:49 +0000 Subject: [PATCH 2/7] Update release flow with versions.dmm generation and vlatest tag support Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com> --- .github/workflows/release.yml | 118 ++++++++++++++++++++++++++++++++-- manifest.dmm | 18 ++---- versions.dmm | 2 - 3 files changed, 121 insertions(+), 17 deletions(-) delete mode 100644 versions.dmm diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8288517..d418b55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,10 +94,18 @@ jobs: cp $DMF_DIR/dmffs.dmf release_package/ cp $DMF_DIR/dmffs_version.txt release_package/ cp $DMFC_DIR/dmffs.dmfc release_package/ + # Copy .dmd file if it exists + if [ -f $DMF_DIR/dmffs.dmd ]; then + cp $DMF_DIR/dmffs.dmd release_package/ + fi cp $DMF_DIR/make_dmffs.dmf release_package/ cp $DMF_DIR/make_dmffs_version.txt release_package/ cp $DMFC_DIR/make_dmffs.dmfc release_package/ + # Copy .dmd file if it exists + if [ -f $DMF_DIR/make_dmffs.dmd ]; then + cp $DMF_DIR/make_dmffs.dmd release_package/ + fi # Copy documentation and license cp README.md release_package/ @@ -124,9 +132,54 @@ jobs: path: dmffs-${{ github.event.release.tag_name }}-*.zip retention-days: 1 + generate-versions-manifest: + name: Generate versions.dmm + needs: discover-architectures + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history to get all tags + + - name: Generate versions.dmm + run: | + set -e + echo "# List of available versions for dmffs modules" > versions.dmm + echo "# Generated automatically by CI" >> versions.dmm + echo "" >> versions.dmm + + # Get all version tags (starting with 'v') and extract version numbers + VERSIONS=$(git tag -l 'v*' | sed 's/^v//' | sort -V | tr '\n' ' ') + + if [ -z "$VERSIONS" ]; then + echo "Warning: No version tags found" + VERSIONS="${{ github.event.release.tag_name }}" + VERSIONS="${VERSIONS#v}" + fi + + echo "Found versions: $VERSIONS" + + # Add $version-available directives for both modules + echo "\$version-available dmffs $VERSIONS" >> versions.dmm + echo "\$version-available make_dmffs $VERSIONS" >> versions.dmm + + echo "Generated versions.dmm:" + cat versions.dmm + + - name: Upload versions.dmm as artifact + uses: actions/upload-artifact@v4 + with: + name: versions-manifest + path: versions.dmm + retention-days: 1 + upload-release-assets: name: Upload Release Assets - needs: build-release + needs: [build-release, generate-versions-manifest] runs-on: ubuntu-latest permissions: contents: write @@ -142,7 +195,7 @@ jobs: echo "Downloaded artifacts:" ls -lR artifacts/ - - name: Upload release assets + - name: Upload release assets to versioned tag shell: bash env: GH_TOKEN: ${{ github.token }} @@ -158,11 +211,68 @@ jobs: fi for zip_file in "${zip_files[@]}"; do - echo "Uploading $zip_file..." + echo "Uploading $zip_file to ${{ github.event.release.tag_name }}..." + gh release upload ${{ github.event.release.tag_name }} \ + "$zip_file" \ + --repo ${{ github.repository }} \ + --clobber + done + + # Upload versions.dmm to the versioned release + if [ -f artifacts/versions-manifest/versions.dmm ]; then + echo "Uploading versions.dmm to ${{ github.event.release.tag_name }}..." gh release upload ${{ github.event.release.tag_name }} \ + artifacts/versions-manifest/versions.dmm \ + --repo ${{ github.repository }} \ + --clobber + fi + + echo "Successfully uploaded ${#zip_files[@]} artifact(s) to ${{ github.event.release.tag_name }}" + + - name: Create or update latest release + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + set -e + + # Check if vlatest release exists + if gh release view vlatest --repo ${{ github.repository }} >/dev/null 2>&1; then + echo "Release vlatest exists, deleting it..." + gh release delete vlatest --repo ${{ github.repository }} --yes + fi + + # Create new vlatest release + echo "Creating vlatest release..." + gh release create vlatest \ + --repo ${{ github.repository }} \ + --title "Latest Release (based on ${{ github.event.release.tag_name }})" \ + --notes "This release always points to the latest stable version. Currently based on ${{ github.event.release.tag_name }}." + + - name: Upload release assets to latest tag + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + set -e + shopt -s nullglob + zip_files=(artifacts/release-*/*.zip) + + for zip_file in "${zip_files[@]}"; do + echo "Uploading $zip_file to vlatest..." + gh release upload vlatest \ "$zip_file" \ --repo ${{ github.repository }} \ --clobber done - echo "Successfully uploaded ${#zip_files[@]} artifact(s)" + # Upload versions.dmm to the latest release + if [ -f artifacts/versions-manifest/versions.dmm ]; then + echo "Uploading versions.dmm to vlatest..." + gh release upload vlatest \ + artifacts/versions-manifest/versions.dmm \ + --repo ${{ github.repository }} \ + --clobber + fi + + echo "Successfully uploaded ${#zip_files[@]} artifact(s) to vlatest" diff --git a/manifest.dmm b/manifest.dmm index f5aa312..4966491 100644 --- a/manifest.dmm +++ b/manifest.dmm @@ -1,17 +1,13 @@ # =============== Main module =============== -# Main module -$include https://raw.githubusercontent.com/choco-technologies/dmffs/refs/heads/master/versions.dmm +# Main module manifest for dmffs +# This file provides module download URLs and version information +# Include dynamically generated versions list from latest release +$include https://github.com/choco-technologies/dmffs/releases/download/vlatest/versions.dmm + +# Module entries with version placeholder - will be expanded by $version-available dmffs https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip # ============== Additional modules ============== # Tools -make_dmffs https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip - -# ================================================================= -# == LEGACY MODULES == -# ================================================================= -$dmod-version 0.1 - -dmffs@1.0 https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip -make_dmffs@1.0 https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip \ No newline at end of file +make_dmffs https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip \ No newline at end of file diff --git a/versions.dmm b/versions.dmm deleted file mode 100644 index 2745692..0000000 --- a/versions.dmm +++ /dev/null @@ -1,2 +0,0 @@ -# List of available versions -$version-available dmffs 1.0 1.1 \ No newline at end of file From 94d06ea6e3f7e5c3c45ae32654bc2f02818067a9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 17:18:49 +0000 Subject: [PATCH 3/7] Fix trailing newline and whitespace issues Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- manifest.dmm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d418b55..e5557e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -153,7 +153,7 @@ jobs: echo "" >> versions.dmm # Get all version tags (starting with 'v') and extract version numbers - VERSIONS=$(git tag -l 'v*' | sed 's/^v//' | sort -V | tr '\n' ' ') + VERSIONS=$(git tag -l 'v*' | sed 's/^v//' | sort -V | tr '\n' ' ' | sed 's/ $//') if [ -z "$VERSIONS" ]; then echo "Warning: No version tags found" diff --git a/manifest.dmm b/manifest.dmm index 4966491..79fafdf 100644 --- a/manifest.dmm +++ b/manifest.dmm @@ -10,4 +10,4 @@ dmffs https://github.com/choco-technologies/dmffs/releases/download/v/d # ============== Additional modules ============== # Tools -make_dmffs https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip \ No newline at end of file +make_dmffs https://github.com/choco-technologies/dmffs/releases/download/v/dmffs-v-.zip From d2484d954b61a1f309442802a1663615c686d1a8 Mon Sep 17 00:00:00 2001 From: JohnAmadis Date: Tue, 18 Nov 2025 18:52:17 +0100 Subject: [PATCH 4/7] Update ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1caebc3..d299e60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: name: Build and Test runs-on: ubuntu-latest container: - image: chocotechnologies/dmod:1.0.3 + image: chocotechnologies/dmod:1.0.4 steps: - name: Checkout code From b75aef3ae88f2f61f2791ae90caa02758c3ffbf1 Mon Sep 17 00:00:00 2001 From: JohnAmadis Date: Tue, 18 Nov 2025 18:52:50 +0100 Subject: [PATCH 5/7] Update release.yml --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e5557e5..3ddc314 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: permissions: contents: read container: - image: chocotechnologies/dmod:1.0.3 + image: chocotechnologies/dmod:1.0.4 outputs: architectures: ${{ steps.list-archs.outputs.architectures }} steps: @@ -49,7 +49,7 @@ jobs: arch_name: ${{ fromJson(needs.discover-architectures.outputs.architectures) }} container: - image: chocotechnologies/dmod:1.0.3 + image: chocotechnologies/dmod:1.0.4 steps: - name: Checkout code From 29129e374452cfe606030d4fed4e2016f19e163d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 18:03:04 +0000 Subject: [PATCH 6/7] Fix CI failure by installing ARM toolchain in release workflow Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com> --- .github/workflows/release.yml | 8 ++++++++ .gitignore | 2 ++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ddc314..d3ebba4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,6 +64,14 @@ jobs: echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Extracted version: $VERSION" + - name: Install ARM toolchain + run: | + set -e + apt-get update -qq + apt-get install -y -qq gcc-arm-none-eabi binutils-arm-none-eabi + echo "ARM toolchain installed:" + arm-none-eabi-gcc --version + - name: Build dmffs for ${{ matrix.arch_name }} run: | set -e diff --git a/.gitignore b/.gitignore index 788d9b3..4ab5f42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Build directories build/ build_*/ +test_build/ +test_arch_build/ _codeql_build_dir/ _codeql_detected_source_root *.dmf From 0f59e17c9e9e18a6ac052c322962b9602dcb2e6b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 18:29:59 +0000 Subject: [PATCH 7/7] Revert ARM toolchain installation as it's not the issue Co-authored-by: JohnAmadis <17320783+JohnAmadis@users.noreply.github.com> --- .github/workflows/release.yml | 8 -------- .gitignore | 2 -- 2 files changed, 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d3ebba4..3ddc314 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,14 +64,6 @@ jobs: echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Extracted version: $VERSION" - - name: Install ARM toolchain - run: | - set -e - apt-get update -qq - apt-get install -y -qq gcc-arm-none-eabi binutils-arm-none-eabi - echo "ARM toolchain installed:" - arm-none-eabi-gcc --version - - name: Build dmffs for ${{ matrix.arch_name }} run: | set -e diff --git a/.gitignore b/.gitignore index 4ab5f42..788d9b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ # Build directories build/ build_*/ -test_build/ -test_arch_build/ _codeql_build_dir/ _codeql_detected_source_root *.dmf