diff options
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r-- | .github/workflows/build.yml | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f75c17f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,112 @@ +name: Build + +on: [push, pull_request] + +jobs: + build-linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Dependencies + run: | + sudo apt-get update + sudo apt install \ + libglib2.0-dev \ + libgirepository1.0-dev \ + duktape-dev \ + libsoup-3.0-dev \ + meson \ + gcovr \ + gi-docgen \ + gsettings-desktop-schemas-dev \ + libcurl4-openssl-dev \ + valac + - name: Build setup + run: meson setup build -Db_coverage=true + - name: Build + run: ninja -C build + - name: Tests and Coverage + run: | + ninja test -C build + ninja coverage -C build + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ./build/docs/libproxy-1.0/ + - name: CodeCov + uses: codecov/codecov-action@v3 + + build-osx: + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: | + 3.10 + - name: Setup + run: | + pip install meson ninja + brew install libsoup icu4c gobject-introspection duktape gcovr gi-docgen curl vala + echo 'PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gi-docgen/lib/pkgconfig' >> $GITHUB_ENV + - name: Build and Test + run: | + meson setup build + ninja -C build + ninja -C build test + + build-windows: + runs-on: windows-latest + continue-on-error: true + defaults: + run: + shell: msys2 {0} + steps: + - uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + install: >- + base-devel + git + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-ccache + mingw-w64-x86_64-pkg-config + mingw-w64-x86_64-gobject-introspection + mingw-w64-x86_64-python-gobject + mingw-w64-x86_64-meson + mingw-w64-x86_64-glib2 + mingw-w64-x86_64-duktape + mingw-w64-x86_64-gi-docgen + mingw-w64-x86_64-libsoup3 + mingw-w64-x86_64-curl + mingw-w64-x86_64-vala + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.9' + - name: Build and Test + # Disable docs for the moment until msys2 gi-docgen update has landed + run: | + meson setup build -Ddocs=false + ninja -C build + ninja -C build test + + # Deploy job + deploy: + # needs: [build-linux, build-osx, build-windows] + needs: build-linux + if: github.ref == 'refs/heads/main' + + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 |