Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: fix and update workflows #157

Merged
merged 2 commits into from
Oct 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 73 additions & 55 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,109 +2,127 @@ name: CI

on:
push:
branches:
- 'master'
paths-ignore: ['**/*.md', '^\.*', 'LICENSE']
pull_request:
paths-ignore: ['**/*.md', '^\.*', 'LICENSE']
schedule:
- cron: '31 1,12 * * *'

jobs:
ubuntu:
runs-on: ubuntu-latest
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Checkout V
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: vlang/v
- name: Checkout c2v
uses: actions/checkout@v2
- name: Checkout C2V
uses: actions/checkout@v4
with:
path: c2v

- name: Install Dependencies
- name: Install dependencies
run: |
sudo apt-get update -y -qq
sudo apt-get install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev

if [ "${{ runner.os }}" == "Linux" ]; then
sudo apt update -y -qq
sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
else
brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate
fi
- name: Build V
run: make && ./v symlink -githubci

- name: Build c2v and setup ~/code
run: make -j4 && ./v symlink -githubci
- name: Setup C2V
run: |
ls -la /home/runner/work/c2v/c2v/c2v
ln -s /home/runner/work/c2v/c2v/c2v ~/.vmodules/c2v
mkdir -p ~/code/
v -g ~/.vmodules/c2v/
~/.vmodules/c2v/c2v || true

- name: Test c2v
mv c2v ~/.vmodules/c2v
v -g ~/.vmodules/c2v/ || true
- name: Test C2V
run: |
v -g test ~/.vmodules/c2v/
v -g run ~/.vmodules/c2v/tests/run_tests.vsh

- name: Build original Chocolate Doom
run: |
git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
cd ~/code/doom/chocolate-doom
cmake -DCMAKE_BUILD_TYPE=Debug .
make chocolate-doom

- name: Translate just p_enemy.v
run: |
cd ~/.vmodules/c2v/
v -g run tools/build_doom_file.vsh doom/p_enemy

- name: Translate the whole game in project/folder mode
run: |
cd ~/code/doom
touch ~/DOOM1.WAD
WAD_FILE=~/DOOM1.WAD ~/code/doom/build_whole_project.sh

macos:
runs-on: macos-latest
test-regressions:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
VFLAGS: -cc tcc
DISPLAY: :99
LIBGL_ALWAYS_SOFTWARE: true
VTMP: /tmp
steps:
- name: Checkout V
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: vlang/v
- name: Checkout c2v
uses: actions/checkout@v2
- name: Checkout C2V
uses: actions/checkout@v4
with:
path: c2v

- name: Install Dependencies
run: brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate

- name: Install dependencies
run: |
sudo apt update -y -qq
sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev
# c2v / DOOM dependencies
# vgret dependencies
# imagemagick : convert, mogrify, import
# xvfb : For starting X11 Virtual FrameBuffers
# openimageio-tools : idiff
# libgl1-mesa-dri : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
# freeglut3-dev : Fixes graphic apps compilation with tcc
sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip
- name: Setup test tools
run: |
# Fetch the free ~4MB DOOM1.WAD from the link at https://doomwiki.org/wiki/DOOM1.WAD
wget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O ~/doom1.wad
# Get imgur upload script
wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh
chmod +x ./imgur.sh
# Get regression images to test against
git clone https://github.com/Larpon/doom-regression-images
- name: Build V
run: make && ./v symlink -githubci

- name: Build c2v and setup ~/code
run: make -j4 && ./v symlink -githubci
- name: Setup C2V
run: |
ls -la /Users/runner/work/c2v/c2v/c2v
ln -s /Users/runner/work/c2v/c2v/c2v ~/.vmodules/c2v
mkdir -p ~/code/
v -g ~/.vmodules/c2v/
~/.vmodules/c2v/c2v || true

- name: Test c2v
mv c2v ~/.vmodules/c2v
v -g ~/.vmodules/c2v/ || true
- name: Test C2V
run: |
v -g test ~/.vmodules/c2v/
v -g run ~/.vmodules/c2v/tests/run_tests.vsh

- name: Build original Chocolate Doom
run: |
git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom
cd ~/code/doom/chocolate-doom
cmake -DCMAKE_BUILD_TYPE=Debug .
make chocolate-doom

- name: Translate just p_enemy.v
run: |
cd ~/.vmodules/c2v/
v -g run tools/build_doom_file.vsh doom/p_enemy

- name: Translate the whole game in project/folder mode
run: WAD_FILE=~/doom1.wad ~/code/doom/build_whole_project.sh
- name: Sample and compare
id: compare
continue-on-error: true
run: |
cd ~/code/doom
touch ~/DOOM1.WAD
WAD_FILE=~/DOOM1.WAD ~/code/doom/build_whole_project.sh
Xvfb $DISPLAY -screen 0 800x600x24 -fbdir /var/tmp/ &
sleep 1; while [ ! -f /var/tmp/Xvfb_screen0 ]; do sleep 0.5; done # give xvfb time to start, even on slow CI runs
sleep 1; v gret -r ~/code/doom -t ./doom-regression-images/vgret.doom.toml -v ./doom-sample_images ./doom-regression-images
- name: Upload regression to imgur
if: steps.compare.outcome != 'success'
run: |
./imgur.sh /tmp/fail.png
./imgur.sh /tmp/diff.png
exit 1
100 changes: 0 additions & 100 deletions .github/workflows/doom_gfx_regressions.yml

This file was deleted.