Skip to content

Docker compose CI for example #1176

Docker compose CI for example

Docker compose CI for example #1176

name: Docker compose CI for example
on:
schedule:
- cron: "0 1 * * *"
push:
branches: [master]
paths-ignore:
- 'docs/**'
- '**/*.md'
pull_request:
branches:
- master
- 'release/apisix-2.15.**'
env:
APISIX_VERSION: "3.11.0"
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- name: Set apisix version
id: apisix
run: |
branch=${{ github.base_ref }}
apisix_version=$( (echo ${branch} | grep -Po '\d*\.\d*\.\d*') || echo ${APISIX_VERSION} )
echo "version=${apisix_version}" >> $GITHUB_OUTPUT
outputs:
apisix-version: ${{ steps.apisix.outputs.version }}
build:
runs-on: ubuntu-latest
needs: prepare
env:
APISIX_VERSION: ${{ needs.prepare.outputs.apisix-version }}
strategy:
fail-fast: false
matrix:
platform:
- debian
- redhat
steps:
- uses: actions/checkout@v2
- name: Build image
run: |
make build-on-${{ matrix.platform }}
- name: use docker-compose
env:
APISIX_IMAGE_TAG: ${{ format('{0}-{1}', env.APISIX_VERSION, matrix.platform) }}
run: docker compose -p docker-apisix -f example/docker-compose.yml up -d
- name: Test APISIX
run: |
sleep 30
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/get",
"upstream": {
"type": "roundrobin",
"nodes": {
"web1:80": 1
}
}
}'
result_code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://127.0.0.1:9080/get`
if [[ $result_code -ne 200 ]];then
printf "result_code: %s\n" "$result_code"
exit 125
fi