diff --git a/.github/workflows/extra-arm.yml b/.github/workflows/extra-arm.yml index 1092a6a190..cc9ba915ce 100644 --- a/.github/workflows/extra-arm.yml +++ b/.github/workflows/extra-arm.yml @@ -27,8 +27,6 @@ jobs: - arch: linux32ARMv7 flavor: newspeak.stack.spur # Some other flavors for backwards compatibility - - arch: linux32ARMv6 - flavor: pharo.cog.spur - arch: linux32ARMv6 flavor: squeak.cog.v3 - arch: linux32ARMv6 @@ -47,18 +45,18 @@ jobs: HEARTBEAT: threaded # itimer not supported steps: - name: Checkout files - uses: actions/checkout@v2 + uses: actions/checkout@v3 # TODO: Can we use the same thirdparty cache for armv6, armv7, and aarch64? Are pre-compiled binaries compatible or organized differently? - - name: Restore build cache - uses: actions/cache@v2 - with: - path: .thirdparty-cache - key: thirdparty-cache-linux-${{ env.ARCH_ARM }} + # - name: Restore build cache + # uses: actions/cache@v3 + # with: + # path: .thirdparty-cache + # key: thirdparty-cache-linux-${{ env.ARCH_ARM }} # https://github.com/marketplace/actions/run-on-architecture - name: Build VM - uses: uraimo/run-on-arch-action@v2.1.1 + uses: uraimo/run-on-arch-action@v2 id: build-vm with: arch: ${{ env.ARCH_ARM }} @@ -68,7 +66,7 @@ jobs: #SEE: https://github.com/uraimo/run-on-arch-action/issues/54 install: | apt update -y - apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libtool automake autoconf libltdl-dev + apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libxrandr-dev libtool automake autoconf libltdl-dev env: | # Copy the entire environment for the docker container ARCH: ${{ env.ARCH }} @@ -96,13 +94,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-release - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'schedule' || (github.event_name == 'push' && endsWith( github.ref , 'Cog' )) with: prerelease: true diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index 72c287abeb..96eada4f9c 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -19,15 +19,16 @@ jobs: arch: - { name: win64x64, os: windows-2019 } - { name: win32x86, os: windows-2019 } - - { name: linux64x64, os: ubuntu-18.04 } - - { name: linux32x86, os: ubuntu-18.04 } - - { name: macos64x64, os: macos-10.15 } + - { name: linux64x64, os: ubuntu-20.04 } + - { name: linux32x86, os: ubuntu-20.04 } + - { name: macos64x64, os: macos-11 } # - { name: macos32x86, os: macos-latest } flavor: - # Only newsqueak.* builds are fully prepared for all platforms + # Only newsqueak.* and pharo.cog.spur builds are fully prepared for all platforms - newspeak.cog.spur - newspeak.stack.spur + - pharo.cog.spur include: - arch: { name: win32x86, os: windows-2019 } @@ -36,23 +37,37 @@ jobs: flavor: squeak.stack.v3 - arch: { name: win32x86, os: windows-2019 } flavor: squeak.cog.spur.lowcode + # - arch: { name: win64x64, os: windows-2019 } + # flavor: pharo.stack.spur # third-party not yet working # - arch: { name: win32x86, os: windows-2019 } # flavor: pharo.cog.spur.lowcode - - arch: { name: linux32x86, os: ubuntu-18.04 } + - arch: { name: linux32x86, os: ubuntu-20.04 } flavor: squeak.cog.v3 - - arch: { name: linux32x86, os: ubuntu-18.04 } + - arch: { name: linux32x86, os: ubuntu-20.04 } flavor: squeak.stack.v3 - - arch: { name: linux32x86, os: ubuntu-18.04 } + - arch: { name: linux32x86, os: ubuntu-20.04 } + flavor: pharo.sista.spur + - arch: { name: linux32x86, os: ubuntu-20.04 } flavor: pharo.cog.spur.lowcode - - arch: { name: linux32x86, os: ubuntu-18.04 } + - arch: { name: linux32x86, os: ubuntu-20.04 } flavor: pharo.stack.spur.lowcode + # - arch: { name: macos64x64, os: macos-11 } + # flavor: pharo.sista.spur # -Werror bc. decl. missing + - arch: { name: macos64x64, os: macos-11 } + flavor: pharo.stack.spur # - arch: { name: macos64x64, os: macos-latest } # flavor: pharo.cog.spur.lowcode # impl. decl. getThisSessionID - - arch: { name: macos64x64, os: macos-10.15 } + - arch: { name: macos64x64, os: macos-11 } flavor: pharo.stack.spur.lowcode + exclude: + - arch: { name: win32x86, os: windows-2019 } + flavor: pharo.cog.spur # third-party not yet working + - arch: { name: win64x64, os: windows-2019 } + flavor: pharo.cog.spur # third-party not yet working + runs-on: ${{ matrix.arch.os }} name: ${{ matrix.flavor }} for ${{ matrix.arch.name }} env: @@ -64,15 +79,15 @@ jobs: MSYS_ENV: ${{ matrix.arch.name == 'win64x64' && 'x86_64' || 'i686' }} steps: - name: Checkout files - uses: actions/checkout@v2 + uses: actions/checkout@v3 # with: # ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ref || 'refs/heads/Cog'}} - - name: Restore build cache - uses: actions/cache@v2 - with: - path: .thirdparty-cache - key: ${{ startsWith(matrix.arch.name, 'win') && 'thirdparty-cache-win' || startsWith(matrix.arch.name, 'linux') && 'thirdparty-cache-linux' || 'thirdparty-cache-macos' }} + # - name: Restore build cache + # uses: actions/cache@v3 + # with: + # path: .thirdparty-cache + # key: ${{ startsWith(matrix.arch.name, 'win') && 'thirdparty-cache-win' || startsWith(matrix.arch.name, 'linux') && 'thirdparty-cache-linux' || 'thirdparty-cache-macos' }} - name: Prepare environment if: startsWith(matrix.arch.name, 'linux') @@ -82,18 +97,22 @@ jobs: shell: bash run: ./scripts/ci/actions_build.sh + - name: Sign VM (not implemented) + if: false + run: ./deploy/sign-vm.sh + - name: Pack VM shell: bash run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-build - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'schedule' || (github.event.inputs.should-deploy == 'true' && endsWith( github.ref , 'Cog' )) with: prerelease: true diff --git a/.github/workflows/linux-arm.yml b/.github/workflows/linux-arm.yml index 1ed0305d3f..ae0b8e2101 100644 --- a/.github/workflows/linux-arm.yml +++ b/.github/workflows/linux-arm.yml @@ -72,24 +72,24 @@ jobs: steps: - name: Checkout files if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout files for new release candidate if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: refs/tags/${{ github.event.inputs.tag }} # TODO: Can we use the same thirdparty cache for armv6, armv7, and aarch64? Are pre-compiled binaries compatible or organized differently? - name: Restore build cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: .thirdparty-cache - key: thirdparty-cache-linux-${{ env.ARCH_ARM }} + key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} # https://github.com/marketplace/actions/run-on-architecture - name: Build VM - uses: uraimo/run-on-arch-action@v2.1.1 + uses: uraimo/run-on-arch-action@v2 id: build-vm with: arch: ${{ env.ARCH_ARM }} @@ -99,7 +99,8 @@ jobs: #SEE: https://github.com/uraimo/run-on-arch-action/issues/54 install: | apt update -y - apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libtool automake autoconf libltdl-dev + apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libxrandr-dev libtool automake autoconf libltdl-dev + git config --global --add safe.directory ${{ github.workspace }} env: | # Copy the entire environment for the docker container ARCH: ${{ env.ARCH }} @@ -127,13 +128,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-release - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) with: prerelease: true @@ -145,7 +146,7 @@ jobs: body: ${{ github.event.head_commit.message }} - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'workflow_dispatch' with: prerelease: true # release candidate diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 53efea4626..2042005c34 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -47,15 +47,13 @@ on: jobs: build: strategy: - fail-fast: true + fail-fast: false matrix: arch: - linux64x64 - linux32x86 - flavor: + flavor: # for selected pharo.* builds, see extra.yml - squeak.cog.spur - - pharo.cog.spur - # - pharo.stack.spur # build not prepared heartbeat: - threaded - itimer @@ -69,10 +67,6 @@ jobs: flavor: squeak.sista.spur heartbeat: threaded mode: fast - - arch: linux32x86 - flavor: pharo.sista.spur - heartbeat: threaded - mode: fast # squeak.stack.spur builds are not prepared for itimer - arch: linux64x64 flavor: squeak.stack.spur @@ -83,7 +77,7 @@ jobs: heartbeat: threaded mode: fast - runs-on: ubuntu-18.04 # better backwards compatibility than ubuntu-20.04 + runs-on: ubuntu-20.04 name: ${{ matrix.flavor }}${{ matrix.heartbeat == 'itimer' && ' (itimer)' || '' }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} env: ARCH: ${{ matrix.arch }} @@ -92,19 +86,19 @@ jobs: steps: - name: Checkout files if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout files for new release candidate if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: refs/tags/${{ github.event.inputs.tag }} - name: Restore build cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: .thirdparty-cache - key: thirdparty-cache-linux + key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - name: Prepare environment run: ./scripts/ci/actions_prepare_linux_x86.sh @@ -122,13 +116,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-build - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) with: prerelease: true @@ -140,7 +134,7 @@ jobs: body: ${{ github.event.head_commit.message }} - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'workflow_dispatch' with: prerelease: true # release candidate diff --git a/.github/workflows/macos-arm.yml b/.github/workflows/macos-arm.yml index cf12da2cc8..def8457188 100644 --- a/.github/workflows/macos-arm.yml +++ b/.github/workflows/macos-arm.yml @@ -41,7 +41,7 @@ on: jobs: build: strategy: - fail-fast: true + fail-fast: false matrix: arch: - macos64ARMv8 @@ -49,15 +49,12 @@ jobs: - squeak.cog.spur # - squeak.sista.spur # -Werror bc. decl. missing - squeak.stack.spur - # - pharo.cog.spur - # - pharo.sista.spur # -Werror bc. decl. missing - # - pharo.stack.spur mode: - fast - debug - assert - runs-on: macos-10.15 # macos-11 macos-latest + runs-on: macos-11 # macos-latest name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} env: ARCH: ${{ matrix.arch }} @@ -66,24 +63,25 @@ jobs: steps: - name: Checkout files if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout files for new release candidate if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: refs/tags/${{ github.event.inputs.tag }} - name: Restore build cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: .thirdparty-cache - key: thirdparty-cache-macos + key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - name: Build VM run: ./scripts/ci/actions_build.sh - - name: Sign VM + - name: Sign VM (skip for now) + if: false continue-on-error: true # Save unsigned build artifacts run: ./deploy/sign-vm.sh env: @@ -101,13 +99,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-build - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) with: prerelease: true @@ -119,7 +117,7 @@ jobs: body: ${{ github.event.head_commit.message }} - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'workflow_dispatch' with: prerelease: true # release candidate diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 1d94d8e105..6c203d8fda 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -41,24 +41,21 @@ on: jobs: build: strategy: - fail-fast: true + fail-fast: false matrix: arch: - macos64x64 # - macos32x86 # Might be deprecated in general - flavor: + flavor: # for selected pharo.* builds, see extra.yml - squeak.cog.spur # - squeak.sista.spur # -Werror bc. decl. missing - squeak.stack.spur - - pharo.cog.spur - # - pharo.sista.spur # -Werror bc. decl. missing - - pharo.stack.spur mode: - fast - debug - assert - runs-on: macos-10.15 # macos-11 macos-latest + runs-on: macos-11 # macos-latest name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} env: ARCH: ${{ matrix.arch }} @@ -67,24 +64,25 @@ jobs: steps: - name: Checkout files if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout files for new release candidate if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: refs/tags/${{ github.event.inputs.tag }} - name: Restore build cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: .thirdparty-cache - key: thirdparty-cache-macos + key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - name: Build VM run: ./scripts/ci/actions_build.sh - - name: Sign VM + - name: Sign VM (skip for now) + if: false continue-on-error: true # Save unsigned build artifacts run: ./deploy/sign-vm.sh env: @@ -102,13 +100,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-build - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) with: prerelease: true @@ -120,7 +118,7 @@ jobs: body: ${{ github.event.head_commit.message }} - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'workflow_dispatch' with: prerelease: true # release candidate diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 99c55fbf45..b6c6c2bbd4 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -44,35 +44,19 @@ on: jobs: build: strategy: - fail-fast: true + fail-fast: false matrix: arch: - win64x64 - win32x86 - flavor: + flavor: # for selected pharo.* builds, see extra.yml - squeak.cog.spur - squeak.stack.spur -<<<<<<< HEAD:.github/workflows.ignore/win.yml - # - pharo.cog.spur # third-party not yet working - # - pharo.stack.spur # third-party not yet working -======= - squeak.sista.spur ->>>>>>> 8dc277b... In CI, also build squeak.sista.spur flavor for win64x64.:.github/workflows/win.yml mode: - fast - debug - assert -<<<<<<< HEAD:.github/workflows.ignore/win.yml - include: - # sista build not fully prepared for win64x64, so only your selected configurations for win32x86 - - arch: win32x86 - flavor: squeak.sista.spur - mode: fast - # - arch: win32x86 - # flavor: pharo.sista.spur - # mode: fast -======= ->>>>>>> 8dc277b... In CI, also build squeak.sista.spur flavor for win64x64.:.github/workflows/win.yml runs-on: windows-2019 name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} @@ -83,19 +67,19 @@ jobs: steps: - name: Checkout files if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Checkout files for new release candidate if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: refs/tags/${{ github.event.inputs.tag }} - name: Restore build cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: .thirdparty-cache - key: thirdparty-cache-win + key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} # - name: Setup tmate debugging session # uses: mxschmitt/action-tmate@v3 @@ -117,13 +101,13 @@ jobs: run: ./deploy/pack-vm.sh - name: Store artifact w/ revision - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - name: Update artifact in latest-build - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'push' && endsWith(github.ref, 'Cog') with: prerelease: true @@ -135,7 +119,7 @@ jobs: body: ${{ github.event.head_commit.message }} - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1.8.6 + uses: ncipollo/release-action@v1 if: github.event_name == 'workflow_dispatch' with: prerelease: true # release candidate