ladybird/.github/workflows/serenity-js-artifacts.yml
Timothy Flynn 28927d6a0f CI: Release only arm64 JS artifacts on macOS for now
Turns out vcpkg does not yet support Universal binaries. While they are
working on it, lets produce arm64 binaries only for now to unblock the
pipeline.
2024-06-09 22:20:15 -04:00

93 lines
2.8 KiB
YAML

name: Package the js repl as a binary artifact
on: [push]
env:
LADYBIRD_SOURCE_DIR: ${{ github.workspace }}
SERENITY_CCACHE_DIR: ${{ github.workspace }}/.ccache
VCPKG_ROOT: ${{ github.workspace }}/Toolchain/Tarballs/vcpkg
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
jobs:
build-and-package:
runs-on: ${{ matrix.os }}
if: always() && github.repository == 'LadybirdBrowser/ladybird' && github.ref == 'refs/heads/master'
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
package_type: [Linux-x86_64]
os_name: [Linux]
include:
- os: macos-14
package_type: macOS-universal2
os_name: macOS
concurrency:
group: ${{ github.workflow }}-${{ matrix.os }}
cancel-in-progress: true
steps:
- name: Checkout LadybirdBrowser/ladybird
uses: actions/checkout@v4
- name: "Set up environment"
uses: ./.github/actions/setup
with:
os: ${{ matrix.os_name }}
arch: 'Lagom'
- name: Restore Caches
uses: ./.github/actions/cache-restore
id: 'cache-restore'
with:
os: ${{ matrix.os_name }}
arch: 'Lagom'
cache_key_extra: 'LibJS Artifacts'
serenity_ccache_path: ${{ env.SERENITY_CCACHE_DIR }}
download_cache_path: ${{ github.workspace }}/Build/caches
- name: Create build directory Ubuntu
run: |
cmake --preset CI -B Build \
-DCMAKE_C_COMPILER=gcc-13 \
-DCMAKE_CXX_COMPILER=g++-13
if: ${{ matrix.os == 'ubuntu-22.04' }}
env:
CCACHE_DIR: ${{ env.SERENITY_CCACHE_DIR }}
# FIXME: Add the following flag back when vcpkg supports Universal binaries:
# -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
#
# See: https://github.com/microsoft/vcpkg/discussions/19454
- name: Create build directory macOS
run: |
cmake --preset CI -B Build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_DEPLOYMENT_TARGET="11.0"
if: ${{ matrix.os == 'macos-14' }}
env:
CCACHE_DIR: ${{ env.SERENITY_CCACHE_DIR }}
- name: Build and package js
working-directory: Build
run: |
ninja js
cpack
env:
CCACHE_DIR: ${{ env.SERENITY_CCACHE_DIR }}
- name: Save Caches
uses: ./.github/actions/cache-save
with:
arch: 'Lagom'
serenity_ccache_path: ${{ env.SERENITY_CCACHE_DIR }}
serenity_ccache_primary_key: ${{ steps.cache-restore.outputs.serenity_ccache_primary_key }}
- name: Upload js package
uses: actions/upload-artifact@v4
with:
name: serenity-js-${{ matrix.package_type }}
path: Build/ladybird-js*.tar.gz
retention-days: 7