| 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.4.1" |
| |
| 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: |
| - centos |
| - 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 |