mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-03-31 18:26:01 +00:00
* rfc: queue rotation * update rfc * messages for queue rotation * allow multiple subscribed queues per connection in Agent/Client.hs * refactor * fix module name * allow multiple queues in duplex connection type * update commands * add indices * addConnectionRcvQueue * switch connection to another queue (WIP) * update schema/protocol * switching queue works, but sending messages after the switch fails * messages are delivered after rotation * use connection-scoped queue ID * rename queue records fields * refactor using SMPQueue class/instances * simplify queries * QKEY: check queue is not secured, refactor * update rfc * mark queue as primary in QUSE * queue rotation errors * fix async ack * fix async ACK to send OK * correction Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com> * use SWCH command * rename * take into account only active queue subscription when determining connection result if at least one queue is active * remove comment * only enable notifications for connections with enableNtfs = True * async test (WIP) * async queue rotation test * simplify combining results * test with 2 servers * fix unused subscribeConnection * switch to cabal build * increase build timeout * increase delay in async test * skip queue rotation tests * build matrix * step name * use ubuntu-18.04 in build matrix * enable rotation tests Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
86 lines
2.3 KiB
YAML
86 lines
2.3 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- stable
|
|
tags:
|
|
- "v*"
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
name: build-${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-18.04
|
|
- os: ubuntu-20.04
|
|
steps:
|
|
- name: Clone project
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup Haskell
|
|
uses: haskell/actions/setup@v1
|
|
with:
|
|
ghc-version: "8.10.7"
|
|
cabal-version: "latest"
|
|
|
|
- name: Cache dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.cabal/store
|
|
dist-newstyle
|
|
key: ${{ matrix.os }}-${{ hashFiles('cabal.project', 'simplexmq.cabal') }}
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: cabal build --enable-tests
|
|
|
|
- name: Test
|
|
if: matrix.os == 'ubuntu-18.04'
|
|
timeout-minutes: 30
|
|
shell: bash
|
|
run: cabal test --test-show-details=direct
|
|
|
|
- name: Prepare binaries
|
|
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-20.04'
|
|
shell: bash
|
|
run: |
|
|
mv $(cabal list-bin smp-server) smp-server-ubuntu-20_04-x86-64
|
|
mv $(cabal list-bin ntf-server) ntf-server-ubuntu-20_04-x86-64
|
|
|
|
- name: Build changelog
|
|
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-20.04'
|
|
id: build_changelog
|
|
uses: mikepenz/release-changelog-builder-action@v1
|
|
with:
|
|
configuration: .github/changelog_conf.json
|
|
failOnError: true
|
|
ignorePreReleases: true
|
|
commitMode: true
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Create release
|
|
if: startsWith(github.ref, 'refs/tags/v') && matrix.os == 'ubuntu-20.04'
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
body: |
|
|
See full changelog [here](https://github.com/simplex-chat/simplexmq/blob/master/CHANGELOG.md).
|
|
|
|
Commits:
|
|
${{ steps.build_changelog.outputs.changelog }}
|
|
prerelease: true
|
|
files: |
|
|
LICENSE
|
|
smp-server-ubuntu-20_04-x86-64
|
|
ntf-server-ubuntu-20_04-x86-64
|
|
fail_on_unmatched_files: true
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|