name: Build slim packages concurrency: group: slim-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: true on: workflow_call: inputs: builder: required: true type: string builder_vsn: required: true type: string otp_vsn: required: true type: string elixir_vsn: required: true type: string workflow_dispatch: inputs: ref: required: false builder: required: false type: string default: 'ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-ubuntu22.04' builder_vsn: required: false type: string default: '5.3-2' otp_vsn: required: false type: string default: '26.2.1-2' elixir_vsn: required: false type: string default: '1.15.7' permissions: contents: read jobs: linux: runs-on: ${{ github.repository_owner == 'emqx' && fromJSON(format('["self-hosted","ephemeral","linux","{0}"]', matrix.profile[4])) || 'ubuntu-22.04' }} env: EMQX_NAME: ${{ matrix.profile[0] }} strategy: fail-fast: false matrix: profile: - ["emqx", "26.2.1-2", "ubuntu22.04", "elixir", "x64"] - ["emqx", "26.2.1-2", "ubuntu22.04", "elixir", "arm64"] - ["emqx-enterprise", "26.2.1-2", "ubuntu22.04", "erlang", "x64"] container: "ghcr.io/emqx/emqx-builder/${{ inputs.builder_vsn }}:${{ inputs.elixir_vsn }}-${{ matrix.profile[1] }}-${{ matrix.profile[2] }}" steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - name: Work around https://github.com/actions/checkout/issues/766 run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" echo "CODE_PATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV - name: build and test tgz package if: matrix.profile[3] == 'erlang' run: | make ${EMQX_NAME}-tgz ./scripts/pkg-tests.sh ${EMQX_NAME}-tgz - name: build and test deb/rpm packages if: matrix.profile[3] == 'erlang' run: | make ${EMQX_NAME}-pkg ./scripts/pkg-tests.sh ${EMQX_NAME}-pkg - name: build and test tgz package (Elixir) if: matrix.profile[3] == 'elixir' run: | make ${EMQX_NAME}-elixir-tgz ./scripts/pkg-tests.sh ${EMQX_NAME}-elixir-tgz - name: build and test deb/rpm packages (Elixir) if: matrix.profile[3] == 'elixir' run: | make ${EMQX_NAME}-elixir-pkg ./scripts/pkg-tests.sh ${EMQX_NAME}-elixir-pkg - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: "${{ matrix.profile[0] }}-${{ matrix.profile[1] }}-${{ matrix.profile[2] }}-${{ matrix.profile[3] }}-${{ matrix.profile[4] }}" path: _packages/${{ matrix.profile[0] }}/* retention-days: 7 compression-level: 0 - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: "${{ matrix.profile[0] }}-schema-dump-${{ matrix.profile[1] }}-${{ matrix.profile[2] }}-${{ matrix.profile[3] }}-${{ matrix.profile[4] }}" path: | scripts/spellcheck _build/docgen/${{ matrix.profile[0] }}/schema-en.json retention-days: 7 mac: strategy: fail-fast: false matrix: profile: - emqx otp: - ${{ inputs.otp_vsn }} os: - macos-12-arm64 runs-on: ${{ matrix.os }} env: EMQX_NAME: ${{ matrix.profile }} steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - uses: ./.github/actions/package-macos with: profile: ${{ matrix.profile }} otp: ${{ matrix.otp }} os: ${{ matrix.os }} apple_id_password: ${{ secrets.APPLE_ID_PASSWORD }} apple_developer_identity: ${{ secrets.APPLE_DEVELOPER_IDENTITY }} apple_developer_id_bundle: ${{ secrets.APPLE_DEVELOPER_ID_BUNDLE }} apple_developer_id_bundle_password: ${{ secrets.APPLE_DEVELOPER_ID_BUNDLE_PASSWORD }} - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: ${{ matrix.os }} path: _packages/**/* retention-days: 7