diff --git a/.github/workflows/amd64_darwin.yml b/.github/workflows/amd64_darwin.yml index 34ba8b525d..b238616fa7 100644 --- a/.github/workflows/amd64_darwin.yml +++ b/.github/workflows/amd64_darwin.yml @@ -1,72 +1,72 @@ ---- -name: AMD64_DARWIN - -on: - workflow_call: - inputs: - os: - default: macos-latest - required: false - type: string - release: - default: https://github.com/modula3/cm3/releases/download/d5.11.4 - required: false - type: string - bootstrap: - default: cm3-boot-AMD64_LINUX-d5.11.4.tar.xz - required: false - type: string - -jobs: - build-and-test: - runs-on: ${{ inputs.os }} - timeout-minutes: 45 - - strategy: - fail-fast: false - matrix: - backend: [c, gcc] - - env: - CM3_TARGET: AMD64_DARWIN - - steps: - - name: Install prerequisites - run: | - brew update - brew install libxaw libxft ninja xquartz - - - name: Define install location - run: | - echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV - - - name: Install bootstrap release - run: | - mkdir ../bootstrap ../build - curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | gtar Jxf - --directory=../bootstrap --strip-components=1 - cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" - cmake --build ../build - cmake --install ../build - echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH - - - name: Fetch sources - uses: actions/checkout@v2 - - - name: Build all the things - run: | - scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" all - - - name: Run compiler validation suite - continue-on-error: true - run: | - cm3 -DHTML - working-directory: m3-sys/m3tests - - - name: Generate test report - uses: dorny/test-reporter@v1 - with: - name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} - fail-on-error: false - max-annotations: 49 - path: m3-sys/m3tests/m3tests-results.xml - reporter: java-junit +--- +name: AMD64_DARWIN + +on: + workflow_call: + inputs: + os: + default: macos-latest + required: false + type: string + release: + default: https://github.com/VictorMiasnikov/cm3/releases/download/d5.11.9-ZZYYXX-20241118_21-50 + required: false + type: string + bootstrap: + default: cm3-boot-AMD64_LINUX-None.tar.xz + required: false + type: string + +jobs: + build-and-test: + runs-on: ${{ inputs.os }} + timeout-minutes: 55 + + strategy: + fail-fast: false + matrix: + backend: [c, gcc] + + env: + CM3_TARGET: AMD64_DARWIN + + steps: + - name: Install prerequisites + run: | + brew update + brew install libxaw libxft ninja xquartz + + - name: Define install location + run: | + echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV + + - name: Install bootstrap release + run: | + mkdir ../bootstrap ../build + curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | gtar Jxf - --directory=../bootstrap --strip-components=1 + cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" + cmake --build ../build + cmake --install ../build + echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH + + - name: Fetch sources + uses: actions/checkout@v2 + + - name: Build all the things + run: | + scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" all + + - name: Run compiler validation suite + continue-on-error: true + run: | + cm3 -DHTML + working-directory: m3-sys/m3tests + + - name: Generate test report + uses: dorny/test-reporter@v1 + with: + name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} + fail-on-error: false + max-annotations: 49 + path: m3-sys/m3tests/m3tests-results.xml + reporter: java-junit diff --git a/.github/workflows/amd64_linux.yml b/.github/workflows/amd64_linux.yml index 4a95a0f42f..9304323d8f 100644 --- a/.github/workflows/amd64_linux.yml +++ b/.github/workflows/amd64_linux.yml @@ -1,72 +1,72 @@ ---- -name: AMD64_LINUX - -on: - workflow_call: - inputs: - os: - default: ubuntu-latest - required: false - type: string - release: - default: https://github.com/modula3/cm3/releases/download/d5.11.4 - required: false - type: string - bootstrap: - default: cm3-boot-AMD64_LINUX-d5.11.4.tar.xz - required: false - type: string - -jobs: - build-and-test: - runs-on: ${{ inputs.os }} - timeout-minutes: 45 - - strategy: - fail-fast: false - matrix: - backend: [c, gcc] - - env: - CM3_TARGET: AMD64_LINUX - - steps: - - name: Install prerequisites - run: | - sudo apt-get update --quiet - sudo apt-get install --quiet --assume-yes libglu1-mesa-dev ninja-build xorg-dev - - - name: Define install location - run: | - echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV - - - name: Install bootstrap release - run: | - mkdir ../bootstrap ../build - curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | tar Jxf - --directory=../bootstrap --strip-components=1 - cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" - cmake --build ../build - cmake --install ../build - echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH - - - name: Fetch sources - uses: actions/checkout@v2 - - - name: Build all the things - run: | - scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" all - - - name: Run compiler validation suite - continue-on-error: true - run: | - cm3 -DHTML - working-directory: m3-sys/m3tests - - - name: Generate test report - uses: dorny/test-reporter@v1 - with: - name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} - fail-on-error: false - max-annotations: 49 - path: m3-sys/m3tests/m3tests-results.xml - reporter: java-junit +--- +name: AMD64_LINUX + +on: + workflow_call: + inputs: + os: + default: ubuntu-latest + required: false + type: string + release: + default: https://github.com/VictorMiasnikov/cm3/releases/download/d5.11.9-ZZYYXX-20241118_21-50 + required: false + type: string + bootstrap: + default: cm3-boot-AMD64_LINUX-None.tar.xz + required: false + type: string + +jobs: + build-and-test: + runs-on: ${{ inputs.os }} + timeout-minutes: 45 + + strategy: + fail-fast: false + matrix: + backend: [c, gcc] + + env: + CM3_TARGET: AMD64_LINUX + + steps: + - name: Install prerequisites + run: | + sudo apt-get update --quiet + sudo apt-get install --quiet --assume-yes libglu1-mesa-dev ninja-build xorg-dev + + - name: Define install location + run: | + echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV + + - name: Install bootstrap release + run: | + mkdir ../bootstrap ../build + curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | tar Jxf - --directory=../bootstrap --strip-components=1 + cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" + cmake --build ../build + cmake --install ../build + echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH + + - name: Fetch sources + uses: actions/checkout@v2 + + - name: Build all the things + run: | + scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" all + + - name: Run compiler validation suite + continue-on-error: true + run: | + cm3 -DHTML + working-directory: m3-sys/m3tests + + - name: Generate test report + uses: dorny/test-reporter@v1 + with: + name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} + fail-on-error: false + max-annotations: 49 + path: m3-sys/m3tests/m3tests-results.xml + reporter: java-junit diff --git a/.github/workflows/amd64_mingw.yml b/.github/workflows/amd64_mingw.yml index c94936e7aa..8bbd6a5fa0 100644 --- a/.github/workflows/amd64_mingw.yml +++ b/.github/workflows/amd64_mingw.yml @@ -1,65 +1,65 @@ ---- -name: AMD64_MINGW - -on: - workflow_call: - inputs: - os: - default: windows-latest - required: false - type: string - release: - default: https://github.com/modula3/cm3/releases/download/d5.11.4 - required: false - type: string - bootstrap: - default: cm3-boot-AMD64_NT-d5.11.4.7z - required: false - type: string - -jobs: - build: - runs-on: ${{ inputs.os }} - timeout-minutes: 35 - - defaults: - run: - shell: msys2 {0} - - env: - CM3_TARGET: AMD64_MINGW - - steps: - - name: Install command-line tools - uses: msys2/setup-msys2@v2 - with: - msystem: mingw64 - install: >- - mingw-w64-x86_64-cmake - mingw-w64-x86_64-ninja - mingw-w64-x86_64-toolchain - p7zip - wget - - - name: Define install location - run: | - echo CM3_INSTALL="$(pwd)/../install/cm3" >> $GITHUB_ENV - - - name: Install bootstrap release - env: - CMAKE_LIBRARY_PATH: /mingw64/x86_64-w64-mingw32/lib - run: | - mkdir ../build ../install - cd ../install - wget --quiet "${{ inputs.release }}/${{ inputs.bootstrap }}" - 7z x -o.. "${{ inputs.bootstrap }}" - cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" -DCMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}" - cmake --build ../build - cmake --install ../build - - - name: Fetch sources - uses: actions/checkout@v2 - - - name: Build all the things - run: | - python3 scripts/concierge.py full-upgrade all -caltech-other -caltech-parser -m3-scheme +--- +name: AMD64_MINGW + +on: + workflow_call: + inputs: + os: + default: windows-latest + required: false + type: string + release: + default: https://github.com/VictorMiasnikov/cm3/releases/download/d5.11.9-ZZYYXX-20241118_21-50 + required: false + type: string + bootstrap: + default: cm3-boot-AMD64_NT-None.7z + required: false + type: string + +jobs: + build: + runs-on: ${{ inputs.os }} + timeout-minutes: 35 + + defaults: + run: + shell: msys2 {0} + + env: + CM3_TARGET: AMD64_MINGW + + steps: + - name: Install command-line tools + uses: msys2/setup-msys2@v2 + with: + msystem: mingw64 + install: >- + mingw-w64-x86_64-cmake + mingw-w64-x86_64-ninja + mingw-w64-x86_64-toolchain + p7zip + wget + + - name: Define install location + run: | + echo CM3_INSTALL="$(pwd)/../install/cm3" >> $GITHUB_ENV + + - name: Install bootstrap release + env: + CMAKE_LIBRARY_PATH: /mingw64/x86_64-w64-mingw32/lib + run: | + mkdir ../build ../install + cd ../install + wget --quiet "${{ inputs.release }}/${{ inputs.bootstrap }}" + 7z x -o.. "${{ inputs.bootstrap }}" + cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" -DCMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH}" + cmake --build ../build + cmake --install ../build + + - name: Fetch sources + uses: actions/checkout@v2 + + - name: Build all the things + run: | + python3 scripts/concierge.py full-upgrade all -caltech-other -caltech-parser -m3-scheme diff --git a/.github/workflows/i386_linux.yml b/.github/workflows/i386_linux.yml index f3162f745f..eb661447d2 100644 --- a/.github/workflows/i386_linux.yml +++ b/.github/workflows/i386_linux.yml @@ -1,77 +1,77 @@ ---- -name: I386_LINUX -# Cross-compile for i686-linux-gnu on x86_64 host - -on: - workflow_call: - inputs: - os: - default: ubuntu-latest - required: false - type: string - release: - default: https://github.com/modula3/cm3/releases/download/d5.11.4 - required: false - type: string - bootstrap: - default: cm3-boot-I386_LINUX-d5.11.4.tar.xz - required: false - type: string - -jobs: - build-and-test: - runs-on: ${{ inputs.os }} - timeout-minutes: 45 - - strategy: - fail-fast: false - matrix: - backend: [c, gcc] - - env: - CM3_TARGET: I386_LINUX - - steps: - - name: Install prerequisites - run: | - sudo apt-get update --quiet - sudo apt-get install --quiet --assume-yes g++-multilib - sudo apt-get install --quiet --assume-yes g++-multilib-i686-linux-gnu - sudo apt-get install --quiet --assume-yes ninja-build - - - name: Define install location - run: | - echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV - - - name: Fetch sources - uses: actions/checkout@v2 - - - name: Install bootstrap release - env: - CMAKE_TOOLCHAIN_FILE: scripts/i686-linux-gnu.toolchain.cmake - run: | - mkdir ../bootstrap ../build - curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | tar Jxf - --directory=../bootstrap --strip-components=1 - cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" -DCMAKE_TOOLCHAIN_FILE="$(pwd)/${CMAKE_TOOLCHAIN_FILE}" - cmake --build ../build - cmake --install ../build - echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH - - - name: Build all the things - run: | - scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" -DM3CC_TARGET=I386_LINUX headless -m3gdb - - - name: Run compiler validation suite - continue-on-error: true - run: | - cm3 -DHTML - working-directory: m3-sys/m3tests - - - name: Generate test report - uses: dorny/test-reporter@v1 - with: - name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} - fail-on-error: false - max-annotations: 49 - path: m3-sys/m3tests/m3tests-results.xml - reporter: java-junit +--- +name: I386_LINUX +# Cross-compile for i686-linux-gnu on x86_64 host + +on: + workflow_call: + inputs: + os: + default: ubuntu-latest + required: false + type: string + release: + default: https://github.com/VictorMiasnikov/cm3/releases/download/d5.11.9-ZZYYXX-20241118_21-50 + required: false + type: string + bootstrap: + default: cm3-boot-I386_LINUX-None.tar.xz + required: false + type: string + +jobs: + build-and-test: + runs-on: ${{ inputs.os }} + timeout-minutes: 45 + + strategy: + fail-fast: false + matrix: + backend: [c, gcc] + + env: + CM3_TARGET: I386_LINUX + + steps: + - name: Install prerequisites + run: | + sudo apt-get update --quiet + sudo apt-get install --quiet --assume-yes g++-multilib + sudo apt-get install --quiet --assume-yes g++-multilib-i686-linux-gnu + sudo apt-get install --quiet --assume-yes ninja-build + + - name: Define install location + run: | + echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV + + - name: Fetch sources + uses: actions/checkout@v2 + + - name: Install bootstrap release + env: + CMAKE_TOOLCHAIN_FILE: scripts/i686-linux-gnu.toolchain.cmake + run: | + mkdir ../bootstrap ../build + curl --location --silent "${{ inputs.release }}/${{ inputs.bootstrap }}" | tar Jxf - --directory=../bootstrap --strip-components=1 + cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" -DCMAKE_TOOLCHAIN_FILE="$(pwd)/${CMAKE_TOOLCHAIN_FILE}" + cmake --build ../build + cmake --install ../build + echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH + + - name: Build all the things + run: | + scripts/concierge.py full-upgrade --backend "${{ matrix.backend }}" -DM3CC_TARGET=I386_LINUX headless -m3gdb + + - name: Run compiler validation suite + continue-on-error: true + run: | + cm3 -DHTML + working-directory: m3-sys/m3tests + + - name: Generate test report + uses: dorny/test-reporter@v1 + with: + name: ${{ format('m3tests ({0}, {1})', env.CM3_TARGET, matrix.backend) }} + fail-on-error: false + max-annotations: 49 + path: m3-sys/m3tests/m3tests-results.xml + reporter: java-junit diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml index 068312db6a..470700dac0 100644 --- a/.github/workflows/make-release.yml +++ b/.github/workflows/make-release.yml @@ -1,59 +1,59 @@ ---- -name: make release - -on: - push: - tags: ["d*.*.*"] - - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 60 - - env: - BOOTSTRAP: https://github.com/modula3/cm3/releases/download/d5.11.4/cm3-boot-AMD64_LINUX-d5.11.4.tar.xz - - steps: - - name: Install prerequisites - run: | - sudo apt-get update --quiet - sudo apt-get install --quiet --assume-yes ninja-build - - - name: Define install location - run: | - echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV - - - name: Install bootstrap - run: | - mkdir ../bootstrap ../build - curl --location --silent "${BOOTSTRAP}" | tar Jxf - --directory=../bootstrap --strip-components=1 - cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" - cmake --build ../build - cmake --install ../build - echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH - - - name: Fetch sources - uses: actions/checkout@v2 - - - name: Fetch tag - run: git fetch --force origin ${{ github.ref }}:${{ github.ref }} - - - name: Upgrade compiler - run: | - scripts/concierge.py upgrade - - - name: Build distributions - run: | - scripts/concierge.py make-dist --target AMD64_LINUX - scripts/concierge.py make-dist --target AMD64_NT - scripts/concierge.py make-dist --target I386_LINUX - scripts/concierge.py make-dist --target I386_NT - - - name: Create release - uses: softprops/action-gh-release@v1 - with: - draft: true - files: | - *.7z - *.tar.xz +--- +name: make release + +on: + push: + tags: ["d*.*.*"] + + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 60 + + env: + BOOTSTRAP: https://github.com/VictorMiasnikov/cm3/releases/download/d5.11.9-ZZYYXX-20241118_21-50/cm3-boot-AMD64_LINUX-None.tar.xz + + steps: + - name: Install prerequisites + run: | + sudo apt-get update --quiet + sudo apt-get install --quiet --assume-yes ninja-build + + - name: Define install location + run: | + echo CM3_INSTALL="$(pwd)/../install" >> $GITHUB_ENV + + - name: Install bootstrap + run: | + mkdir ../bootstrap ../build + curl --location --silent "${BOOTSTRAP}" | tar Jxf - --directory=../bootstrap --strip-components=1 + cmake -S ../bootstrap -B ../build -G Ninja -DCMAKE_INSTALL_PREFIX="${CM3_INSTALL}" + cmake --build ../build + cmake --install ../build + echo "${CM3_INSTALL}/bin" >> $GITHUB_PATH + + - name: Fetch sources + uses: actions/checkout@v2 + + - name: Fetch tag + run: git fetch --force origin ${{ github.ref }}:${{ github.ref }} + + - name: Upgrade compiler + run: | + scripts/concierge.py upgrade + + - name: Build distributions + run: | + scripts/concierge.py make-dist --target AMD64_LINUX + scripts/concierge.py make-dist --target AMD64_NT + scripts/concierge.py make-dist --target I386_LINUX + scripts/concierge.py make-dist --target I386_NT + + - name: Create release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: | + *.7z + *.tar.xz