name: Time CI on: push: paths: - 'vlib/**' - 'cmd/tools/builders/**.v' - '**/time_ci.yml' - '!**.md' pull_request: paths: - 'vlib/**' - 'cmd/tools/builders/**.v' - '**/time_ci.yml' - '!**.md' concurrency: group: time-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }} cancel-in-progress: true jobs: time-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Build V run: make - name: Test time functions in a timezone UTC-12 run: TZ=Etc/GMT+12 ./v test vlib/time/ - name: Test time functions in a timezone UTC-3 run: TZ=Etc/GMT+3 ./v test vlib/time/ - name: Test time functions in a timezone UTC+3 run: TZ=Etc/GMT-3 ./v test vlib/time/ - name: Test time functions in a timezone UTC+12 run: TZ=Etc/GMT-12 ./v test vlib/time/ - name: Test in a timezone using daylight saving (Europe/Paris) run: TZ=Europe/Paris ./v test vlib/time/ time-macos: runs-on: macos-14 steps: - uses: actions/checkout@v6 - name: Build V run: make - name: Test time functions in a timezone UTC-12 run: TZ=Etc/GMT+12 ./v test vlib/time/ - name: Test time functions in a timezone UTC-3 run: TZ=Etc/GMT+3 ./v test vlib/time/ - name: Test time functions in a timezone UTC+3 run: TZ=Etc/GMT-3 ./v test vlib/time/ - name: Test time functions in a timezone UTC+12 run: TZ=Etc/GMT-12 ./v test vlib/time/ - name: Test in a timezone using daylight saving (Europe/Paris) run: TZ=Europe/Paris ./v test vlib/time/ time-windows: runs-on: windows-2025 steps: - uses: actions/checkout@v6 - name: Build V run: .\makev.bat - name: Test time functions in a timezone UTC-12 run: tzutil /s "Dateline Standard Time" && ./v test vlib/time/ - name: Test time functions in a timezone UTC-3 run: tzutil /s "Greenland Standard Time" && ./v test vlib/time/ - name: Test time functions in a timezone UTC+3 run: tzutil /s "Russian Standard Time" && ./v test vlib/time/ - name: Test time functions in a timezone UTC+12 run: tzutil /s "New Zealand Standard Time" && ./v test vlib/time/ - name: Test in a timezone using daylight saving (Europe/Paris) run: tzutil /s "W. Europe Standard Time" && ./v test vlib/time/