Skip to content

examples: add proof-of-concept record and replay implementaion #179

examples: add proof-of-concept record and replay implementaion

examples: add proof-of-concept record and replay implementaion #179

Workflow file for this run

name: Code CI
on:
push:
paths-ignore:
- "**.md"
pull_request:
paths-ignore:
- "**.md"
concurrency:
group: general-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
code-formatting:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
VFLAGS: -cc tcc
steps:
- name: Checkout V
uses: actions/checkout@v2
with:
repository: vlang/v
- name: Build local v
run: make -j4 && sudo ./v symlink
- name: Checkout shy
uses: actions/checkout@v2
with:
path: shy
- name: Test code formatting
run: |
cd shy
v test-fmt
# TODO this makes formatting checks fail?
#- name: Simulate "v install shy"
# run: mv shy ~/.vmodules
- name: Symlink as module
run: sudo ln -s $(pwd)/shy ~/.vmodules/shy # Workaround for doing `mv shy ~/.vmodules`
- name: Build shy with -skip-unused
run: v -skip-unused ~/.vmodules/shy
- name: Build shy
run: v -g ~/.vmodules/shy
- name: Symlink shy command
run: sudo ln -s ~/.vmodules/shy/shy /usr/local/bin/shy
# TODO broken with $embed_file
#- name: Test clean shy code
# run: |
# shy test-cleancode ~/.vmodules/shy
ubuntu-latest-bootstrap:
runs-on: ubuntu-20.04 # use 20.04 for now (SDL2 compile issue)
timeout-minutes: 20
env:
VFLAGS: -cc tcc -no-retry-compilation
SDL2_VERSION: 2.0.8
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --quiet -y libsdl2-dev libsdl2-ttf-dev
sudo apt-get install --quiet -y libsdl2-mixer-dev libsdl2-image-dev
curl -L https://www.libsdl.org/release/SDL2-${SDL2_VERSION}.tar.gz -o SDL2.tar.gz
tar -zxvf SDL2.tar.gz
- name: Build SDL
run: |
cd SDL2-${SDL2_VERSION}
mkdir build
cd build
../configure --prefix /tmp/sdl2-${SDL2_VERSION}
make
make install
- name: Checkout V
uses: actions/checkout@v2
with:
repository: vlang/v
- name: Build local v
run: make -j4 && sudo ./v symlink
- name: Install sdl module
run: v install sdl
- name: Checkout shy
uses: actions/checkout@v2
with:
path: shy
- name: Simulate "v install shy"
run: mv shy ~/.vmodules
- name: Run tests
run: v test ~/.vmodules/shy
- name: Build shy with -prod
run: v -prod ~/.vmodules/shy
- name: Build shy
run: v -g ~/.vmodules/shy
- name: Symlink shy
run: sudo ln -s ~/.vmodules/shy/shy /usr/local/bin/shy
- name: Run 'shy --help'
run: shy --help
- name: Run 'shy doctor'
run: shy doctor
- name: Test shy complete
run: |
[ "$(shy complete bash shy com)" = "COMPREPLY+=('complete')" ]
- name: Build shy example
run: |
export CFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --cflags)"
export LDFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --libs)"
v -d sdl_no_compile_flags ~/.vmodules/shy/examples/hello_world
ubuntu-latest-shy-can-live-anywhere:
runs-on: ubuntu-20.04 # use 20.04 for now
timeout-minutes: 10
env:
VFLAGS: -cc tcc -no-retry-compilation
SDL2_VERSION: 2.0.8
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --quiet -y libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev
curl -L https://www.libsdl.org/release/SDL2-${SDL2_VERSION}.tar.gz -o SDL2.tar.gz
tar -zxvf SDL2.tar.gz
- name: Build SDL
run: |
cd SDL2-${SDL2_VERSION}
mkdir build
cd build
../configure --prefix /tmp/sdl2-${SDL2_VERSION}
make
make install
- name: Checkout V
uses: actions/checkout@v2
with:
repository: vlang/v
- name: Build local v
run: make && sudo ./v symlink
- name: Install sdl module
run: v install sdl
- name: Checkout shy
uses: actions/checkout@v2
with:
path: shy
- name: Simulate "v install shy"
run: mv shy ~/.vmodules
- name: Run tests
run: v test ~/.vmodules/shy
- name: Build shy
run: v -g ~/.vmodules/shy
- name: Move shy
run: |
sudo mv ~/.vmodules/shy/shy /usr/bin/shy
- name: Run 'shy --help'
run: /usr/bin/shy --help
- name: Run 'shy doctor'
run: /usr/bin/shy doctor
- name: Build shy example
run: |
export CFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --cflags)"
export LDFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --libs)"
v -d sdl_no_compile_flags ~/.vmodules/shy/examples/hello_world
ubuntu-latest-build:
runs-on: ubuntu-latest # use 20.04 for now (SDL2 compile issue)
timeout-minutes: 20
env:
VFLAGS: -cc tcc -no-retry-compilation
SDL2_VERSION: 2.0.10
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --quiet -y libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev
curl -L https://www.libsdl.org/release/SDL2-${SDL2_VERSION}.tar.gz -o SDL2.tar.gz
tar -zxvf SDL2.tar.gz
- name: Build SDL
run: |
cd SDL2-${SDL2_VERSION}
mkdir build
cd build
../configure --prefix /tmp/sdl2-${SDL2_VERSION}
make
make install
- name: Checkout V
uses: actions/checkout@v2
with:
repository: vlang/v
- name: Build local v
run: make && sudo ./v symlink
- name: Install sdl module
run: v install sdl
- name: Checkout shy
uses: actions/checkout@v2
with:
path: shy
- name: Simulate "v install shy"
run: mv shy ~/.vmodules
- name: Build shy
run: v -g ~/.vmodules/shy
- name: Symlink shy
run: sudo ln -s ~/.vmodules/shy/shy /usr/local/bin/shy
- name: Run 'shy --help'
run: shy --help
- name: Run 'shy doctor'
run: shy doctor
- name: Build shy examples
run: |
export CFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --cflags)"
export LDFLAGS="$(/tmp/sdl2-${SDL2_VERSION}/bin/sdl2-config --libs)"
v -d sdl_no_compile_flags -skip-unused should-compile-all ~/.vmodules/shy/examples
v -d sdl_no_compile_flags -d shy_analyse should-compile-all ~/.vmodules/shy/examples
v -d sdl_no_compile_flags -d shy_vet should-compile-all ~/.vmodules/shy/examples
sdl-branch-versions:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
sdl-version: [2.0.9, 2.0.10, 2.0.12, 2.0.14, 2.0.16, 2.0.18, 2.0.20, 2.0.22, 2.24.0, 2.26.0, 2.28.0]
timeout-minutes: 20
env:
VFLAGS: -cc tcc -no-retry-compilation
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install --quiet -y mesa-common-dev
curl -L https://www.libsdl.org/release/SDL2-${{ matrix.sdl-version }}.tar.gz -o SDL2.tar.gz
tar -zxvf SDL2.tar.gz
- name: Build SDL
run: |
cd SDL2-${{ matrix.sdl-version }}
mkdir build
cd build
../configure
make
sudo make install
- name: Checkout V
uses: actions/checkout@v2
with:
repository: vlang/v
- name: Build local v
run: make && sudo ./v symlink
- name: Checkout SDL ${{ matrix.sdl-version }}
uses: actions/checkout@v2
with:
ref: ${{ matrix.sdl-version }}
repository: vlang/sdl
path: sdl
- name: Simulate "v install sdl"
run: |
mkdir -p ~/.vmodules
mv sdl ~/.vmodules
- name: Checkout shy
uses: actions/checkout@v2
with:
path: shy
- name: Simulate "v install shy"
run: mv shy ~/.vmodules
- name: Build shy
run: v -g ~/.vmodules/shy
- name: Symlink shy
run: sudo ln -s ~/.vmodules/shy/shy /usr/local/bin/shy
- name: Run 'shy --help'
run: shy --help
- name: Run 'shy doctor'
run: shy doctor
- name: Build shy examples
run: |
v -d sdl_no_compile_flags -skip-unused should-compile-all ~/.vmodules/shy/examples
v -d sdl_no_compile_flags -d shy_analyse should-compile-all ~/.vmodules/shy/examples
v -d sdl_no_compile_flags -d shy_vet should-compile-all ~/.vmodules/shy/examples