Compare commits

..

17 commits

Author SHA1 Message Date
Dan Vargas
a1aba52c3a pkg(php-8.0.2): Fix environment bin path 2021-03-14 20:07:30 +13:00
Dan Vargas
5fbc0d7f1b pkg(ruby-2.5.1): Added ruby 2.5.1 2021-03-14 20:07:30 +13:00
Thomas Hobson
2ab508b4d2
cli: basename main file 2021-03-14 19:36:12 +13:00
Thomas Hobson
877473b128
ci(package): Dump logs always 2021-03-14 19:31:41 +13:00
Thomas Hobson
935b6cd517
ci(package): adjust index for localhost 2021-03-14 19:21:41 +13:00
Thomas Hobson
ddbd4617f1
ci(package): run yarn before testing 2021-03-14 19:14:30 +13:00
Thomas Hobson
41d807dec4
ci(package): Add testing routine 2021-03-14 19:07:54 +13:00
Thomas Hobson
015365f043
ci(package): put downloaded packages in correct folder 2021-03-14 18:37:11 +13:00
Thomas Hobson
ada44e41b5
repo: logging verbosity 2021-03-14 18:27:28 +13:00
Thomas Hobson
6290fdfdba
ci(package): dump logs 2021-03-14 18:15:05 +13:00
Thomas Hobson
c751653b3a
ci(package): network index to api 2021-03-14 18:11:39 +13:00
Thomas Hobson
aaadef6db9
ci(package): wait for index 2021-03-14 18:08:37 +13:00
Thomas Hobson
72f0f61448
ci(package): wait for index to start 2021-03-14 18:05:20 +13:00
Thomas Hobson
94ac5c42aa
ci(packge): move detached flag 2021-03-14 18:01:45 +13:00
Thomas Hobson
8834462ac2
ci(package): login to package registry 2021-03-14 17:59:21 +13:00
Thomas Hobson
e1d9ae69c9
ci(packages): add testing 2021-03-14 17:57:11 +13:00
Thomas Hobson
81235d2c39
ci(package): no build on test 2021-03-14 17:38:56 +13:00
10 changed files with 95 additions and 8 deletions

View file

@ -55,6 +55,9 @@ jobs:
with: with:
name: packages name: packages
- name: Relocate downloaded packages
run: mv *.pkg.tar.gz packages/
- name: Write test config file - name: Write test config file
uses: DamianReeves/write-file-action@v1.0 uses: DamianReeves/write-file-action@v1.0
with: with:
@ -71,18 +74,67 @@ jobs:
output_max_size: 1024 output_max_size: 1024
max_process_count: 64 max_process_count: 64
max_open_files: 2048 max_open_files: 2048
repo_url: http://piston_fs_repo:8000/index repo_url: http://localhost:8000/index
write-mode: overwrite write-mode: overwrite
- name: Login to GitHub registry
uses: docker/login-action@v1
with:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: docker.pkg.github.com
- name: Run tests - name: Run tests
run: | run: |
docker run -v $(pwd)'/repo:/piston/repo' -v $(pwd)'/packages:/piston/packages' --name piston_fs_repo docker.pkg.github.com/engineer-man/piston/repo-builder $PACKAGES & ls -la
docker run -v $(pwd)'/data:/piston' --name api docker.pkg.github.com/engineer-man/piston/api & docker run -v $(pwd)'/repo:/piston/repo' -v $(pwd)'/packages:/piston/packages' -d --name piston_fs_repo docker.pkg.github.com/engineer-man/piston/repo-builder --no-build
docker run --network container:piston_fs_repo -v $(pwd)'/data:/piston' -d --name api docker.pkg.github.com/engineer-man/piston/api
echo Waiting for API to start.. echo Waiting for API to start..
while [[ "$(curl -s -w '%{http_code}' http://api:6969/runtimes)" != "200" ]]; do sleep 5; done docker run --network container:api appropriate/curl -s --retry 10 --retry-connrefused http://localhost:6969/runtimes
echo Waiting for Index to start..
docker run --network container:piston_fs_repo appropriate/curl -s --retry 10 --retry-connrefused http://localhost:8000/index
echo Adjusting index
sed -i 's/piston_fs_repo/localhost/g' repo/index
echo Listing Packages
PACKAGES_JSON=$(docker run --network container:api appropriate/curl -s http://localhost:6969/packages)
echo $PACKAGES_JSON
echo Getting CLI ready
docker run -v "$PWD/cli:/app" --entrypoint /bin/bash node:15 -c 'cd /app; yarn'
for package in $(jq -r '.[] | "\(.language)-\(.language_version)"' <<< "$PACKAGES_JSON")
do
echo "Testing $package"
PKG_PATH=$(sed 's|-|/|' <<< $package)
PKG_NAME=$(awk -F- '{ print $1 }' <<< $package)
PKG_VERSION=$(awk -F- '{ print $2 }' <<< $package)
echo "Installing..."
docker run --network container:api appropriate/curl -sXPOST http://localhost:6969/packages/$PKG_PATH
TEST_SCRIPTS=packages/$PKG_PATH/test.*
echo "Tests: $TEST_SCRIPTS"
for tscript in $TEST_SCRIPTS
do
TEST_RUNTIME=$(awk -F. '{print $2}' <<< $(basename $tscript))
echo Running $tscript with runtime=$TEST_RUNTIME
docker run --network container:api -v "$PWD/cli:/app" -v "$PWD/$(dirname $tscript):/pkg" node:15 /app/index.js run $TEST_RUNTIME $PKG_VERSION /pkg/$(basename $tscript) | grep OK
done
done
- name: Dump logs
if: ${{ always() }}
run: |
docker logs api
docker logs piston_fs_repo
echo Testing packages

View file

@ -52,7 +52,7 @@ exports.handler = async function(argv){
language: argv.language, language: argv.language,
version: argv['language-version'], version: argv['language-version'],
files: files, files: files,
main: argv.file, main: path.basename(argv.file),
args: argv.args, args: argv.args,
stdin, stdin,
compile_timeout: argv.ct, compile_timeout: argv.ct,
@ -85,6 +85,8 @@ exports.handler = async function(argv){
) )
} }
if(response.compile) step('Compile', response.compile) if(response.compile) step('Compile', response.compile)
step('Run', response.run) step('Run', response.run)

