name: Build Alpine Packages on: push: branches: - master - main tags: - "*" pull_request: workflow_dispatch: jobs: build-and-publish: runs-on: ubuntu-latest strategy: matrix: include: - alpine_version: "3.23" alpine_registry_branch: "v3.23" - alpine_version: "edge" alpine_registry_branch: "edge" container: image: "alpine:${{ matrix.alpine_version }}" env: ALPINE_VERSION: "${{ matrix.alpine_version }}" ALPINE_ARCHES: "x86_64 aarch64" ALPINE_REGISTRY_BRANCH: "${{ matrix.alpine_registry_branch }}" ALPINE_REGISTRY_REPOSITORY: "${{ vars.PACKAGE_NAME }}" INSTANCE_URL: "${{ vars.INSTANCE_URL }}" PACKAGE_OWNER: "${{ vars.PACKAGE_OWNER }}" PACKAGE_USER: "${{ secrets.PACKAGE_USER }}" PACKAGE_TOKEN: "${{ secrets.PACKAGE_TOKEN }}" PACKAGER: "Joachim Schlöffel " CARGO_HOME: "/cache/public-alpine-packages/${{ matrix.alpine_registry_branch }}/greptimedb/cargo" RUSTUP_HOME: "/cache/public-alpine-packages/${{ matrix.alpine_registry_branch }}/greptimedb/rustup" CARGO_TARGET_DIR: "/cache/public-alpine-packages/${{ matrix.alpine_registry_branch }}/greptimedb/target" steps: - name: Prepare Environment run: | apk add --no-cache --update abuild-rootbld alpine-sdk atools-apkbuild-lint bash ca-certificates curl doas git nodejs sudo tar mkdir -p "$CARGO_HOME" "$RUSTUP_HOME" "$CARGO_TARGET_DIR" chown 1000:1000 /cache /cache/public-alpine-packages /cache/public-alpine-packages/${{ matrix.alpine_registry_branch }} /cache/public-alpine-packages/${{ matrix.alpine_registry_branch }}/greptimedb "$CARGO_HOME" "$RUSTUP_HOME" "$CARGO_TARGET_DIR" - name: Checkout uses: actions/checkout@v3 - name: Build packages run: | scripts/apk/clean.sh find packaging/alpine/local -mindepth 2 -maxdepth 2 -name APKBUILD -exec apkbuild-lint {} + scripts/apk/ci-build.sh scripts/apk/export-ci-assets.sh scripts/apk/list-packages.sh - name: Upload generated CI assets uses: actions/upload-artifact@v3 with: name: greptimedb-musl-binaries-${{ matrix.alpine_registry_branch }} path: packages/ci-assets/ - name: Smoke test run: scripts/apk/ci-smoke.sh - name: Publish Alpine packages if: github.event_name != 'pull_request' run: scripts/apk/publish-gitea.sh