Monorepo project #508
23
.github/uploadToBucket.mjs
vendored
Normal file
23
.github/uploadToBucket.mjs
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env node
|
||||
import { createReadStream } from "fs";
|
||||
import { oracleBucket } from "@sirherobrine23/cloud";
|
||||
import extendsFS from "@sirherobrine23/extends";
|
||||
import path from "node:path";
|
||||
|
||||
const [,, remote, local] = process.argv;
|
||||
const bucket = await oracleBucket.oracleBucket({
|
||||
region: "sa-saopaulo-1",
|
||||
namespace: "grwodtg32n4d",
|
||||
name: "bdsFiles",
|
||||
auth: {
|
||||
type: "preAuthentication",
|
||||
// Public auth (No write enabled).
|
||||
PreAuthenticatedKey: process.env.OCI_AUTHKEY
|
||||
}
|
||||
});
|
||||
|
||||
for await (const file of await extendsFS.readdir(path.resolve(process.cwd(), local))) {
|
||||
console.log("Uploading %O", file);
|
||||
await bucket.uploadFile(path.posix.resolve("/", remote ?? "", path.basename(file)), createReadStream(file));
|
||||
console.log("Success %O", file);
|
||||
}
|
221
.github/workflows/phpBuild.yaml
vendored
Normal file
221
.github/workflows/phpBuild.yaml
vendored
Normal file
@ -0,0 +1,221 @@
|
||||
name: PHP build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 0 */2 * 0"
|
||||
|
||||
jobs:
|
||||
# Android Build arm64
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
name: Android
|
||||
steps:
|
||||
- name: Clone Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: pmmp/php-build-scripts
|
||||
submodules: true
|
||||
|
||||
- name: Cache musl
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ runner.os }}-android_musl
|
||||
path: muslCrossMake
|
||||
|
||||
- name: Build musl to android
|
||||
env:
|
||||
DEBIAN_FRONTEND: "noninteractive"
|
||||
run: |
|
||||
set -ex
|
||||
sudo apt update
|
||||
sudo apt -y install build-essential curl make autoconf automake libtool m4 wget gzip bzip2 bison g++ git cmake pkg-config re2c libtool* unzip zip tar
|
||||
|
||||
# Build musl
|
||||
if ! [[ -d muslCrossMake ]];then
|
||||
mkdir muslCrossMake
|
||||
INITIAL_PATH="$(pwd)"
|
||||
cd muslCrossMake
|
||||
git clone https://github.com/pmmp/musl-cross-make.git ./
|
||||
(echo "TARGET = aarch64-linux-musl"; echo "OUTPUT = /usr/local") > config.mak
|
||||
make
|
||||
sudo make install -j$(nproc)
|
||||
else
|
||||
cd muslCrossMake
|
||||
sudo make install -j$(nproc)
|
||||
fi
|
||||
|
||||
- name: "Building php bin"
|
||||
continue-on-error: true
|
||||
timeout-minutes: 40
|
||||
run: |
|
||||
./compile.sh -t android-aarch64 -x -f -g -j$(nproc)
|
||||
# Compress files
|
||||
cd bin/php*/
|
||||
pwd
|
||||
# ZIP
|
||||
zip -r "${{ github.workspace }}/android_arm64.zip" *
|
||||
# tar
|
||||
tar -czf "${{ github.workspace }}/android_arm64.tar.gz" *
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: android_arm64
|
||||
path: "*.tar.gz"
|
||||
|
||||
# Linux Build
|
||||
linux:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target:
|
||||
- ubuntu-latest
|
||||
- arm64
|
||||
name: "Linux - ${{ matrix.target }}"
|
||||
runs-on: ${{ matrix.target }}
|
||||
steps:
|
||||
- name: Clone Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: pmmp/php-build-scripts
|
||||
submodules: true
|
||||
|
||||
- name: Install tools and dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake pkg-config make autoconf automake libtool libtool-bin m4 wget libc-bin gzip bzip2 bison g++ git re2c zip tar
|
||||
|
||||
- name: Compile PHP
|
||||
continue-on-error: true
|
||||
timeout-minutes: 40
|
||||
run: |
|
||||
set -ex
|
||||
./compile.sh -j 4 -f -g -s
|
||||
|
||||
# Compress files
|
||||
cd bin/php*/
|
||||
pwd
|
||||
# ZIP
|
||||
zip -r "${{ github.workspace }}/linux_${{ runner.arch }}.zip" *
|
||||
# tar
|
||||
tar -czf "${{ github.workspace }}/linux_${{ runner.arch }}.tar.gz" *
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux_${{ runner.arch }}
|
||||
path: |
|
||||
*.tar.gz
|
||||
*.zip
|
||||
|
||||
# MacOS Build
|
||||
macos:
|
||||
runs-on: macos-11
|
||||
name: MacOS
|
||||
steps:
|
||||
- name: Clone Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: pmmp/php-build-scripts
|
||||
submodules: true
|
||||
|
||||
- name: Install dependecies
|
||||
run: brew install libtool autoconf automake pkg-config bison re2c
|
||||
|
||||
- name: "Building php"
|
||||
continue-on-error: true
|
||||
timeout-minutes: 40
|
||||
run: |
|
||||
export PATH="/usr/local/opt/bison/bin:$PATH"
|
||||
set -ex
|
||||
trap "exit 1" ERR
|
||||
./compile.sh -j4 -f -g || (cat *.log && exit 1)
|
||||
|
||||
- name: Create tarballs
|
||||
run: |
|
||||
cd bin/*/
|
||||
pwd
|
||||
# ZIP
|
||||
zip -r "${{ github.workspace }}/darwin_${{ runner.arch }}.zip" *
|
||||
# tar
|
||||
tar -czf "${{ github.workspace }}/darwin_${{ runner.arch }}.tar.gz" *
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: darwin_${{ runner.arch }}
|
||||
path: |
|
||||
*.tar.gz
|
||||
*.zip
|
||||
|
||||
# Windows build
|
||||
win32:
|
||||
runs-on: windows-2019
|
||||
name: Windows
|
||||
steps:
|
||||
- name: Clone Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: pmmp/php-build-scripts
|
||||
submodules: true
|
||||
|
||||
- name: Windows Depencies Install
|
||||
run: choco install --no-progress wget
|
||||
|
||||
- name: "Building php bin"
|
||||
run: .\windows-compile-vs.bat
|
||||
env:
|
||||
VS_EDITION: Enterprise
|
||||
SOURCES_PATH: ${{ github.workspace }}\pocketmine-php-sdk
|
||||
|
||||
- name: show log
|
||||
run: type compile.log
|
||||
|
||||
- name: Rename files
|
||||
shell: node {0}
|
||||
run: |
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const files = fs.readdirSync(process.cwd()).filter(file => file.endsWith(".zip"));
|
||||
for (const zip of files) {
|
||||
console.log("File:", path.join(process.cwd(), zip));
|
||||
if (/debug/i.test(zip)) fs.rmSync(path.join(process.cwd(), zip));
|
||||
else fs.renameSync(path.join(process.cwd(), zip), path.join(process.cwd(), "win32_x64.zip"));
|
||||
}
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Windows
|
||||
path: "*.zip"
|
||||
|
||||
# Upload to bucket
|
||||
upload:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- win32
|
||||
- macos
|
||||
- linux
|
||||
- android
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Code checkout
|
||||
|
||||
- uses: actions/setup-node@v3.6.0
|
||||
name: Setup node.js
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
- name: Install node depencies
|
||||
run: npm install --no-save
|
||||
|
||||
- name: Download tarbals
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: ./phpOutput
|
||||
|
||||
- name: Upload to bucket
|
||||
run: node .github/uploadphp/index.mjs php_bin phpOutput
|
||||
timeout-minutes: 25
|
||||
env:
|
||||
OCI_AUTHKEY: ${{ secrets.OCI_AUTHKEY }}
|
112
.github/workflows/spigotBuild.yaml
vendored
Normal file
112
.github/workflows/spigotBuild.yaml
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
name: Spigot Build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 0 */2 * 0"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- ".github/workflows/spigotBuild.yaml"
|
||||
- ".github/spigotBuilld/**/*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
version:
|
||||
- latest
|
||||
- "1.19.2"
|
||||
- "1.19.1"
|
||||
- "1.19"
|
||||
- "1.18.2"
|
||||
- "1.18.1"
|
||||
- "1.18-rc3"
|
||||
- "1.18-pre8"
|
||||
- "1.18-pre5"
|
||||
- "1.18"
|
||||
- "1.17.1"
|
||||
- "1.17"
|
||||
- "1.16.5"
|
||||
- "1.16.4"
|
||||
- "1.16.3"
|
||||
- "1.16.2"
|
||||
- "1.16.1"
|
||||
- "1.15.2"
|
||||
- "1.15.1"
|
||||
- "1.15"
|
||||
- "1.14.4"
|
||||
- "1.14.3-pre4"
|
||||
- "1.14.3"
|
||||
- "1.14.2"
|
||||
- "1.14.1"
|
||||
- "1.14-pre5"
|
||||
- "1.14"
|
||||
- "1.13.2"
|
||||
- "1.13.1"
|
||||
- "1.13-pre7"
|
||||
- "1.13"
|
||||
- "1.12.2"
|
||||
- "1.12.1"
|
||||
- "1.12"
|
||||
- "1.11.2"
|
||||
- "1.11.1"
|
||||
- "1.11"
|
||||
- "1.10.2"
|
||||
- "1.10"
|
||||
- "1.9.4"
|
||||
- "1.9.2"
|
||||
- "1.9"
|
||||
- "1.8.8"
|
||||
- "1.8.7"
|
||||
- "1.8.6"
|
||||
- "1.8.5"
|
||||
- "1.8.4"
|
||||
- "1.8.3"
|
||||
- "1.8"
|
||||
steps:
|
||||
- name: Install ${{ startsWith(matrix.version, 'latest') && '19' || (startsWith(matrix.version, '1.19')||startsWith(matrix.version, '1.18')) && '17' || startsWith(matrix.version, '1.17') && '16' || '8' }} java
|
||||
uses: actions/setup-java@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
distribution: liberica
|
||||
java-version: ${{ (startsWith(matrix.version, 'latest')||startsWith(matrix.version, '1.19')||startsWith(matrix.version, '1.18')) && '17' || startsWith(matrix.version, '1.17') && '16' || '8' }}
|
||||
|
||||
- name: Build
|
||||
continue-on-error: true
|
||||
run: |
|
||||
wget -qO build.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
|
||||
java -jar build.jar --rev "${{ matrix.version || 'latest' }}"
|
||||
|
||||
- name: Upload to actifial
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.version || 'latest' }}
|
||||
path: "*.jar"
|
||||
|
||||
# Upload
|
||||
upload:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Code checkout
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
- name: Install node depencies
|
||||
run: npm install --no-save
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: artifacts
|
||||
|
||||
- name: Upload to actifial
|
||||
run: node .github/uploadToBucket.ts SpigotBuild artifacts
|
||||
env:
|
||||
OCI_AUTHKEY: ${{ secrets.OCI_AUTHKEY }}
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -3,4 +3,7 @@ node_modules/
|
||||
|
||||
# Typescript
|
||||
packages/**/*.js
|
||||
packages/**/*.d.ts
|
||||
packages/**/*.d.ts
|
||||
|
||||
# PHP Pre builds
|
||||
phpOutput/
|
Reference in New Issue
Block a user