diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..6b1f500 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,155 @@ +name: Build + +on: push + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" + +jobs: + static: + strategy: + fail-fast: true + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Export GitHub Actions cache environment variables + uses: actions/github-script@v6 + with: + script: | + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + + - working-directory: 'C:/vcpkg' + run: git remote add openmw https://github.com/elsid/vcpkg.git + + - working-directory: 'C:/vcpkg' + run: git fetch openmw + + - working-directory: 'C:/vcpkg' + run: git checkout 6c3e3f54ffc27cc47ee1b3233dfcac2363c9fe62 + + - working-directory: 'C:/vcpkg' + run: ./bootstrap-vcpkg.bat -disableMetrics + + - name: Install vcpkg packages + run: > + vcpkg install --triplet x64-windows-static + boost-geometry + boost-iostreams + boost-locale + boost-program-options + bullet3[double-precision,multithreading] + ffmpeg + freetype + icu + luajit + lz4 + mygui + openal-soft + openmw-osg + sdl2 + + - name: Export installed vcpkg packages + run: > + vcpkg export + --x-all-installed + --7zip + --output-dir ${{ github.workspace }} + --output openmw-deps-vcpkg-x64-windows-static-${{ github.sha }} + + - name: Store exported vcpkg packages + uses: actions/upload-artifact@v4 + with: + name: openmw-deps-vcpkg-x64-windows-static-${{ github.sha }} + path: ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z + + # - name: Push exported vcpkg package to gitlab + # shell: bash + # run: | + # env GIT_LFS_SKIP_SMUDGE=1 git clone git@gitlab.com:elsid/openmw-deps.git + # cd openmw-deps + # mv ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z + # git checkout -b openmw-deps-vcpkg-x64-windows-static-${{ github.sha }} + # git lfs track openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z + # git add openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z + # git commit -m 'Add openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z' + # git push origin openmw-deps-vcpkg-x64-windows-static-${{ github.sha }} + + dynamic: + strategy: + fail-fast: true + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Export GitHub Actions cache environment variables + uses: actions/github-script@v6 + with: + script: | + core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); + core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); + + - working-directory: 'C:/vcpkg' + run: git remote add openmw https://github.com/elsid/vcpkg.git + + - working-directory: 'C:/vcpkg' + run: git fetch openmw + + - working-directory: 'C:/vcpkg' + run: git checkout 6c3e3f54ffc27cc47ee1b3233dfcac2363c9fe62 + + - working-directory: 'C:/vcpkg' + run: ./bootstrap-vcpkg.bat -disableMetrics + + - name: Install vcpkg packages + run: > + vcpkg install --triplet x64-windows + boost-geometry + boost-iostreams + boost-locale + boost-program-options + bullet3[double-precision,multithreading] + ffmpeg + freetype + icu + luajit + lz4 + mygui + openal-soft + openmw-osg + sdl2 + + - name: Export installed vcpkg packages + run: > + vcpkg export + --x-all-installed + --7zip + --output-dir ${{ github.workspace }} + --output openmw-deps-vcpkg-x64-windows-${{ github.sha }} + + - name: Store exported vcpkg packages + uses: actions/upload-artifact@v4 + with: + name: openmw-deps-vcpkg-x64-windows-${{ github.sha }} + path: ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z + + - name: Push exported vcpkg package to gitlab + shell: bash + run: | + env GIT_LFS_SKIP_SMUDGE=1 git clone git@gitlab.com:elsid/openmw-deps.git + cd openmw-deps + mv ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z + git checkout -b openmw-deps-vcpkg-x64-windows-${{ github.sha }} + git lfs track openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z + git add openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z + git commit -m 'Add openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z' + git push origin openmw-deps-vcpkg-x64-windows-${{ github.sha }}