View file

@ -1 +1 @@
export PATH=$PWD/php-8.0.2/bin:$PATH export PATH=$PWD/bin:$PATH

19
packages/ruby/2.5.1/build.sh vendored Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
PREFIX=$(realpath $(dirname $0))
mkdir -p build
cd build
curl "https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz" -o ruby.tar.gz
tar xzf ruby.tar.gz --strip-components=1
rm ruby.tar.gz
./configure --prefix "$PREFIX"
make -j$(nproc)
make install -j$(nproc)
cd ..
rm -rf build

1
packages/ruby/2.5.1/environment vendored Normal file
View file

@ -0,0 +1 @@
export PATH=$PWD/bin:$PATH

6
packages/ruby/2.5.1/metadata.json vendored Normal file
View file

@ -0,0 +1,6 @@
{
"language": "ruby",
"version": "2.5.1",
"author": "Dan Vargas <danvargas46@gmail.com>",
"aliases": ["ruby", "rb"]
}

3
packages/ruby/2.5.1/run vendored Normal file
View file

@ -0,0 +1,3 @@
#!/bin/bash
ruby $*

1
packages/ruby/2.5.1/test.rb vendored Normal file
View file

@ -0,0 +1 @@
puts("OK")

View file

@ -28,10 +28,12 @@ do
elif [[ $CI -eq 1 ]]; then elif [[ $CI -eq 1 ]]; then
echo "Commit SHA: $pkg" echo "Commit SHA: $pkg"
cd ..
echo "Changed files:" echo "Changed files:"
git diff --name-only $pkg^1 $pkg git diff --name-only $pkg^1 $pkg
PACKAGES=$(git diff --name-only $pkg^1 $pkg | awk -F/ '{ print $2 "-" $3 }' | sort -u) PACKAGES=$(git diff --name-only $pkg^1 $pkg | awk -F/ '{ print $2 "-" $3 }' | sort -u)
cd packages
echo "Building packages: $PACKAGES" echo "Building packages: $PACKAGES"
for package in "$PACKAGES"; do for package in "$PACKAGES"; do
make -j16 $package.pkg.tar.gz make -j16 $package.pkg.tar.gz

View file

@ -17,6 +17,7 @@ do
PKGCHECKSUM=$(sha256sum $PKGFILE | awk '{print $1}') PKGCHECKSUM=$(sha256sum $PKGFILE | awk '{print $1}')
echo "$PKGNAME,$PKGVERSION,$PKGCHECKSUM,$BASEURL$PKGFILE" >> index echo "$PKGNAME,$PKGVERSION,$PKGCHECKSUM,$BASEURL$PKGFILE" >> index
echo "Adding package $PKGNAME-$PKGVERSION"
((i=i+1)) ((i=i+1))
done done