aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends/d2sqlite3/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext_depends/d2sqlite3/.github/workflows')
-rw-r--r--src/ext_depends/d2sqlite3/.github/workflows/main.yaml127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/ext_depends/d2sqlite3/.github/workflows/main.yaml b/src/ext_depends/d2sqlite3/.github/workflows/main.yaml
new file mode 100644
index 0000000..103d945
--- /dev/null
+++ b/src/ext_depends/d2sqlite3/.github/workflows/main.yaml
@@ -0,0 +1,127 @@
+# Github worflow to test this library on all platforms,
+# build the documentation, and upload it to Github pages.
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+ main:
+ name: Run
+ strategy:
+ # Disable `fail-fast` because we want the whole test suite to run even if one
+ # of the nigthly is broken
+ fail-fast: false
+ matrix:
+# TODO: FIXME. Requires fixes to the dub.sdl to work on Windows
+# os: [ ubuntu-18.04, macOS-10.15, windows-2019 ]
+ os: [ ubuntu-18.04, macOS-10.15 ]
+ # Oldest supported FE is 2.088.1 because older DMD don't work on macOS-10.15
+ dc: [ ldc-master, ldc-latest, ldc-1.21.0, dmd-master, dmd-latest, dmd-2.088.1 ]
+
+ runs-on: ${{ matrix.os }}
+ timeout-minutes: 30
+ steps:
+
+ - uses: actions/checkout@v2
+ - name: Prepare compiler
+ uses: dlang-community/setup-dlang@v1
+ with:
+ compiler: ${{ matrix.dc }}
+
+ # Install os-specific packages
+ # Those will show up in the list of steps, but be grayed out,
+ # hence the usage of the `[OSX]` tag
+ - name: '[OSX] Install dependencies & setup environment'
+ if: runner.os == 'macOS'
+ run: |
+ echo "LIBRARY_PATH=${LD_LIBRARY_PATH-}:/usr/local/lib/" >> $GITHUB_ENV
+ echo "PKG_CONFIG_PATH=/usr/local/opt/sqlite/lib/pkgconfig" >> $GITHUB_ENV
+
+ - name: '[Linux] Install dependencies & setup environment'
+ if: runner.os == 'Linux'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y libsqlite3-dev
+
+ - name: '[Windows] Install dependencies & setup environment'
+ if: runner.os == 'Windows'
+ shell: powershell
+ run: |
+ echo "LIB=${{ github.workspace }}\lib\win64\;$LIB" >> $GITHUB_ENV
+
+ # Add whatever debugging information can be useful in the long run here
+ - name: Print system information
+ shell: bash
+ run: |
+ ${DC} --version
+ dub --version
+
+ # Build and run the tests
+ - name: '[POSIX] Build & test Agora'
+ if: runner.os != 'Windows'
+ #continue-on-error: matrix.dc == 'ldc-master' || matrix.dc == 'dmd-master'
+ run: dub test -c ci
+
+ - name: '[Windows] Build & test Agora'
+ if: runner.os == 'Windows'
+ #continue-on-error: matrix.dc == 'ldc-master' || matrix.dc == 'dmd-master'
+ shell: cmd
+ run: |
+ call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
+ dub test -c ci
+
+ # Documentation build: Only runs on Linux
+ # Still need to install dependencies and the compiler because DDOX
+ # does a full build
+ doc:
+ name: Build and upload documentation
+ needs: main
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ steps:
+
+ # Checkout this repository and its submodules
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ # Install the D compiler
+ - name: Prepare compiler
+ uses: dlang-community/setup-dlang@v1
+ with:
+ compiler: ldc-latest
+
+ - name: 'Install dependencies & setup environment'
+ run: |
+ sudo apt-get update
+ sudo apt-get install libsqlite3-dev
+
+ - name: Build documentation
+ run: |
+ dub build -b ddox
+ # Generate the HTML to docs
+ dub run ddox -- generate-html docs.json ./docs/
+
+ - name: Upload documentation artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: documentation
+ path: docs/
+
+ - name: Deploy documentation
+ if: github.event_name == 'push'
+ run: |
+ # Remove gh-branch if it already exists, check it out
+ git branch -D gh-pages || true
+ git checkout --orphan gh-pages
+ # Remove all staged files - We only need the docs
+ git rm -rf $(git ls-files)
+ # We can have some leftover files (e.g. build)
+ # So add docs (which is only what we need), then `git mv` it.
+ git add docs/
+ git mv -k docs/* ./
+ # Configure user (because persist-credentials does not persist everything...)
+ git config --global user.name "${{ github.actor }}"
+ git config --global user.email "${{ github.actor }}@users.noreply.github.com"
+ # We're done
+ git commit -m "Documentation for commit ${{ github.sha }}"
+ git push -f ${{ github.event.repository.clone_url }} gh-pages:gh-pages