Files
ReachableCEO 54cc5f7308 feat(apisix): add Cloudron package
- Implements Apache APISIX packaging for Cloudron platform.
- Includes Dockerfile, CloudronManifest.json, and start.sh.
- Configured to use Cloudron's etcd addon.

🤖 Generated with Gemini CLI
Co-Authored-By: Gemini <noreply@google.com>
2025-09-04 09:42:47 -05:00

110 lines
2.8 KiB
YAML

name: Build and Push `apisix:dev` to DockerHub on Commit
on:
pull_request:
paths-ignore:
- "docs/**"
- "**/*.md"
push:
paths-ignore:
- "docs/**"
- "**/*.md"
workflow_dispatch:
jobs:
build-test-push:
strategy:
matrix:
include:
- runner: ubuntu-24.04
arch: amd64
- runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
env:
APISIX_DOCKER_TAG: master-debian-dev
ENV_OS_ARCH: ${{ matrix.arch }}
DOCKER_BUILDKIT: 1
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Build APISIX Dashboard
run: |
# install node.js and pnpm
sudo n lts
corepack enable pnpm
# prepare apisix-dashboard source code
source .requirements
git clone --revision=${APISIX_DASHBOARD_COMMIT} --depth 1 https://github.com/apache/apisix-dashboard.git
pushd apisix-dashboard
# compile
pnpm install --frozen-lockfile
pnpm run build
popd
# copy the dist files to the ui directory
mkdir ui
cp -r apisix-dashboard/dist/* ui/
rm -r apisix-dashboard
- name: Build and run
run: |
make build-on-debian-dev
docker compose -f ./docker/compose/docker-compose-master.yaml up -d
sleep 30
docker logs compose-apisix-1
- name: Test APISIX
run: |
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": { "httpbin.org: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
- name: Login to Docker Hub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Push apisix image to Docker Hub
if: github.ref == 'refs/heads/master'
run: |
make push-on-debian-dev
merge-tags:
needs: build-test-push
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Check out the repo
uses: actions/checkout@v4
- name: Merge architecture-specific tags
run: |
make merge-dev-tags