From 88ff12b194294f99d1a755463ca81615863694ef Mon Sep 17 00:00:00 2001 From: "Sean T. Allen" Date: Wed, 31 Jan 2024 01:42:44 +0000 Subject: [PATCH] Add MacOS on Apple Silicon as a fully supported platform --- .github/workflows/nightlies.yml | 27 +++++++++++ .github/workflows/pr.yml | 84 ++++++++++++++++++++++----------- .github/workflows/release.yml | 19 ++++++++ .release-notes/m1-again.md | 5 ++ README.md | 2 +- 5 files changed, 108 insertions(+), 29 deletions(-) create mode 100644 .release-notes/m1-again.md diff --git a/.github/workflows/nightlies.yml b/.github/workflows/nightlies.yml index bb8d76a..a129615 100644 --- a/.github/workflows/nightlies.yml +++ b/.github/workflows/nightlies.yml @@ -86,3 +86,30 @@ jobs: type: stream topic: ${{ github.repository }} scheduled job failure content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. + + arm64-apple-darwin-nightly: + name: Build and upload arm64-apple-darwin-nightly to Cloudsmith + runs-on: macos-14 + steps: + - uses: actions/checkout@v3 + - name: install pony tools + run: bash .ci-scripts/macOS-arm64-install-pony-tools.bash nightly + - name: brew install dependencies + run: brew install coreutils + - name: pip install dependencies + run: pip3 install --upgrade cloudsmith-cli + - name: Build and upload + run: bash .ci-scripts/release/arm64-apple-darwin-nightly.bash + env: + CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} + - name: Send alert on failure + if: ${{ failure() }} + uses: zulip/github-actions-zulip/send-message@b62d5a0e48a4d984ea4fce5dd65ba691963d4db4 + with: + api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} + email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} + organization-url: 'https://ponylang.zulipchat.com/' + to: notifications + type: stream + topic: ${{ github.repository }} scheduled job failure + content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index f5cec38..6bff30c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -40,18 +40,8 @@ jobs: - name: Verify CHANGELOG run: changelog-tool verify - linux: - name: Verify PR builds on Linux with most recent ponyc release - runs-on: ubuntu-latest - container: - image: ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder-with-libressl-3.7.3:release - steps: - - uses: actions/checkout@v3 - - name: Test with the most recent ponyc release - run: make test - alpine-bootstrap: - name: Test bootstrapping on Alpine + name: Alpine bootstrap runs-on: ubuntu-latest container: image: ghcr.io/ponylang/ponyup-ci-alpine-bootstrap-tester:20230830 @@ -61,7 +51,7 @@ jobs: run: SSL=0.9.0 .ci-scripts/test-bootstrap.sh fedora39-bootstrap: - name: Test bootstrapping on Fedora 39 + name: Fedora 39 bootstrap runs-on: ubuntu-latest container: image: ghcr.io/ponylang/ponyup-ci-fedora39-bootstrap-tester:20240130 @@ -71,7 +61,7 @@ jobs: run: SSL=3.0.x .ci-scripts/test-bootstrap.sh ubuntu20_04-bootstrap: - name: Test bootstrapping on Ubuntu 20.04 + name: Ubuntu 20.04 bootstrap runs-on: ubuntu-latest container: image: ghcr.io/ponylang/ponyup-ci-ubuntu20.04-bootstrap-tester:20230830 @@ -81,7 +71,7 @@ jobs: run: .ci-scripts/test-bootstrap.sh ubuntu22_04-bootstrap: - name: Test bootstrapping on Ubuntu 22.04 + name: Ubuntu 22.04 bootstrap runs-on: ubuntu-latest container: image: ghcr.io/ponylang/ponyup-ci-ubuntu22.04-bootstrap-tester:20230830 @@ -90,20 +80,24 @@ jobs: - name: Bootstrap test run: SSL=3.0.x .ci-scripts/test-bootstrap.sh - macos: - name: Verify PR builds on x86-64 macOS with most recent ponyc release - runs-on: macos-13 - steps: - - uses: actions/checkout@v3 - - name: install pony tools - run: bash .ci-scripts/macOS-x86-install-pony-tools.bash release - - name: Test with the most recent ponyc release - run: | - export PATH="/tmp/corral/bin:/tmp/ponyc/bin/:$PATH" - make test + # turn on once we have a corral and ponyup nightly that can be used + # arm64-macos-bootstrap: + # name: arm64 MacOS bootstrap + # runs-on: macos-14 + # steps: + # - uses: actions/checkout@v3 + # - name: Install dependencies + # # libressl gets installed but is returning a non-zero exit code, + # # so we have to soldier on through the stupidity + # continue-on-error: true + # run: | + # brew update + # brew install libressl + # - name: Bootstrap test + # run: SSL=0.9.0 .ci-scripts/test-bootstrap.sh x86-64-macos-bootstrap: - name: Test bootstrapping on macOS x86-64 + name: x86_64 MacOS bootstrap runs-on: macos-13 steps: - uses: actions/checkout@v3 @@ -117,8 +111,42 @@ jobs: - name: Bootstrap test run: SSL=0.9.0 .ci-scripts/test-bootstrap.sh - windows: - name: Verify PR builds with most recent ponyc release on Windows + x86-64-linux: + name: Vx86-64 Linux tests + runs-on: ubuntu-latest + container: + image: ghcr.io/ponylang/shared-docker-ci-x86-64-unknown-linux-builder-with-libressl-3.7.3:release + steps: + - uses: actions/checkout@v3 + - name: Test with the most recent ponyc release + run: make test + + x86-64-macos: + name: x86-64 MacOS tests + runs-on: macos-13 + steps: + - uses: actions/checkout@v3 + - name: install pony tools + run: bash .ci-scripts/macOS-x86-install-pony-tools.bash release + - name: Test with the most recent ponyc release + run: | + export PATH="/tmp/corral/bin:/tmp/ponyc/bin/:$PATH" + make test + + arm64-macos: + name: arm64 MacOS tests + runs-on: macos-14 + steps: + - uses: actions/checkout@v3 + - name: install pony tools + run: bash .ci-scripts/macOS-arm64-install-pony-tools.bash nightly + - name: Test with the most recent ponyc release + run: | + export PATH="/tmp/corral/bin:/tmp/ponyc/bin/:$PATH" + make test + + x86-64-windows: + name: x86-64 Windows tests runs-on: windows-2022 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58d739b..a095594 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,6 +57,24 @@ jobs: env: CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} + arm64-apple-darwin-release: + name: Build and upload arm64-apple-darwin to Cloudsmith + runs-on: macos-14 + needs: + - pre-artefact-creation + steps: + - uses: actions/checkout@v3 + - name: install pony tools + run: bash .ci-scripts/macOS-arm64-install-pony-tools.bash nightly + - name: brew install dependencies + run: brew install coreutils + - name: pip install dependencies + run: pip3 install --upgrade cloudsmith-cli + - name: Build and upload + run: bash .ci-scripts/release/arm64-apple-darwin-release.bash + env: + CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} + x86-64-pc-windows-msvc-release: name: Build and upload x86-64-pc-windows-msvc-release to Cloudsmith runs-on: windows-2022 @@ -118,6 +136,7 @@ jobs: - x86-64-unknown-linux-release - x86-64-pc-windows-msvc-release - x86-64-apple-darwin-release + - arm64-apple-darwin-release - build-release-docker-images - update-latest-release-tag steps: diff --git a/.release-notes/m1-again.md b/.release-notes/m1-again.md new file mode 100644 index 0000000..4010302 --- /dev/null +++ b/.release-notes/m1-again.md @@ -0,0 +1,5 @@ +## Add MacOS on Apple Silicon as a fully supported platform + +In August of 2023, we had to drop MacOS on Apple Silicon as a fully supported platform. We had to move off of CirrusCI and in the process, lost access to Apple Silicon builders. + +GitHub Actions has introduced M1 MacOS builders and as such, we are happy to announce that ponyup again supports MacOS on Apple Silicon. diff --git a/README.md b/README.md index 5bdcfd3..b2fb221 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This project is currently beta software. ### Install dependencies -#### macOS (x86-64 only) +#### macOS ```bash brew install libressl