diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a01d72b..ab271658 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,164 +5,234 @@ on: [push, pull_request] jobs: ubuntu-gcc: runs-on: ubuntu-latest + timeout-minutes: 60 steps: - name: Checkout V + id: checkout_v uses: actions/checkout@v4 with: repository: vlang/v - name: Checkout gitly + id: checkout_gitly + if: ${{ success() && !cancelled() }} uses: actions/checkout@v4 with: path: gitly - name: Install Dependencies + id: install_dependencies + if: ${{ success() && !cancelled() }} run: sudo apt install libsqlite3-dev - name: Build V + id: build_v + if: ${{ success() && !cancelled() }} run: | make sudo ./v symlink - name: Compile gitly + id: compile_gitly + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc gcc . - - name: Compile gitly with -autofree + - name: Compile gitly with -autofree (non-blocking, vlang/v#30190) + id: compile_gitly_with_autofree + if: ${{ success() && !cancelled() }} + continue-on-error: true run: | cd gitly v -cc gcc -autofree . - name: Compile gitly with -prod + id: compile_gitly_with_prod + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc gcc -prod . - name: Compile CSS from SCSS files + id: compile_css_from_scss_files + if: ${{ success() && !cancelled() }} uses: gha-utilities/sass-build@v0.4.11 with: source: gitly/static/css/gitly.scss destination: gitly/static/css/gitly.css - name: Run all tests + id: run_all_tests + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc gcc -d sqlite -d use_openssl test $(git ls-files '*_test.v') - name: Run tests/first_run.v + id: run_tests_first_run_v + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc gcc -g run tests/first_run.v macos-clang: runs-on: macos-latest + timeout-minutes: 60 steps: - name: Checkout V + id: checkout_v uses: actions/checkout@v4 with: repository: vlang/v - name: Checkout gitly + id: checkout_gitly + if: ${{ success() && !cancelled() }} uses: actions/checkout@v4 with: path: gitly - name: Build V + id: build_v + if: ${{ success() && !cancelled() }} run: | make ./v symlink - name: Compile gitly + id: compile_gitly + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc clang . - - name: Compile gitly with -autofree + - name: Compile gitly with -autofree (non-blocking, vlang/v#30190) + id: compile_gitly_with_autofree + if: ${{ success() && !cancelled() }} + continue-on-error: true run: | cd gitly v -cc clang -autofree . - name: Compile gitly with -prod + id: compile_gitly_with_prod + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc clang -prod . - name: Compile CSS from SCSS files + id: compile_css_from_scss_files + if: ${{ success() && !cancelled() }} uses: gha-utilities/sass-build@v0.4.11 with: source: gitly/static/css/gitly.scss destination: gitly/static/css/gitly.css - name: Run all tests + id: run_all_tests + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc clang -d sqlite -d use_openssl test $(git ls-files '*_test.v') - name: Run tests/first_run.v + id: run_tests_first_run_v + if: ${{ success() && !cancelled() }} run: | cd gitly v -cc clang -g run tests/first_run.v windows-gcc: runs-on: windows-latest + timeout-minutes: 60 env: VFLAGS: -cc gcc steps: - name: Checkout V + id: checkout_v uses: actions/checkout@v4 with: repository: vlang/v - name: Checkout gitly + id: checkout_gitly + if: ${{ success() && !cancelled() }} uses: actions/checkout@v4 with: path: gitly - name: Build V + id: build_v + if: ${{ success() && !cancelled() }} + shell: cmd run: | - ./make.bat -gcc - - # Must come after "Build V": this used to run first, when neither `v` - # nor `v.exe` existed, so the referenced script could not work at all. + make.bat -gcc + # Must run after "Build V": the script shells out to `v.exe`, which + # does not exist until V is built. - name: Install SQLite - run: .\gitly\.github\workflows\windows-install-sqlite.bat - + id: install_sqlite + if: ${{ success() && !cancelled() }} + shell: cmd + run: | + gitly\.github\workflows\windows-install-sqlite.bat - name: Compile gitly + id: compile_gitly + if: ${{ success() && !cancelled() }} run: | dir - .\v.exe -cc gcc gitly + .\v.exe -cc gcc -d sqlite gitly ubuntu-tcc: runs-on: ubuntu-latest + timeout-minutes: 60 env: VFLAGS: -cc tcc -d no_backtrace -d no_segfault_handler steps: - name: Checkout V + id: checkout_v uses: actions/checkout@v4 with: repository: vlang/v - name: Checkout gitly + id: checkout_gitly + if: ${{ success() && !cancelled() }} uses: actions/checkout@v4 with: path: gitly - name: Install Dependencies + id: install_dependencies + if: ${{ success() && !cancelled() }} run: sudo apt install libsqlite3-dev - name: Build V + id: build_v + if: ${{ success() && !cancelled() }} run: | echo $VFLAGS make sudo ./v symlink - - name: Compile gitly with -autofree + - name: Compile gitly with -autofree (non-blocking, vlang/v#30190) + id: compile_gitly_with_autofree + if: ${{ success() && !cancelled() }} + continue-on-error: true run: | cd gitly v -autofree . - name: Compile gitly + id: compile_gitly + if: ${{ success() && !cancelled() }} run: | cd gitly v . - name: Compile CSS from SCSS files + id: compile_css_from_scss_files + if: ${{ success() && !cancelled() }} uses: gha-utilities/sass-build@v0.4.11 with: source: gitly/static/css/gitly.scss destination: gitly/static/css/gitly.css - name: Run all tests + id: run_all_tests + if: ${{ success() && !cancelled() }} run: | cd gitly v -d sqlite -d use_openssl test $(git ls-files '*_test.v') - name: Run tests/first_run.v + id: run_tests_first_run_v + if: ${{ success() && !cancelled() }} run: | cd gitly v -g run tests/first_run.v diff --git a/repo/repo.v b/repo/repo.v index 68282424..6b9f2b06 100644 --- a/repo/repo.v +++ b/repo/repo.v @@ -29,12 +29,12 @@ mut: primary_branch string webhook_secret string tags_count int - nr_open_issues int @[orm: 'open_issues_count'] - nr_open_prs int @[orm: 'open_prs_count'] - nr_releases int @[orm: 'releases_count'] - nr_branches int @[orm: 'branches_count'] + nr_open_issues int @[sql: 'open_issues_count'] + nr_open_prs int @[sql: 'open_prs_count'] + nr_releases int @[sql: 'releases_count'] + nr_branches int @[sql: 'branches_count'] nr_tags int - nr_stars int @[orm: 'stars_count'] + nr_stars int @[sql: 'stars_count'] lang_stats []LangStat @[skip] created_at int nr_contributors int