-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
129 additions
and
103 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,11 +14,11 @@ env: | |
demo_dir: "/home/kitten" | ||
|
||
jobs: | ||
# build-linux: | ||
# runs-on: ubuntu-latest | ||
# strategy: | ||
# matrix: | ||
# include: | ||
build-linux: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
include: | ||
# - os: buster | ||
# compiler: g++ | ||
# cpp: 17 | ||
|
@@ -34,109 +34,117 @@ jobs: | |
# cpp: 20 | ||
# asan: on | ||
# ubsan: off | ||
# - os: jammy | ||
# compiler: g++ | ||
# cpp: 20 | ||
# asan: on | ||
# ubsan: off | ||
|
||
# name: "${{matrix.os}}/${{matrix.compiler}}/c++${{matrix.cpp}}/asan=${{matrix.asan}}/ubsan=${{matrix.ubsan}}" | ||
|
||
# steps: | ||
# - uses: actions/checkout@v3 | ||
- os: jammy | ||
compiler: g++ | ||
cpp: 20 | ||
asan: on | ||
ubsan: off | ||
|
||
# - name: Get polyfills repo | ||
# uses: actions/checkout@v3 | ||
# with: | ||
# repository: 'VKCOM/kphp-polyfills' | ||
# path: 'kphp-polyfills' | ||
name: "${{matrix.os}}/${{matrix.compiler}}/c++${{matrix.cpp}}/asan=${{matrix.asan}}/ubsan=${{matrix.ubsan}}" | ||
|
||
# - name: Cache docker image | ||
# uses: actions/cache@v3 | ||
# id: docker-image-cache | ||
# with: | ||
# path: kphp-build-env-${{matrix.os}}.tar | ||
# key: docker-image-cache-${{matrix.os}}-${{ hashFiles('.github/workflows/Dockerfile.*', 'tests/python/requirements.txt') }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
# - name: Build and save docker image | ||
# if: steps.docker-image-cache.outputs.cache-hit != 'true' | ||
# run: | | ||
# docker build -f $GITHUB_WORKSPACE/.github/workflows/Dockerfile.${{matrix.os}} $GITHUB_WORKSPACE -t kphp-build-img-${{matrix.os}} | ||
# docker save --output kphp-build-env-${{matrix.os}}.tar kphp-build-img-${{matrix.os}} | ||
- name: Get polyfills repo | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: 'VKCOM/kphp-polyfills' | ||
path: 'kphp-polyfills' | ||
|
||
- name: Cache docker image | ||
uses: actions/cache@v3 | ||
id: docker-image-cache | ||
with: | ||
path: kphp-build-env-${{matrix.os}}.tar | ||
key: docker-image-cache-${{matrix.os}}-${{ hashFiles('.github/workflows/Dockerfile.*', 'tests/python/requirements.txt') }} | ||
|
||
- name: Build and save docker image | ||
if: steps.docker-image-cache.outputs.cache-hit != 'true' | ||
run: | | ||
docker build -f $GITHUB_WORKSPACE/.github/workflows/Dockerfile.${{matrix.os}} $GITHUB_WORKSPACE -t kphp-build-img-${{matrix.os}} | ||
docker save --output kphp-build-env-${{matrix.os}}.tar kphp-build-img-${{matrix.os}} | ||
# - name: Load docker image from cache | ||
# if: steps.docker-image-cache.outputs.cache-hit == 'true' | ||
# run: docker load --input kphp-build-env-${{matrix.os}}.tar | ||
|
||
# - name: Start docker container | ||
# run: | | ||
# docker run -dt --name kphp-build-container-${{matrix.os}} kphp-build-img-${{matrix.os}} | ||
# docker cp $GITHUB_WORKSPACE/. kphp-build-container-${{matrix.os}}:${{env.kphp_root_dir}} | ||
- name: Load docker image from cache | ||
if: steps.docker-image-cache.outputs.cache-hit == 'true' | ||
run: docker load --input kphp-build-env-${{matrix.os}}.tar | ||
|
||
# - name: Add git safe directory | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "git config --global --add safe.directory ${{env.kphp_root_dir}}" | ||
|
||
# - name: Build all | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "cmake -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DADDRESS_SANITIZER=${{matrix.asan}} -DUNDEFINED_SANITIZER=${{matrix.ubsan}} -DPDO_DRIVER_MYSQL=ON -DPDO_DRIVER_PGSQL=ON -DPDO_LIBS_STATIC_LINKING=ON -S ${{env.kphp_root_dir}} -B ${{env.kphp_build_dir}} && make -C ${{env.kphp_build_dir}} -j$(nproc) all" | ||
|
||
# - name: Run unit tests | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "make -C ${{env.kphp_build_dir}} -j$(nproc) test" | ||
|
||
# - name: Compile dummy PHP script | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "cd ${{env.kphp_build_dir}} && echo 'hello world' > demo.php && ${{env.kphp_root_dir}}/objs/bin/kphp2cpp --cxx ${{matrix.compiler}} demo.php && kphp_out/server -o --user kitten" | ||
|
||
# - name: Polyfills composer install | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "composer install -d ${{env.kphp_polyfills_dir}}" | ||
|
||
# - name: Run python tests | ||
# id: python_tests | ||
# continue-on-error: true | ||
# run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
# "chown -R kitten /home && su kitten -c 'GITHUB_ACTIONS=1 KPHP_TESTS_POLYFILLS_REPO=${{env.kphp_polyfills_dir}} KPHP_CXX=${{matrix.compiler}} python3.7 -m pytest --tb=native -n$(nproc) ${{env.kphp_root_dir}}/tests/python/'" | ||
|
||
# - name: Prepare python tests artifacts | ||
# if: steps.python_tests.outcome == 'failure' | ||
# run: docker cp kphp-build-container-${{matrix.os}}:${{env.kphp_root_dir}}/tests/python/_tmp/ ${{runner.temp}} && | ||
# rm -rf ${{runner.temp}}/_tmp/*/working_dir | ||
|
||
# - name: Upload python tests artifacts | ||
# uses: actions/upload-artifact@v3 | ||
# if: steps.python_tests.outcome == 'failure' | ||
# with: | ||
# path: ${{runner.temp}}/_tmp/ | ||
|
||
# - name: Fail pipeline if python tests failed | ||
# if: steps.python_tests.outcome == 'failure' | ||
# run: exit 1 | ||
|
||
# - name: Remove docker container | ||
# run: docker rm -f kphp-build-container-${{matrix.os}} | ||
|
||
install-linux: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
include: | ||
- os: buster | ||
- os: focal | ||
- os: jammy | ||
- name: Start docker container | ||
run: | | ||
docker run -dt --name kphp-build-container-${{matrix.os}} kphp-build-img-${{matrix.os}} | ||
docker cp $GITHUB_WORKSPACE/. kphp-build-container-${{matrix.os}}:${{env.kphp_root_dir}} | ||
- name: Add git safe directory | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"git config --global --add safe.directory ${{env.kphp_root_dir}}" | ||
|
||
- name: Build all | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"cmake -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DADDRESS_SANITIZER=${{matrix.asan}} -DUNDEFINED_SANITIZER=${{matrix.ubsan}} -DPDO_DRIVER_MYSQL=ON -DPDO_DRIVER_PGSQL=ON -DPDO_LIBS_STATIC_LINKING=ON -S ${{env.kphp_root_dir}} -B ${{env.kphp_build_dir}} && make -C ${{env.kphp_build_dir}} -j$(nproc) all" | ||
|
||
- name: Run unit tests | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"make -C ${{env.kphp_build_dir}} -j$(nproc) test" | ||
|
||
- name: Compile dummy PHP script | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"cd ${{env.kphp_build_dir}} && echo 'hello world' > demo.php && ${{env.kphp_root_dir}}/objs/bin/kphp2cpp --cxx ${{matrix.compiler}} demo.php && kphp_out/server -o --user kitten" | ||
|
||
- name: Polyfills composer install | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"composer install -d ${{env.kphp_polyfills_dir}}" | ||
|
||
- name: Run python tests | ||
id: python_tests | ||
continue-on-error: true | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"chown -R kitten /home && su kitten -c 'GITHUB_ACTIONS=1 KPHP_TESTS_POLYFILLS_REPO=${{env.kphp_polyfills_dir}} KPHP_CXX=${{matrix.compiler}} python3.7 -m pytest --tb=native -n$(nproc) ${{env.kphp_root_dir}}/tests/python/'" | ||
|
||
- name: Prepare python tests artifacts | ||
if: steps.python_tests.outcome == 'failure' | ||
run: docker cp kphp-build-container-${{matrix.os}}:${{env.kphp_root_dir}}/tests/python/_tmp/ ${{runner.temp}} && | ||
rm -rf ${{runner.temp}}/_tmp/*/working_dir | ||
|
||
- name: Upload python tests artifacts | ||
uses: actions/upload-artifact@v3 | ||
if: steps.python_tests.outcome == 'failure' | ||
with: | ||
path: ${{runner.temp}}/_tmp/ | ||
|
||
- name: Fail pipeline if python tests failed | ||
if: steps.python_tests.outcome == 'failure' | ||
run: exit 1 | ||
|
||
- name: Prepare for buildling deb package | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
'cd ${{env.kphp_root_dir}} && export DEBEMAIL="[email protected]" && export DEBFULLNAME="Andrey Arutiunian"' | ||
|
||
- name: Build deb package | ||
run: docker exec kphp-build-container-${{matrix.os}} bash -c | ||
"dh_make && ls" | ||
|
||
- name: Remove docker container | ||
run: docker rm -f kphp-build-container-${{matrix.os}} | ||
|
||
# install-linux: | ||
# runs-on: ubuntu-latest | ||
# strategy: | ||
# matrix: | ||
# include: | ||
# - os: buster | ||
# - os: focal | ||
# - os: jammy | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
# steps: | ||
# - uses: actions/checkout@v3 | ||
|
||
- name: Build and start Docker container | ||
run: | | ||
docker build -f $GITHUB_WORKSPACE/.github/workflows/Dockerfile.${{matrix.os}}.install $GITHUB_WORKSPACE -t kphp-build-img-${{matrix.os}}-install | ||
docker run -dt --name kphp-build-container-${{matrix.os}}-install kphp-build-img-${{matrix.os}}-install | ||
# - name: Build and start Docker container | ||
# run: | | ||
# docker build -f $GITHUB_WORKSPACE/.github/workflows/Dockerfile.${{matrix.os}}.install $GITHUB_WORKSPACE -t kphp-build-img-${{matrix.os}}-install | ||
# docker run -dt --name kphp-build-container-${{matrix.os}}-install kphp-build-img-${{matrix.os}}-install | ||
|
||
- name: Run php dummy script | ||
run: docker exec -u kitten kphp-build-container-${{matrix.os}}-install bash -c | ||
"cd ${{env.demo_dir}} && echo 'hello world' > demo.php && kphp --mode=cli --cxx=g++ demo.php && ./kphp_out/cli -o --user kitten" | ||
# - name: Run php dummy script | ||
# run: docker exec -u kitten kphp-build-container-${{matrix.os}}-install bash -c | ||
# "cd ${{env.demo_dir}} && echo 'hello world' > demo.php && kphp --mode=cli --cxx=g++ demo.php && ./kphp_out/cli -o --user kitten" | ||
|
||
# build-macos: | ||
# runs-on: ${{matrix.os}}-12 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,8 +10,26 @@ RUN apt install -y software-properties-common && apt update && \ | |
add-apt-repository ppa:ondrej/php -y && \ | ||
apt update | ||
|
||
RUN apt install -y git cmake make g++ lld gperf netcat php7.4-vkext kphp vk-tl-tools && \ | ||
mkdir -p /var/www/vkontakte/data/www/vkontakte.com/tl/ && \ | ||
tl-compiler -e /var/www/vkontakte/data/www/vkontakte.com/tl/scheme.tlo /usr/share/vkontakte/examples/tl-files/common.tl /usr/share/vkontakte/examples/tl-files/tl.tl | ||
# RUN apt install -y git cmake make g++ lld gperf netcat php7.4-vkext kphp vk-tl-tools && \ | ||
# mkdir -p /var/www/vkontakte/data/www/vkontakte.com/tl/ && \ | ||
# tl-compiler -e /var/www/vkontakte/data/www/vkontakte.com/tl/scheme.tlo /usr/share/vkontakte/examples/tl-files/common.tl /usr/share/vkontakte/examples/tl-files/tl.tl | ||
|
||
RUN apt update && \ | ||
apt install -y git cmake make g++ lld gperf netcat build-essential binutils lintian debhelper dh-make devscripts | ||
|
||
RUN apt-cache search kphp-test | ||
|
||
RUN export DEBEMAIL="[email protected]" | ||
RUN export DEBFULLNAME="Andrey Arutiunian" | ||
|
||
RUN dh_make | ||
|
||
RUN ls | ||
|
||
RUN cd debian && cat control && cat copyright && cat rules | ||
|
||
RUN dpkg-buildpackage | ||
|
||
RUN dpkg -i | ||
|
||
RUN useradd -ms /bin/bash kitten |