@@ -15,14 +15,21 @@ inputs:
1515runs :
1616 using : ' composite'
1717 steps :
18+ - name : Setup PHP
19+ uses : shivammathur/setup-php@v2
20+ with :
21+ php-version : ${{ inputs.php-version }}
22+ extensions : dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite
23+ coverage : none
24+
1825 - name : Set environment variables
1926 shell : bash
2027 run : |
21- php_version ="${{ inputs.php-version }}"
28+ PHP_VERSION_TAG ="${{ inputs.php-version }}"
2229 laravel_version="${{ inputs.laravel-version }}"
2330 platform="${{ inputs.platform }}"
2431
25- php_tag="${php_version //./}"
32+ php_tag="${PHP_VERSION_TAG //./}"
2633 laravel_tag="${laravel_version//[.*]/}"
2734
2835 # Convert to numbers and calculate port: 9090 + php_tag + laravel_tag
@@ -36,95 +43,30 @@ runs:
3643 port=$base_port
3744 fi
3845
39- echo "PHP_VERSION=$php_version " >> $GITHUB_ENV
46+ echo "PHP_VERSION_TAG=$PHP_VERSION_TAG " >> $GITHUB_ENV
4047 echo "LARAVEL_VERSION=$laravel_version" >> $GITHUB_ENV
41- echo "PHP_TAG =$php_tag" >> $GITHUB_ENV
48+ echo "PHP_VERSION =$php_tag" >> $GITHUB_ENV
4249 echo "LARAVEL_TAG=$laravel_tag" >> $GITHUB_ENV
4350 echo "SLS_TINKER_LAMBDA_ENDPOINT=http://localhost:$port" >> $GITHUB_ENV
4451 echo "PORT=$port" >> $GITHUB_ENV
4552 echo "PLATFORM=$platform" >> $GITHUB_ENV
53+ echo "DOCKER_IMAGE=${{ inputs.platform }}-$php_tag-$laravel_tag" >> $GITHUB_ENV
4654
47- - name : Setup PHP
48- uses : shivammathur/setup-php@v2
49- with :
50- php-version : ${{ inputs.php-version }}
51- extensions : dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite
52- coverage : none
53-
54- - name : Install dependencies & Laravel App
55+ - name : Create App
5556 shell : bash
5657 run : |
57- composer create-project "laravel/laravel:${{ inputs.laravel-version }}" --no-interaction app
58- cd app
59- php artisan key:generate
60-
61- - name : Install Bref
62- if : inputs.platform == 'bref'
63- shell : bash
64- run : |
65- cd app
66- composer require bref/bref:^2 --no-interaction
67-
68- - name : Install Vapor Core
69- if : inputs.platform == 'vapor'
70- shell : bash
71- run : |
72- cd app
73- composer require laravel/vapor-core --no-interaction
74- composer global require laravel/vapor-cli
75- mkdir -p ~/.laravel-vapor
76- cat <<EOF > ~/.laravel-vapor/config.json
77- {
78- "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiMDdjMmVlODhmYzkyNjQyNjg1YWI5N2FhMjIzNGU2MjYwZWMyM2RjYWQzYjJmOWM0YjVlY2JjY2YwZTU3MzJhNDI3NDRiZDI1NWIwYjg0NDEiLCJpYXQiOjE3NTUzNjQzOTIuMTE3NzExLCJuYmYiOjE3NTUzNjQzOTIuMTE3NzE0LCJleHAiOjE5MTMxMzA3OTIuMTA3ODU3LCJzdWIiOiI2ODk5OSIsInNjb3BlcyI6WyIqIl19.Ma0-GJjBvqs2irvHbW5oOrEJn0I-FCjSXV-zK20LIzwbgSfZNTMvViheazfO1roOow1UyANmzoPGnTyo2EndFM6G0p-UDiB03ce-36Bgj7JKOJ_156omPXsqrPhN7P9nDER1zmas9gM4UHwlHW2k67U9v050FjVT_TBeFvVe6gtWPKLZdTLTT5xmaqZvnAWbNUO_wq4exnmPnzFYVXpDYuuD2fgtzPXAzXauvm1BGR4YBMGvzSx1JCyc-OBnEwdsQIMAomU6lHrybQJzYefHugNx6oHIe2BQtMblsWQOPPSRqD5ciGTnzWdQ1PxBYd7FS3jWRoqv4FWJuTJo7krIPYiBfQtsUXaCnzOyx8pLpFiOCQE5HeldtdmT4KH5VXkYWsZKoA3_gdnTwyeoBaP8TvKt0mE6a6mQhMzasUkPk8-lASsRBHti5dqEu8FEQWWdEGm4--fzH7bN7i2vMsR9nUCXrJx0lLL7e3VL9j6igAKqQssK8gkxhd4q38g1L2esbdkNa6nbv8fGfPaWcOlbEyKog19pRIblCDj3wdtXNJjts1FNmxNSeYuxjKh5Wselx_PRkhLEbFoAIMmWbBEGdVC0p_gByt7yL3-wOFD69PA2SoctyoSKnae9E7w6V_OeDKrcXimbZugW6O0oCLbzhFslcZ0rMbaN0W3r-CRYUDA",
79- "team": 83505
80- }
81- EOF
82-
83- - name : Install package from local path
84- shell : bash
85- working-directory : app
86- run : |
87- # Add local package to composer.json
88- composer config repositories.local path ../package
89- composer require datpmwork/sls-tinker:@dev
90- rm -rf vendor/datpmwork/sls-tinker
91- cp -r ../package vendor/datpmwork/sls-tinker
92-
93- - name : Vapor Build
94- shell : bash
95- working-directory : app
96- if : inputs.platform == 'vapor'
97- run : |
98- cat <<EOF > vapor.yml
99- id: 72679
100- name: vapor
101- environments:
102- production:
103- memory: 1024
104- cli-memory: 512
105- runtime: 'php-8.4:al2'
106- build:
107- - 'rm -rf bootstrap/cache/*'
108- - 'composer install --no-dev'
109- - 'php artisan event:cache'
110- # - 'npm ci && npm run build && rm -rf node_modules'
111- EOF
112- ~/.composer/vendor/bin/vapor build production || exit 0
58+ docker build --build-arg PHP_VERSION_TAG=$PHP_VERSION_TAG \
59+ --build-arg PHP_VERSION=$PHP_VERSION \
60+ --build-arg PHP_LARAVEL_TAG=$LARAVEL_VERSION \
61+ -t $DOCKER_IMAGE -f Dockerfile --target ${{ inputs.platform }} .
11362
11463 - name : Create Docker Instance
11564 shell : bash
11665 run : |
117- if [[ "${{ inputs.platform }}" == "bref" ]]; then
118- docker build -t ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG -f package/tests/Dockerfile --build-arg PHP_VERSION=$PHP_TAG --target ${{ inputs.platform }} .
119- docker run -d --rm -p $PORT:8080 --name ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG artisan
120- elif [[ "${{ inputs.platform }}" == "vapor" ]]; then
121- docker build -t ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG -f package/tests/Dockerfile --build-arg PHP_VERSION=$PHP_TAG --target ${{ inputs.platform }} .
122- docker run -d --rm -p $PORT:8080 -e VAPOR_SSM_PATH=test -e LAMBDA_TASK_ROOT=/var/task -e APP_RUNNING_IN_CONSOLE=true --name ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG ${{ inputs.platform }}-$PHP_TAG-$LARAVEL_TAG artisan
123- fi
66+ docker run -d --rm -p $PORT:8080 --name $DOCKER_IMAGE $DOCKER_IMAGE artisan
12467
12568 - name : Execute tests
12669 shell : bash
127- working-directory : package
12870 run : |
12971 composer install
13072 php vendor/bin/testbench package:sync-skeleton
13476 if : always()
13577 shell : bash
13678 run : |
137- docker stop ${{ inputs.platform }}-$PHP_TAG -$LARAVEL_TAG
79+ docker stop ${{ inputs.platform }}-$PHP_VERSION -$LARAVEL_TAG
0 commit comments