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