diff options
author | Loïc Hoguin <[email protected]> | 2020-12-23 17:50:12 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2024-03-26 09:30:42 +0100 |
commit | 941d408ea40022da3148b5b96483d5e8f95caaa4 (patch) | |
tree | ae0f029257f288342676ec736fb3ca1f0ba042c5 /.github/workflows | |
parent | 1eb7f4293a652adcfe43b1835d22c58d8def839f (diff) | |
download | cowlib-master.tar.gz cowlib-master.tar.bz2 cowlib-master.zip |
Cowlib now uses GitHub Actions for CI. As a result
of this change, Cowlib is tested against OTP-24+.
This commit adds initial implementations of
cow_http3, cow_http3_machine and cow_qpack.
Because QPACK is similar to HPACK, some encoding and
decoding functions were moved to a common include file,
particularly the huffman functions.
The cow_http module now contains the types and functions
common to all or most versions of HTTP. The types and
functions specific to HTTP/1 were moved to the new
cow_http1 module.
Because HTTP/3 is similar to HTTP/2, part of the code
processing headers is common and can be found in
cow_http. Other functions common to both versions
were moved out of cow_http2_machine.
This commit updates comments indicating that the HTTP/2
PRIORITY mechanism will no longer be implemented.
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/ci.yaml | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..57a2cb1 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,70 @@ +## Use workflows from ninenines/ci.erlang.mk to test Cowlib. + +name: Check Cowlib + +on: + push: + branches: + - master + pull_request: + schedule: + ## Every Monday at 2am. + - cron: 0 2 * * 1 + +env: + CI_ERLANG_MK: 1 + +jobs: + cleanup-master: + name: Cleanup master build + runs-on: ubuntu-latest + steps: + + - name: Cleanup master build if necessary + if: ${{ github.event_name == 'schedule' }} + run: | + gh extension install actions/gh-actions-cache + gh actions-cache delete Linux-X64-Erlang-master -R $REPO --confirm || true + gh actions-cache delete macOS-X64-Erlang-master -R $REPO --confirm || true + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} + + check: + name: Cowlib + needs: cleanup-master + uses: ninenines/ci.erlang.mk/.github/workflows/ci.yaml@master + +# The perfs tests are nice to run but typically not +# important. So we run them after we are done with the other +# test suites. At this point we know that Erlang was built +# so we can just use the latest version. + + perfs: + name: Run performance tests + needs: check + runs-on: 'ubuntu-latest' + if: ${{ !cancelled() }} + steps: + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Output latest Erlang/OTP version + id: latest_version + run: | + { + echo "latest<<EOF" + make ci-list | grep -v rc | grep -v master | tail -n1 + echo EOF + } >> "$GITHUB_OUTPUT" + + - name: Restore CI cache + uses: actions/cache/restore@v4 + with: + path: | + ~/erlang/ + key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ steps.latest_version.outputs.latest }} + + - name: Run perfs + run: make perfs LATEST_ERLANG_OTP=1 |