Skip to content

Commit

Permalink
Yet another attempt
Browse files Browse the repository at this point in the history
  • Loading branch information
marceltaeumel authored and eliotmiranda committed May 10, 2023
1 parent fd9c870 commit 8b9eef1
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 106 deletions.
22 changes: 10 additions & 12 deletions .github/workflows/extra-arm.yml
Expand Up @@ -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
Expand All @@ -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 }}
Expand All @@ -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 }}
Expand Down Expand Up @@ -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
Expand Down
53 changes: 36 additions & 17 deletions .github/workflows/extra.yml
Expand Up @@ -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 }
Expand All @@ -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:
Expand All @@ -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')
Expand All @@ -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
Expand Down
19 changes: 10 additions & 9 deletions .github/workflows/linux-arm.yml
Expand Up @@ -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 }}
Expand All @@ -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 }}
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
26 changes: 10 additions & 16 deletions .github/workflows/linux.yml
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 }}
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 8b9eef1

Please sign in to comment.