mirror of
https://github.com/maplibre/martin.git
synced 2024-12-21 13:51:47 +03:00
9d6093fea8
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update default runtime to node20 by <a href="https://github.com/takost"><code>@takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li> <li>Support fetching without the --progress option by <a href="https://github.com/simonbaird"><code>@simonbaird</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li> <li>Release 4.0.0 by <a href="https://github.com/takost"><code>@takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/takost"><code>@takost</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li> <li><a href="https://github.com/simonbaird"><code>@simonbaird</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p> <h2>v3.6.0</h2> <h2>What's Changed</h2> <ul> <li>Mark test scripts with Bash'isms to be run via Bash by <a href="https://github.com/dscho"><code>@dscho</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li> <li>Add option to fetch tags even if fetch-depth > 0 by <a href="https://github.com/RobertWieczoreck"><code>@RobertWieczoreck</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li> <li>Release 3.6.0 by <a href="https://github.com/luketomlinson"><code>@luketomlinson</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/RobertWieczoreck"><code>@RobertWieczoreck</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li> <li><a href="https://github.com/luketomlinson"><code>@luketomlinson</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p> <h2>v3.5.3</h2> <h2>What's Changed</h2> <ul> <li>Fix: Checkout Issue in self hosted runner due to faulty submodule check-ins by <a href="https://github.com/megamanics"><code>@megamanics</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li> <li>Fix typos found by codespell by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li> <li>Add support for sparse checkouts by <a href="https://github.com/dscho"><code>@dscho</code></a> and <a href="https://github.com/dfdez"><code>@dfdez</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li> <li>Release v3.5.3 by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/megamanics"><code>@megamanics</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li> <li><a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li> <li><a href="https://github.com/dfdez"><code>@dfdez</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p> <h2>v3.5.2</h2> <h2>What's Changed</h2> <ul> <li>Fix: Use correct API url / endpoint in GHES by <a href="https://github.com/fhammerl"><code>@fhammerl</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a> based on <a href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a> by <a href="https://github.com/1newsr"><code>@1newsr</code></a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p> <h2>v3.5.1</h2> <h2>What's Changed</h2> <ul> <li>Improve checkout performance on Windows runners by upgrading <code>@actions/github</code> dependency by <a href="https://github.com/BrettDong"><code>@BrettDong</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/BrettDong"><code>@BrettDong</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v4.0.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1067">Support fetching without the --progress option</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1436">Update to node20</a></li> </ul> <h2>v3.6.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark test scripts with Bash'isms to be run via Bash</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/579">Add option to fetch tags even if fetch-depth > 0</a></li> </ul> <h2>v3.5.3</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1196">Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix typos found by codespell</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1369">Add support for sparse checkouts</a></li> </ul> <h2>v3.5.2</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1289">Fix api endpoint for GHES</a></li> </ul> <h2>v3.5.1</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1246">Fix slow checkout on Windows</a></li> </ul> <h2>v3.5.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1237">Add new public key for known_hosts</a></li> </ul> <h2>v3.4.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1209">Upgrade codeql actions to v2</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1210">Upgrade dependencies</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1225">Upgrade <code>@actions/io</code></a></li> </ul> <h2>v3.3.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/1045">Implement branch list using callbacks from exec function</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1050">Add in explicit reference to private checkout options</a></li> <li>[Fix comment typos (that got added in <a href="https://redirect.github.com/actions/checkout/issues/770">#770</a>)](<a href="https://redirect.github.com/actions/checkout/pull/1057">actions/checkout#1057</a>)</li> </ul> <h2>v3.2.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/942">Add GitHub Action to perform release</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/967">Fix status badge</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1002">Replace datadog/squid with ubuntu/squid Docker image</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/964">Wrap pipeline commands for submoduleForeach in quotes</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1029">Update <code>@actions/io</code> to 1.1.2</a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/1039">Upgrading version to 3.2.0</a></li> </ul> <h2>v3.1.0</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/939">Use <code>@actions/core</code> <code>saveState</code> and <code>getState</code></a></li> <li><a href="https://redirect.github.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li> </ul> <h2>v3.0.2</h2> <ul> <li><a href="https://redirect.github.com/actions/checkout/pull/770">Add input <code>set-safe-directory</code></a></li> </ul> <h2>v3.0.1</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="3df4ab11eb
"><code>3df4ab1</code></a> Release 4.0.0 (<a href="https://redirect.github.com/actions/checkout/issues/1447">#1447</a>)</li> <li><a href="8b5e8b7687
"><code>8b5e8b7</code></a> Support fetching without the --progress option (<a href="https://redirect.github.com/actions/checkout/issues/1067">#1067</a>)</li> <li><a href="97a652b800
"><code>97a652b</code></a> Update default runtime to node20 (<a href="https://redirect.github.com/actions/checkout/issues/1436">#1436</a>)</li> <li>See full diff in <a href="https://github.com/actions/checkout/compare/v3...v4">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
336 lines
12 KiB
YAML
336 lines
12 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'demo/**'
|
|
- 'docs/**'
|
|
- 'homebrew-formula/**'
|
|
pull_request:
|
|
branches: [ main ]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'demo/**'
|
|
- 'docs/**'
|
|
- 'homebrew-formula/**'
|
|
release:
|
|
types: [ published ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
# Don't change this name - it is used by the merge protection rules
|
|
name: Build ${{ matrix.target }}
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-gnu
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
- os: macOS-latest
|
|
target: x86_64-apple-darwin
|
|
- os: macOS-latest
|
|
target: aarch64-apple-darwin
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Rust Versions
|
|
shell: bash
|
|
run: |
|
|
rustc --version
|
|
cargo --version
|
|
- name: Lint
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
shell: bash
|
|
run: |
|
|
set -x
|
|
cargo fmt --all -- --check
|
|
cargo clippy --package martin-tile-utils -- -D warnings
|
|
cargo clippy --package martin-mbtiles -- -D warnings
|
|
cargo clippy --package martin-mbtiles --no-default-features --features native-tls -- -D warnings
|
|
cargo clippy --package martin-mbtiles --no-default-features --features rustls -- -D warnings
|
|
cargo clippy --package martin -- -D warnings
|
|
cargo clippy --package martin --features vendored-openssl -- -D warnings
|
|
cargo clippy --package martin --features bless-tests -- -D warnings
|
|
- name: Install OpenSSL (Windows)
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
|
|
vcpkg install openssl:x64-windows-static-md
|
|
- name: Install cargo-deb
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: |
|
|
sudo apt install -y dpkg dpkg-dev liblzma-dev
|
|
cargo install cargo-deb
|
|
- name: Run build
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ matrix.target }}" == "aarch64-apple-darwin" ]]; then
|
|
rustup target add aarch64-apple-darwin
|
|
# compile without debug symbols
|
|
RUSTFLAGS='-C link-arg=-s' cargo build --release --target ${{ matrix.target }} --features=vendored-openssl --package martin
|
|
RUSTFLAGS='-C link-arg=-s' cargo build --release --target ${{ matrix.target }} --features=cli --package martin-mbtiles
|
|
else
|
|
cargo build --release --target ${{ matrix.target }} --features=ssl --package martin
|
|
cargo build --release --target ${{ matrix.target }} --features=cli --package martin-mbtiles
|
|
fi
|
|
mkdir target_releases
|
|
if [[ "${{ runner.os }}" == "Windows" ]]; then
|
|
mv target/${{ matrix.target }}/release/martin.exe target_releases
|
|
mv target/${{ matrix.target }}/release/mbtiles.exe target_releases
|
|
else
|
|
mv target/${{ matrix.target }}/release/martin target_releases
|
|
mv target/${{ matrix.target }}/release/mbtiles target_releases
|
|
fi
|
|
- name: Run build (debian package)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
shell: bash
|
|
run: |
|
|
cargo deb -v -p martin --output target/debian/martin.deb
|
|
mv target/debian/martin.deb target_releases
|
|
- name: Save build artifact build-${{ matrix.target }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: build-${{ matrix.target }}
|
|
path: target_releases/*
|
|
|
|
test:
|
|
# Don't change this name - it is used by the merge protection rules
|
|
name: Test & package ${{ matrix.target }}
|
|
needs: [ build ]
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
ext: ''
|
|
target: x86_64-unknown-linux-gnu
|
|
name: martin-Linux-x86_64.tar.gz
|
|
- os: windows-latest
|
|
ext: '.exe'
|
|
target: x86_64-pc-windows-msvc
|
|
name: martin-Windows-x86_64.zip
|
|
- os: macOS-latest
|
|
ext: ''
|
|
target: x86_64-apple-darwin
|
|
name: martin-Darwin-x86_64.tar.gz
|
|
- os: ubuntu-latest
|
|
ext: ''
|
|
target: aarch64-apple-darwin
|
|
name: martin-Darwin-aarch64.tar.gz
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Start postgres
|
|
if: matrix.target != 'aarch64-apple-darwin'
|
|
uses: nyurik/action-setup-postgis@v1
|
|
id: pg
|
|
with:
|
|
username: test
|
|
password: test
|
|
database: test
|
|
rights: --superuser
|
|
- name: Log DATABASE_URL string
|
|
shell: bash
|
|
run: |
|
|
echo "DATABASE_URL=$DATABASE_URL"
|
|
echo "And in base64 to bypass Github's obfuscation:"
|
|
echo "$DATABASE_URL" | base64
|
|
env:
|
|
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
|
|
- name: Init database
|
|
if: matrix.target != 'aarch64-apple-darwin'
|
|
shell: bash
|
|
run: tests/fixtures/initdb.sh
|
|
env:
|
|
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
|
|
- name: Unit Tests (Linux)
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
shell: bash
|
|
run: |
|
|
set -x
|
|
cargo test --package martin-tile-utils
|
|
cargo test --package martin-mbtiles
|
|
cargo test --package martin-mbtiles --no-default-features --features rustls
|
|
cargo test --package martin --features vendored-openssl
|
|
cargo test --doc
|
|
rm -rf target
|
|
env:
|
|
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: build-${{ matrix.target }}
|
|
path: target/
|
|
- name: Integration Tests
|
|
if: matrix.target != 'aarch64-apple-darwin'
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ runner.os }}" != "Windows" ]]; then
|
|
chmod +x target/martin${{ matrix.ext }}
|
|
chmod +x target/mbtiles${{ matrix.ext }}
|
|
fi
|
|
tests/test.sh
|
|
env:
|
|
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
|
|
MARTIN_BUILD: "-"
|
|
MARTIN_BIN: target/martin${{ matrix.ext }}
|
|
MBTILES_BUILD: "-"
|
|
MBTILES_BIN: target/mbtiles${{ matrix.ext }}
|
|
- name: Integration Tests (with debian package)
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
shell: bash
|
|
run: |
|
|
sudo dpkg -i target/martin.deb
|
|
tests/test.sh
|
|
env:
|
|
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
|
|
MARTIN_BUILD: "-"
|
|
MARTIN_BIN: /usr/bin/martin
|
|
MBTILES_BUILD: "-"
|
|
MBTILES_BIN: target/mbtiles${{ matrix.ext }}
|
|
- name: Compare test output results (Linux)
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
run: diff --brief --recursive --new-file tests/output tests/expected
|
|
- name: Save test output on failure (Linux)
|
|
if: failure() && matrix.target == 'x86_64-unknown-linux-gnu'
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: failed-test-output
|
|
path: tests/output/*
|
|
retention-days: 5
|
|
- name: Package
|
|
shell: bash
|
|
run: |
|
|
cd target/
|
|
# Symbol stripping does not work cross-platform
|
|
if [[ "${{ matrix.target }}" != "aarch64-apple-darwin" ]]; then
|
|
strip martin${{ matrix.ext }}
|
|
strip mbtiles${{ matrix.ext }}
|
|
fi
|
|
if [[ "${{ runner.os }}" == "Windows" ]]; then
|
|
7z a ../${{ matrix.name }} martin${{ matrix.ext }} mbtiles${{ matrix.ext }}
|
|
else
|
|
tar czvf ../${{ matrix.name }} martin${{ matrix.ext }} mbtiles${{ matrix.ext }}
|
|
fi
|
|
cd -
|
|
- name: Package (debian)
|
|
if: matrix.target == 'x86_64-unknown-linux-gnu'
|
|
shell: bash
|
|
run: |
|
|
cd target/
|
|
tar czvf ../martin-debian-x86_64.tar.gz martin.deb
|
|
cd -
|
|
- name: Generate SHA-256 (MacOS)
|
|
if: matrix.target == 'x86_64-apple-darwin' || matrix.target == 'aarch64-apple-darwin'
|
|
run: shasum -a 256 ${{ matrix.name }}
|
|
- name: Publish
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: true
|
|
files: 'martin*'
|
|
body_path: CHANGELOG.md
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
test-legacy:
|
|
# Don't change this name - it is used by the merge protection rules
|
|
name: Test Legacy DB
|
|
needs: [ build ]
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
include:
|
|
# These must match the versions of postgres used in the docker-compose.yml
|
|
- image: postgis/postgis:11-3.0-alpine
|
|
args: postgres
|
|
sslmode: disable
|
|
- image: postgis/postgis:14-3.3-alpine
|
|
args: postgres
|
|
sslmode: disable
|
|
# alpine images don't support SSL, so for this we use the debian images
|
|
- image: postgis/postgis:15-3.3
|
|
args: postgres -c ssl=on -c ssl_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem -c ssl_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
|
|
sslmode: require
|
|
env:
|
|
# PG_* variables are used by psql
|
|
PGDATABASE: test
|
|
PGHOST: localhost
|
|
PGUSER: postgres
|
|
PGPASSWORD: postgres
|
|
services:
|
|
postgres:
|
|
image: ${{ matrix.image }}
|
|
ports:
|
|
# will assign a random free host port
|
|
- 5432/tcp
|
|
# Sadly there is currently no way to pass arguments to the service image other than this hack
|
|
# See also https://stackoverflow.com/a/62720566/177275
|
|
options: >-
|
|
-e POSTGRES_DB=test
|
|
-e POSTGRES_USER=postgres
|
|
-e POSTGRES_PASSWORD=postgres
|
|
-e PGDATABASE=test
|
|
-e PGUSER=postgres
|
|
-e PGPASSWORD=postgres
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
--entrypoint sh
|
|
${{ matrix.image }}
|
|
-c "exec docker-entrypoint.sh ${{ matrix.args }}"
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Setup database
|
|
run: |
|
|
# sudo apt-get install postgresql-client
|
|
tests/fixtures/initdb.sh
|
|
env:
|
|
PGPORT: ${{ job.services.postgres.ports[5432] }}
|
|
- name: Unit Tests (Linux)
|
|
shell: bash
|
|
run: |
|
|
echo "Running unit tests, connecting to DATABASE_URL=$DATABASE_URL"
|
|
echo "Same but as base64 to prevent GitHub obfuscation (this is not a secret):"
|
|
echo "$DATABASE_URL" | base64
|
|
set -x
|
|
cargo test --package martin-tile-utils
|
|
cargo test --package martin-mbtiles
|
|
cargo test --package martin-mbtiles --no-default-features --features rustls
|
|
cargo test --package martin --features vendored-openssl
|
|
cargo test --doc
|
|
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace
|
|
rm -rf target
|
|
env:
|
|
DATABASE_URL: postgres://${{ env.PGUSER }}:${{ env.PGUSER }}@${{ env.PGHOST }}:${{ job.services.postgres.ports[5432] }}/${{ env.PGDATABASE }}?sslmode=${{ matrix.sslmode }}
|
|
- name: Save test output on failure
|
|
if: failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: test-output
|
|
path: tests/output/*
|
|
retention-days: 5
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: build-x86_64-unknown-linux-gnu
|
|
path: target/
|
|
- name: Integration Tests
|
|
run: |
|
|
chmod +x target/martin target/mbtiles
|
|
tests/test.sh
|
|
env:
|
|
DATABASE_URL: postgres://${{ env.PGUSER }}:${{ env.PGUSER }}@${{ env.PGHOST }}:${{ job.services.postgres.ports[5432] }}/${{ env.PGDATABASE }}?sslmode=${{ matrix.sslmode }}
|
|
MARTIN_BUILD: "-"
|
|
MARTIN_BIN: target/martin
|
|
MBTILES_BUILD: "-"
|
|
MBTILES_BIN: target/mbtiles
|