summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml112
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