Skip to content

Update:

Update: #105

Workflow file for this run

name: Build
on: [push]
jobs:
linux:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
strategy:
matrix:
include:
-
target: x86_64-unknown-linux-gnu
platform: linux/amd64
php-version: '8.0'
distro: bullseye
-
target: aarch64-unknown-linux-gnu
platform: linux/arm64
php-version: '8.0'
distro: bullseye
-
target: x86_64-unknown-linux-gnu
platform: linux/amd64
php-version: '8.1'
distro: bookworm
-
target: aarch64-unknown-linux-gnu
platform: linux/arm64
php-version: '8.1'
distro: bookworm
-
target: x86_64-unknown-linux-gnu
platform: linux/amd64
php-version: '8.2'
distro: bookworm
-
target: aarch64-unknown-linux-gnu
platform: linux/arm64
php-version: '8.2'
distro: bookworm
-
target: aarch64-unknown-linux-gnu
platform: linux/arm64
php-version: '8.3'
distro: bookworm
-
target: x86_64-unknown-linux-gnu
platform: linux/amd64
php-version: '8.3'
distro: bookworm
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup QEMU
uses: docker/setup-qemu-action@v2
- name: Cache Cargo
id: cache-cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: "v1"
- name: Cache Traget
id: cache-target
uses: actions/cache@v3
with:
path: target
key: "${{ matrix.target }}"
- name: Setup docker
uses: docker/build-push-action@v2
with:
context: .
platforms: ${{ matrix.platform }}
push: true
tags: localhost:5000/phpv8js-build:latest
build-args: |
FROM_PHP=${{ matrix.php-version }}
FROM_DISTRO=${{ matrix.distro }}
- run: mkdir ~/.cargo-registry
- name: Build
run: docker run --rm -v ~/.cargo-registry:/usr/local/cargo/registry -v $PWD:/code localhost:5000/phpv8js-build:latest bash -c 'rustup target add ${{ matrix.target }} ; cargo test --target ${{ matrix.target }} && cargo build --release --target ${{ matrix.target }}'
- name: Rename file
run: cp target/${{ matrix.target }}/release/libv8js.so php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.so
- uses: actions/upload-artifact@v3
with:
name: php${{ matrix.php-version }}-${{ matrix.target }}
path: php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.so
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.so
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
macos:
runs-on: macos-latest
strategy:
matrix:
include:
-
target: aarch64-apple-darwin
php-version: '8.0'
-
target: x86_64-apple-darwin
php-version: '8.0'
-
target: aarch64-apple-darwin
php-version: '8.1'
-
target: x86_64-apple-darwin
php-version: '8.1'
-
target: aarch64-apple-darwin
php-version: '8.2'
-
target: x86_64-apple-darwin
php-version: '8.2'
-
target: aarch64-apple-darwin
php-version: '8.3'
-
target: x86_64-apple-darwin
php-version: '8.3'
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install latest rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
default: true
override: true
- name: Setup PHP version
run: brew update && brew tap shivammathur/php && brew unlink php && ( brew reinstall shivammathur/php/php@${{ matrix.php-version }} || true ) && brew link --force --overwrite shivammathur/php/php@${{ matrix.php-version }} && php -i
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target ${{ matrix.target }} --lib
- name: Rename file
run: mv target/${{ matrix.target }}/release/libv8js.dylib target/php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.dylib
- uses: actions/upload-artifact@v3
with:
name: php${{ matrix.php-version }}-${{ matrix.target }}
path: target/php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.dylib
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
target/php${{ matrix.php-version }}-${{ matrix.target }}-libv8js.dylib
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}