disable other jobs #79
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: Build | |
on: [push] | |
jobs: | |
build: | |
name: Build | |
permissions: write-all | |
strategy: | |
matrix: | |
target: | |
#- id: 'linux-amd64' | |
# os: 'ubuntu-24.04' | |
# native: true | |
#- id: 'linux-arm64' | |
# os: 'ubuntu-24.04-arm' | |
# native: true | |
#- id: 'linux-musl' | |
# os: 'ubuntu-24.04' | |
# native: true | |
# container: alpine:3.19 | |
#- id: 'darwin-amd64' | |
# os: 'macos-13' | |
# native: true | |
#- id: 'darwin-aarch64' | |
# os: 'macos-14' | |
# native: true | |
#- id: 'ios' | |
# os: 'macos-14' | |
# native: false # Not used in the `Build` job, but here for reference | |
#- id: 'android' | |
# os: 'ubuntu-24.04' | |
# native: false # Not used in the `Build` job, but here for reference | |
- id: 'windows-amd64' | |
os: 'windows-2022' | |
native: true | |
# When unpacking an archive on Windows, the symlinks can't be | |
# created unless the target path already exists. This causes | |
# problems when the linked file is ordered after the link | |
# inside the archive. Dereferencing the files when packing them | |
# adds an additional copy per link, but it reliably works and | |
# the additional size is not too large on Windows. | |
tar_extra_args: '--dereference' | |
tag: ['11.7'] | |
fail-fast: true | |
runs-on: ${{ matrix.target.os }} | |
container: ${{ matrix.target.container }} | |
steps: | |
- name: Check out the code | |
uses: actions/checkout@v3 | |
- name: Install dependencies on Ubuntu | |
if: startsWith(matrix.target.id, 'linux-amd64') | |
shell: bash | |
run: | | |
sudo apt-get install ninja-build clang libglib2.0-dev -y | |
- name: Install dependencies on Ubuntu (arm64) | |
if: startsWith(matrix.target.id, 'linux-arm64') | |
shell: bash | |
run: | | |
sudo apt-get install ninja-build clang libglib2.0-dev -y | |
- name: Install dependencies on Alpine | |
if: startsWith(matrix.target.id, 'linux-musl') | |
run: | | |
apk add ninja bash git cmake clang-dev llvm-dev wget python3 alpine-sdk curl git tar xz py3-virtualenv py3-google-auth-httplib2 py3-httplib2 py3-distutils-extra py3-setuptools py3-pip gn | |
python3 -m pip config set global.break-system-packages true | |
python3 -m pip uninstall six --yes | |
python3 -m pip install --upgrade --user six | |
- name: Install dependencies on macOS | |
if: startsWith(matrix.target.id, 'darwin-') | |
shell: bash | |
run: | | |
brew install ninja llvm@18 | |
- name: Set default Xcode on macOS (aarch64) | |
if: startsWith(matrix.target.id, 'darwin-aarch64') | |
shell: bash | |
run: | | |
sudo xcode-select -s /Applications/Xcode_16.2.app | |
- name: Install dependencies on Windows | |
if: startsWith(matrix.target.id, 'windows-') | |
shell: bash | |
run: | | |
choco install ninja | |
- name: Setup MSVC (Windows) | |
uses: ilammy/msvc-dev-cmd@v1 | |
if: matrix.target.id == 'windows-amd64' | |
- name: Build (native target) | |
if: matrix.target.id != 'windows-amd64' && matrix.target.id != 'linux-musl' && matrix.target.native == true | |
shell: bash | |
run: | | |
./build.sh | |
- name: Build (android) | |
if: matrix.target.os == 'ubuntu-24.04' && matrix.target.id == 'android' | |
shell: bash | |
run: | | |
./build.sh "arm" "android" | |
- name: Build (iOS) | |
if: matrix.target.os == 'macos-14' && matrix.target.id == 'ios' | |
shell: bash | |
run: | | |
./build.sh "arm64" "ios" | |
- name: Build musl | |
if: matrix.target.id == 'linux-musl' | |
shell: bash | |
run: | | |
CXX=clang++-18 ./build.sh | |
env: | |
VPYTHON_BYPASS: "manually managed python not supported by chrome operations" | |
- name: Build (Windows) | |
if: matrix.target.id == 'windows-amd64' | |
run: | | |
./build.ps1 | |
- name: Zip | |
if: matrix.target.id != 'windows-amd64' | |
shell: bash | |
run: | | |
mkdir -p dist | |
tar --directory v8/out/release --create --xz --verbose ${{ matrix.target.tar_extra_args }} --file dist/wee8.tar.xz obj/libwee8.a | |
ls -lh dist/wee8.tar.xz | |
- name: Zip (Windows) | |
if: matrix.target.id == 'windows-amd64' | |
shell: bash | |
run: | | |
mkdir -p dist | |
tar --directory v8/out/release --create --xz --verbose ${{ matrix.target.tar_extra_args }} --file dist/wee8.tar.xz obj/wee8.lib | |
ls -lh dist/wee8.tar.xz | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.target.id }}-${{ matrix.tag }} | |
path: dist | |
if-no-files-found: error | |
retention-days: 1 | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
permissions: write-all | |
needs: [build] | |
strategy: | |
matrix: | |
tag: ['11.7'] | |
steps: | |
- name: Download the Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- name: Inspect | |
shell: bash | |
run: | | |
ls -laGiR ./* | |
- name: Create Release | |
id: create_release | |
uses: ncipollo/release-action@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag: ${{ matrix.tag }} | |
name: Release ${{ matrix.tag }} | |
allowUpdates: true | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset Linux | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: artifacts/linux-amd64-${{matrix.tag}}/wee8.tar.xz | |
asset_name: wee8-linux-amd64.tar.xz | |
asset_content_type: application/gzip | |
- name: Upload Release Asset Linux musl | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: artifacts/linux-musl-${{matrix.tag}}/wee8.tar.xz | |
asset_name: wee8-linux-musl.tar.xz | |
asset_content_type: application/gzip | |
- name: Upload Release Asset Darwin | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: artifacts/darwin-amd64-${{matrix.tag}}/wee8.tar.xz | |
asset_name: wee8-darwin-amd64.tar.xz | |
asset_content_type: application/gzip | |
- name: Upload Release Asset Darwin (aarch64) | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: artifacts/darwin-aarch64-${{matrix.tag}}/wee8.tar.xz | |
asset_name: wee8-darwin-aarch64.tar.xz | |
asset_content_type: application/gzip | |
- name: Upload Release Asset Windows | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: artifacts/windows-amd64-${{matrix.tag}}/wee8.tar.xz | |
asset_name: wee8-windows-amd64.tar.xz | |
asset_content_type: application/gzip |