aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml70
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..6a2eb0c
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,70 @@
+## Use workflows from ninenines/ci.erlang.mk to test Cowboy.
+
+name: Check Cowboy
+
+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: Cowboy
+ needs: cleanup-master
+ uses: ninenines/ci.erlang.mk/.github/workflows/ci.yaml@master
+
+# The examples test suite is 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.
+
+ examples:
+ name: Check examples
+ 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 ct-examples
+ run: make ct-examples LATEST_ERLANG_OTP=1