diff --git a/.github/workflows/package-push.yaml b/.github/workflows/package-push.yaml new file mode 100644 index 0000000..ad33f3e --- /dev/null +++ b/.github/workflows/package-push.yaml @@ -0,0 +1,76 @@ +name: 'Package Pushed' + +on: + push: + branches: + - master + - v3 + paths: + - packages/** + + +jobs: + build-pkg: + name: Build package + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Login to GitHub registry + uses: docker/login-action@v1 + with: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: docker.pkg.github.com + + - name: Get list of changed files + uses: lots0logs/gh-action-get-changed-files@2.1.4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Packages + run: | + PACKAGES=$(jq '.[]' -r ${HOME}/files.json | awk -F/ '{ print $2 "-" $3 }' | sort -u) + echo "Packages: $PACKAGES" + docker run -v "${{ github.workspace }}:/piston" docker.pkg.github.com/engineer-man/piston/repo-builder:latest --no-server $PACKAGES + ls -la packages + + - name: Upload Packages + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: packages/*.pkg.tar.gz + tag: pkgs + overwrite: true + file_glob: true + create-index: + name: Create Index + runs-on: ubuntu-latest + needs: build-pkg + steps: + - name: "Download all release assets" + run: curl -s https://api.github.com/repos/engineer-man/piston/releases/latest | jq '.assets[].browser_download_url' -r | xargs -L 1 curl -sLO + - name: "Generate index file" + run: | + echo "" > index + BASEURL=https://github.com/engineer-man/piston/releases/download/pkgs/ + for pkg in *.pkg.tar.gz + do + PKGFILE=$(basename $pkg) + PKGFILENAME=$(echo $PKGFILE | sed 's/\.pkg\.tar\.gz//g') + + PKGNAME=$(echo $PKGFILENAME | grep -oP '^\K.+(?=-)') + PKGVERSION=$(echo $PKGFILENAME | grep -oP '^.+-\K.+') + PKGCHECKSUM=$(sha256sum $PKGFILE | awk '{print $1}') + echo "$PKGNAME,$PKGVERSION,$PKGCHECKSUM,$BASEURL$PKGFILE" >> index + echo "Adding package $PKGNAME-$PKGVERSION" + done + - name: Upload index + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: index + tag: pkgs + overwrite: true + file_glob: true \ No newline at end of file diff --git a/api/src/config.js b/api/src/config.js index 2ad3ffc..ade4a36 100644 --- a/api/src/config.js +++ b/api/src/config.js @@ -57,7 +57,7 @@ const options = [ { key: 'runner_uid_min', desc: 'Minimum uid to use for runner', - default: 1000, + default: 1001, validators: [] }, { @@ -69,7 +69,7 @@ const options = [ { key: 'runner_gid_min', desc: 'Minimum gid to use for runner', - default: 1000, + default: 1001, validators: [] }, { @@ -105,7 +105,7 @@ const options = [ { key: 'repo_url', desc: 'URL of repo index', - default: 'https://github.com', + default: 'https://github.com/engineer-man/piston/releases/download/pkgs/index', validators: [] } ]; diff --git a/packages/Makefile b/packages/Makefile index c0cf6fe..22566f2 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -11,10 +11,11 @@ build build-all: $(addsuffix .pkg.tar.gz, ${PACKAGES}) define PKG_RULE -$(1).pkg.tar.gz: $(subst -,/,$(1))/ $(subst -,/,$(1))/pkg-info.json +$(1).pkg.tar.gz: $(subst -,/,$(1)) $(subst -,/,$(1))/pkg-info.json cd $$< && chmod +x ./build.sh && ./build.sh rm -f $$@ - tar czf $$@ $$< --transform='s|$$<||' + + tar czf $$@ -C $$< . endef $(foreach pkg,$(PACKAGES),$(eval $(call PKG_RULE,$(pkg)))) diff --git a/packages/bash/5.1.0/build.sh b/packages/bash/5.1.0/build.sh index 67ba7b8..657ae7a 100755 --- a/packages/bash/5.1.0/build.sh +++ b/packages/bash/5.1.0/build.sh @@ -18,3 +18,4 @@ make -j$(nproc) make install -j$(nproc) cd ../ rm -rf build + diff --git a/packages/bash/5.1.0/test.bash b/packages/bash/5.1.0/test.bash.sh similarity index 100% rename from packages/bash/5.1.0/test.bash rename to packages/bash/5.1.0/test.bash.sh diff --git a/packages/dart/2.12.1/build.sh b/packages/dart/2.12.1/build.sh index e01d7ce..d202d7f 100755 --- a/packages/dart/2.12.1/build.sh +++ b/packages/dart/2.12.1/build.sh @@ -8,4 +8,4 @@ rm dart.zip cp -r dart-sdk/* . rm -rf dart-sdk -chmod -R +rx bin \ No newline at end of file +chmod -R +rx bin diff --git a/packages/deno/1.7.5/build.sh b/packages/deno/1.7.5/build.sh index 0b0674c..165d3b6 100755 --- a/packages/deno/1.7.5/build.sh +++ b/packages/deno/1.7.5/build.sh @@ -2,4 +2,4 @@ curl -L https://github.com/denoland/deno/releases/download/v1.7.5/deno-x86_64-un unzip -o deno.zip rm deno.zip -chmod +x deno \ No newline at end of file +chmod +x deno diff --git a/packages/deno/1.7.5/test.ts b/packages/deno/1.7.5/test.deno.ts similarity index 100% rename from packages/deno/1.7.5/test.ts rename to packages/deno/1.7.5/test.deno.ts diff --git a/packages/gawk/5.1.0/build.sh b/packages/gawk/5.1.0/build.sh index 25a5566..81fb998 100644 --- a/packages/gawk/5.1.0/build.sh +++ b/packages/gawk/5.1.0/build.sh @@ -18,3 +18,4 @@ make -j$(nproc) make install -j$(nproc) cd ../ rm -rf build + diff --git a/packages/gcc/10.2.0/build.sh b/packages/gcc/10.2.0/build.sh index 942e4ac..0f4be80 100755 --- a/packages/gcc/10.2.0/build.sh +++ b/packages/gcc/10.2.0/build.sh @@ -23,3 +23,4 @@ make -j$(nproc) make install -j$(nproc) cd ../ rm -rf build obj + diff --git a/packages/go/1.16.2/build.sh b/packages/go/1.16.2/build.sh index c45964c..5cf70f9 100755 --- a/packages/go/1.16.2/build.sh +++ b/packages/go/1.16.2/build.sh @@ -2,3 +2,4 @@ curl -LO https://golang.org/dl/go1.16.2.linux-amd64.tar.gz tar -xzf go1.16.2.linux-amd64.tar.gz rm go1.16.2.linux-amd64.tar.gz + diff --git a/packages/java/15.0.2/build.sh b/packages/java/15.0.2/build.sh index 3d56ee0..aef09a6 100755 --- a/packages/java/15.0.2/build.sh +++ b/packages/java/15.0.2/build.sh @@ -6,3 +6,4 @@ curl "https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48e tar xzf java.tar.gz --strip-components=1 rm java.tar.gz + diff --git a/packages/jelly/0.1.31/build.sh b/packages/jelly/0.1.31/build.sh index 8aec708..db57122 100755 --- a/packages/jelly/0.1.31/build.sh +++ b/packages/jelly/0.1.31/build.sh @@ -9,4 +9,4 @@ cd build/jelly ../../bin/python3.9 setup.py install --optimize=1 cd ../../ -rm -rf build \ No newline at end of file +rm -rf build diff --git a/packages/julia/1.5.4/build.sh b/packages/julia/1.5.4/build.sh index 46beaeb..d9e746c 100755 --- a/packages/julia/1.5.4/build.sh +++ b/packages/julia/1.5.4/build.sh @@ -3,3 +3,4 @@ curl -OL https://julialang-s3.julialang.org/bin/linux/x64/1.5/julia-1.5.4-linux-x86_64.tar.gz tar zxvf julia-1.5.4-linux-x86_64.tar.gz rm julia-1.5.4-linux-x86_64.tar.gz + diff --git a/packages/kotlin/1.4.31/build.sh b/packages/kotlin/1.4.31/build.sh index 4ea535d..e921dd5 100755 --- a/packages/kotlin/1.4.31/build.sh +++ b/packages/kotlin/1.4.31/build.sh @@ -7,4 +7,4 @@ unzip kotlin.zip rm kotlin.zip cp -r kotlinc/* . -rm -rf kotlinc \ No newline at end of file +rm -rf kotlinc diff --git a/packages/mono/6.12.0/build.sh b/packages/mono/6.12.0/build.sh index 31bfaa9..2cecc07 100755 --- a/packages/mono/6.12.0/build.sh +++ b/packages/mono/6.12.0/build.sh @@ -17,3 +17,4 @@ make install -j$(nproc) cd ../../ rm -rf build + diff --git a/packages/nasm/2.15.5/build.sh b/packages/nasm/2.15.5/build.sh index 1e1f4c3..0f39f6f 100755 --- a/packages/nasm/2.15.5/build.sh +++ b/packages/nasm/2.15.5/build.sh @@ -18,3 +18,4 @@ make -j$(nproc) make install -j$(nproc) cd ../ rm -rf build + diff --git a/packages/node/15.10.0/build.sh b/packages/node/15.10.0/build.sh index 25d419d..6a84798 100755 --- a/packages/node/15.10.0/build.sh +++ b/packages/node/15.10.0/build.sh @@ -1,4 +1,4 @@ #!/bin/bash curl "https://nodejs.org/dist/v15.10.0/node-v15.10.0-linux-x64.tar.xz" -o node.tar.xz tar xf node.tar.xz --strip-components=1 -rm node.tar.xz \ No newline at end of file +rm node.tar.xz diff --git a/packages/php/8.0.2/build.sh b/packages/php/8.0.2/build.sh index 0a94615..b84a80d 100755 --- a/packages/php/8.0.2/build.sh +++ b/packages/php/8.0.2/build.sh @@ -17,4 +17,4 @@ make -j$(nproc) make install -j$(nproc) cd ../../ -rm -rf build \ No newline at end of file +rm -rf build diff --git a/packages/python/3.9.1/build.sh b/packages/python/3.9.1/build.sh index 875a191..ec2a2d5 100755 --- a/packages/python/3.9.1/build.sh +++ b/packages/python/3.9.1/build.sh @@ -18,3 +18,4 @@ cd .. rm -rf build + diff --git a/packages/ruby/2.5.1/build.sh b/packages/ruby/2.5.1/build.sh index 6f7def1..7403e87 100755 --- a/packages/ruby/2.5.1/build.sh +++ b/packages/ruby/2.5.1/build.sh @@ -17,3 +17,4 @@ make install -j$(nproc) cd .. rm -rf build + diff --git a/packages/typescript/4.2.3/build.sh b/packages/typescript/4.2.3/build.sh index 83ab333..9182055 100755 --- a/packages/typescript/4.2.3/build.sh +++ b/packages/typescript/4.2.3/build.sh @@ -4,4 +4,4 @@ source ../../node/15.10.0/build.sh source ./environment -bin/npm install -g typescript@4.2.3 \ No newline at end of file +bin/npm install -g typescript@4.2.3 diff --git a/repo/entrypoint.sh b/repo/entrypoint.sh index a0f7e1a..6c47e37 100755 --- a/repo/entrypoint.sh +++ b/repo/entrypoint.sh @@ -23,7 +23,7 @@ do else if [[ $BUILD -eq 1 ]]; then echo "Building package $pkg" - make -j16 $pkg.pkg.tar.gz + make -j16 $pkg.pkg.tar.gz PLATFORM=docker-debian echo "Done with package $pkg" elif [[ $CI -eq 1 ]]; then echo "Commit SHA: $pkg" @@ -36,7 +36,7 @@ do echo "Building packages: $PACKAGES" for package in "$PACKAGES"; do - make -j16 $package.pkg.tar.gz + make -j16 $package.pkg.tar.gz PLATFORM=docker-debian done else