Nightlies #411
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Nightlies | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
x86_64-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20240425 | |
name: x86-64-unknown-linux-ubuntu24.04 | |
triple-os: linux-ubuntu24.04 | |
triple-vendor: unknown | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu22.04-builder:20230924 | |
name: x86-64-unknown-linux-ubuntu22.04 | |
triple-os: linux-ubuntu22.04 | |
triple-vendor: unknown | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu20.04-builder:20230830 | |
name: x86-64-unknown-linux-ubuntu20.04 | |
triple-os: linux-ubuntu20.04 | |
triple-vendor: unknown | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-musl-builder:20231003 | |
name: x86-64-unknown-linux-musl | |
triple-os: linux-musl | |
triple-vendor: unknown | |
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-fedora39-builder:20240129 | |
name: x86-64-unknown-linux-fedora39 | |
triple-os: linux-fedora39 | |
triple-vendor: unknown | |
name: ${{ matrix.name }} | |
container: | |
image: ${{ matrix.image }} | |
options: --user pony | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Nightly | |
run: bash .ci-scripts/x86-64-nightly.bash | |
env: | |
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
TRIPLE_VENDOR: ${{ matrix.triple-vendor }} | |
TRIPLE_OS: ${{ matrix.triple-os }} | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
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. | |
x86_macos: | |
runs-on: macos-13 | |
name: x86-64-apple-darwin | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-x86-macos-13-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-x86-macos-13-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Install Cloudsmith | |
run: pip3 install --upgrade cloudsmith-cli | |
- name: Nightly | |
run: bash .ci-scripts/x86-64-nightly.bash | |
env: | |
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
TRIPLE_VENDOR: apple | |
TRIPLE_OS: darwin | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
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. | |
arm64_macos: | |
runs-on: macos-14 | |
name: arm64-apple-darwin | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-arm64-macos-14-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: make libs build_flags=-j8 | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-arm64-macos-14-${{ hashFiles('Makefile', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Install Cloudsmith | |
run: pip3 install --upgrade --break-system-packages cloudsmith-cli | |
- name: Nightly | |
run: bash .ci-scripts/arm64-nightly.bash | |
env: | |
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
TRIPLE_VENDOR: apple | |
TRIPLE_OS: darwin | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
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. | |
x86_64-windows: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: pwsh | |
name: x86-64-pc-windows-msvc | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Install Dependencies | |
run: | | |
function msys() { C:\msys64\usr\bin\bash.exe @('-lc') + @Args }; msys ' '; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-lldb'; msys 'pacman --noconfirm -Scc' | |
python.exe -m pip install --upgrade cloudsmith-cli | |
- name: Restore Libs Cache | |
id: restore-libs | |
uses: actions/cache/restore@v3 | |
with: | |
path: build/libs | |
key: libs-windows-2022-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Build Libs | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
run: .\make.ps1 -Command libs | |
- name: Save Libs Cache | |
if: steps.restore-libs.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: build/libs | |
key: libs-windows-2022-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'libs/CMakeLists.txt') }} | |
- name: Configure | |
run: .\make.ps1 -Command configure -Config Release -Prefix "build\install\release" -Version nightly | |
- name: Build | |
run: .\make.ps1 -Command build -Config Release -Prefix "build\install\release" -Version nightly | |
- name: Install | |
run: .\make.ps1 -Command install -Config Release -Prefix "build\install\release" | |
- name: Package | |
run: .\make.ps1 -Command package -Config Release -Prefix "build\install\release" -Version nightly | |
- name: Upload | |
run: $version = (Get-Date).ToString("yyyyMMdd"); cloudsmith push raw --version $version --api-key ${{ secrets.CLOUDSMITH_API_KEY }} --summary "Pony compiler" --description "https://github.com/ponylang/ponyc" ponylang/nightlies build\ponyc-x86-64-pc-windows-msvc.zip | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@08b6fbd07f5834e5b930a85bc7740e9fd44ab2e7 | |
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. |