Skip to content

ci: enhance release workflow by adding dependencies for additional bu… #320

ci: enhance release workflow by adding dependencies for additional bu…

ci: enhance release workflow by adding dependencies for additional bu… #320

Workflow file for this run

name: release
on:
push:
branches:
- main
tags:
- 'release-*'
pull_request:
branches: [ main ]
types: [opened, synchronize, reopened, labeled, unlabeled]
env:
APP_NAME: 'manticore-executor'
DOCKER_TAG: 'manticoresearch/manticore-executor'
PHP_VERSION: '8.3.15'
MAINTAINER: 'Manticore'
DESC: 'Custom built PHP executor for Manticore.'
EXTRA_NAME: 'manticore-extra'
EXTRA_DESC: 'Manticore extra package that includes executor and columnar lib'
COLUMNAR_NAME: 'manticore-columnar-lib'
COLUMNAR_VERSION: '8.0.0'
GALERA_NAME: 'manticore-galera'
GALERA_VERSION: '3.37'
LOAD_NAME: 'manticore-load'
LOAD_VERSION: '1.18.2'
DOCKER_CLI_EXPERIMENTAL: enabled
jobs:
pack:
name: OK to pack?
runs-on: ubuntu-22.04
outputs:
version: ${{ steps.semver-tagger.outputs.version }}
version_full: ${{ steps.semver-tagger.outputs.version_full }}
version_rpm: ${{ steps.semver-tagger.outputs.version_rpm }}
version_deb: ${{ steps.semver-tagger.outputs.version_deb }}
target: ${{ steps.semver-tagger.outputs.target }}
should_continue: ${{ steps.check-should-continue.outputs.should_continue }}
if: |
(github.event_name == 'pull_request' && (contains(github.event.pull_request.labels.*.name, 'pack') || contains(github.event.pull_request.labels.*.name, 'publish')))
|| ( github.event_name == 'push' && ( github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/tags/release-' ) || contains( github.ref, 'refs/tags/pack_publish' ) ) )
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Update version
id: semver-tagger
uses: manticoresoftware/semver-tagger-action@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
conventional_commits_authors: alexey@manticoresearch.com
ignore_patterns: '\.md$|^test/|^manual/|\.clt|\.github|\.patterns|\.yml|\.gitignore'
debug: true
- name: Check if we should continue packing
id: check-should-continue
run: |
# Continue if version was updated, if we have the "pack" label on PR, or if target is "release"
if [[ "${{ steps.semver-tagger.outputs.version_updated }}" == "true" ]]; then
echo "Continuing because version was updated"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ steps.semver-tagger.outputs.target }}" == "release" ]]; then
echo "Continuing because target is release"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event_name }}" == "pull_request" && "${{ contains(github.event.pull_request.labels.*.name, 'pack') }}" == "true" ]]; then
echo "Continuing because PR has 'pack' label"
echo "should_continue=true" >> $GITHUB_OUTPUT
elif [[ "${{ contains(github.ref, 'refs/tags/pack_publish') }}" == "true" ]]; then
echo "Continuing because commit has 'pack_publish' tag"
echo "should_continue=true" >> $GITHUB_OUTPUT
else
echo "Skipping packing because version wasn't updated, target is not release, and there's no 'pack' label or tag"
echo "should_continue=false" >> $GITHUB_OUTPUT
fi
- run: |
echo "# Packing and publishing all for commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY
echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY
echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY
echo "* Version updated: ${{ steps.semver-tagger.outputs.version_updated }}" >> $GITHUB_STEP_SUMMARY
echo "* Should continue packing: ${{ steps.check-should-continue.outputs.should_continue }}" >> $GITHUB_STEP_SUMMARY
build-artifact:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
needs:
- pack
if: needs.pack.outputs.should_continue == 'true'
strategy:
matrix:
include:
- name: AMD64 with buildx for Linux
os: ubuntu-22.04
arch: amd64
use_buildx: true
run: ""
- name: ARM64 with buildx for Linux
os: ubuntu-22.04
arch: arm64
use_buildx: true
run: ""
- name: AMD64 native on OSX
os: macos-13
arch: x86_64
use_buildx: false
run: ./build-osx
- name: ARM64 native on OSX
os: macos-14
arch: arm64
use_buildx: false
run: ./build-osx
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
if: ${{ matrix.use_buildx == true }}
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
if: ${{ matrix.use_buildx == true }}
uses: docker/setup-buildx-action@v3
- name: Build docker image
if: ${{ matrix.use_buildx == true }}
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/${{ matrix.arch }}
load: true
push: false
tags: ${{ env.DOCKER_TAG }}:${{ needs.pack.outputs.version }}
build-args: BUILD_DEV=0
- name: Create artifact
run: |
[ -n "${{ matrix.run }}" ] && ${{ matrix.run }} ${{ env.PHP_VERSION }} || true
APP_ARCH=${{ matrix.arch }} \
APP_VERSION=${{ needs.pack.outputs.version }} \
APP_NAME=${{ env.APP_NAME }} \
RUNNER_OS="${{ runner.os }}" \
DOCKER_IMAGE=${{ env.DOCKER_TAG }}:${{ needs.pack.outputs.version }} \
./collect-assets
shell: bash
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-${{ matrix.os }}-${{ matrix.arch }}
path: ./*${{ matrix.arch }}.tar.gz
build-artifact-dev:
runs-on: ubuntu-22.04
needs:
- pack
if: needs.pack.outputs.should_continue == 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
- id: vars
run: |
echo "app_version=$(echo ${{ github.ref_name }} | cut -dv -f2)" >> $GITHUB_OUTPUT
- name: Build manticore-executor-dev
run: ./build-linux ${{ env.PHP_VERSION }} 0 1
shell: bash
- name: Create artifact
run: |
APP_ARCH=amd64 \
APP_VERSION=${{ needs.pack.outputs.version_full }} \
APP_NAME=${{ env.APP_NAME }} \
RUNNER_OS="${{ runner.os }}" \
ASSET_SUFFIX=-dev \
./collect-assets
shell: bash
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-dev-ubuntu-22.04-amd64
path: ./*.tar.gz
build-linux-packages:
needs:
- pack
- build-artifact
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Download artifact
uses: manticoresoftware/download_artifact_with_retries@main
with:
name: artifact-ubuntu-22.04-amd64
path: .
- name: Prepare packages structure
run: |
# name is like assets manticore-executor_v0.5.1-221214-e089052_linux_amd64:
tar -xzf *.tar.gz
# Setup openssl workaround
mkdir -p .debpkg/DEBIAN
cp -p packages/postrun .debpkg/DEBIAN/postinst
mkdir -p .debpkg/usr/bin
mkdir -p .rpmpkg/usr/bin
mkdir -p .rpmpkg/usr/share/
cp -p *-linux-amd64/${{ env.APP_NAME }} .debpkg/usr/bin/${{ env.APP_NAME }}
chmod +x .debpkg/usr/bin/${{ env.APP_NAME }}
# cp -p README.md .debpkg/README.md
# cp -p LICENSE .debpkg/LICENSE
cp -p *-linux-amd64/${{ env.APP_NAME }} .rpmpkg/usr/bin/${{ env.APP_NAME }}
cp -p LICENSE .rpmpkg/usr/share/${{ env.APP_NAME }}-LICENSE
cp -p README.md .rpmpkg/usr/share/${{ env.APP_NAME }}-README.md
- uses: manticoresoftware/actions-build-deb-action@master
with:
package: ${{ env.APP_NAME }}
package_root: .debpkg
maintainer: ${{ env.MAINTAINER }}
version: ${{ needs.pack.outputs.version_deb }}
arch: 'amd64'
desc: '${{ env.DESC }}'
license: 'PHP-3.01'
- name: Build RPM packages
run: |
sudo apt-get update -y -q
sudo apt-get install -y rpm
RPMBUILD_DIR="$HOME/rpmbuild"
RPMBUILD_SOURCE_DIR="$RPMBUILD_DIR/SOURCES"
RPMBUILD_SPEC_DIR="$RPMBUILD_DIR/SPECS"
WORKDIR="/tmp/work"
mkdir "$WORKDIR"
spec_file=main.spec
cp "packages/$spec_file" "$WORKDIR"
cp -rp ".rpmpkg" "$WORKDIR/${{ env.APP_NAME }}"
cd "$WORKDIR"
# Prepare spec file for RPM
sed -i 's/{{ NAME }}/${{ env.APP_NAME }}/g' $spec_file
sed -i 's/{{ VERSION }}/${{ needs.pack.outputs.version_rpm }}/g' $spec_file
sed -i 's/{{ MAINTAINER }}/${{ env.MAINTAINER }}/g' $spec_file
sed -i 's/{{ DESC }}/${{ env.DESC }}/g' $spec_file
sed -i 's/{{ ARCH }}/x86_64/g' $spec_file
# sed -i "s@{{ POSTRUN }}@$(<packages/postrun)@g" $spec_file
tar czf tmp.tar.gz "${{ env.APP_NAME }}/"
mkdir -p "$RPMBUILD_SOURCE_DIR"
mkdir -p "$RPMBUILD_SPEC_DIR"
mv tmp.tar.gz "$RPMBUILD_SOURCE_DIR"
cp -p $spec_file "$RPMBUILD_SPEC_DIR"
rpmbuild -bb "$RPMBUILD_SPEC_DIR/$spec_file"
ls -lah "$RPMBUILD_DIR/RPMS/x86_64"/*.rpm
cp -p "$RPMBUILD_DIR/RPMS/x86_64"/*.rpm $GITHUB_WORKSPACE
- name: Rename packages to proper name
run: |
version=${{ needs.pack.outputs.version_rpm }}
rpm_path="./${{ env.APP_NAME }}-${version}-1.x86_64.rpm"
cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el8.x86_64.rpm"
cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el9.x86_64.rpm"
mv $rpm_path "./${{ env.APP_NAME }}-${version}-1.el10.x86_64.rpm"
mkdir -p ./artifacts
mv *.deb ./artifacts/
mv *.rpm ./artifacts/
ls -lah ./artifacts/*.deb
ls -lah ./artifacts/*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-deb-amd64
path: ./artifacts/*.deb
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el8-amd64
path: ./artifacts/*.el8.*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el9-amd64
path: ./artifacts/*.el9.*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el10-amd64
path: ./artifacts/*.el10.*.rpm
build-linux-packages-arm64:
needs:
- pack
- build-artifact
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Download artifact
uses: manticoresoftware/download_artifact_with_retries@main
with:
name: artifact-ubuntu-22.04-arm64
path: .
- name: Prepare package
run: |
# name is like assets manticore-executor_v0.5.1-221214-e089052_linux_arm64:
tar -xzf *.tar.gz
# Setup openssl workaround
mkdir -p .debpkg/DEBIAN
cp -p packages/postrun .debpkg/DEBIAN/postinst
mkdir -p .debpkg/usr/bin
mkdir -p .rpmpkg/usr/bin
mkdir -p .rpmpkg/usr/share
cp -p *-linux-arm64/${{ env.APP_NAME }} .debpkg/usr/bin/${{ env.APP_NAME }}
cp -p *-linux-arm64/${{ env.APP_NAME }} .rpmpkg/usr/bin/${{ env.APP_NAME }}
cp -p LICENSE .rpmpkg/usr/share/${{ env.APP_NAME }}-LICENSE
cp -p README.md .rpmpkg/usr/share/${{ env.APP_NAME }}-README.md
- uses: manticoresoftware/actions-build-deb-action@master
with:
package: ${{ env.APP_NAME }}
package_root: .debpkg
maintainer: ${{ env.MAINTAINER }}
version: ${{ needs.pack.outputs.version_deb }}
arch: 'arm64'
desc: '${{ env.DESC }}'
license: 'PHP-3.01'
- name: Rename package to proper name
run: |
mkdir -p ./artifacts
mv *.deb ./artifacts
ls -lah ./artifacts/*.deb
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-deb-arm64
path: ./artifacts/*.deb
- name: Cleanup the artifacts directory
run: |
rm -fr ./artifacts/*
- uses: manticoresoftware/actions-run-on-arch-action@master
name: Preparing EL8 RPM package
with:
arch: aarch64
distro: centos8
githubToken: ${{ github.token }}
setup: |
mkdir -p "${PWD}/artifacts/packages"
cp -rp .rpmpkg "${PWD}/artifacts/.rpmpkg"
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
install: |
cd /etc/yum.repos.d
sed -i 's|mirrorlist=|#mirrorlist=|g' *.repo
sed -i 's|#baseurl=|baseurl=|g' *.repo
sed -i 's|http://mirror.centos.org|http://vault.centos.org|g' *.repo
yum clean all
yum install -y sudo git kernel-devel kernel-headers
yum groupinstall -y "Development Tools"
run: |
RPMBUILD_DIR="$HOME/rpmbuild"
RPMBUILD_SOURCE_DIR="$RPMBUILD_DIR/SOURCES"
RPMBUILD_SPEC_DIR="$RPMBUILD_DIR/SPECS"
WORKDIR="/tmp/work"
mkdir "$WORKDIR"
spec_file=main.spec
cp "packages/$spec_file" "$WORKDIR"
cp -rp "/artifacts/.rpmpkg" "$WORKDIR/${{ env.APP_NAME }}"
cd "$WORKDIR"
# Prepare spec file for RPM
sed -i 's/{{ NAME }}/${{ env.APP_NAME }}/g' $spec_file
sed -i 's/{{ VERSION }}/${{ needs.pack.outputs.version_rpm }}/g' $spec_file
sed -i 's/{{ MAINTAINER }}/${{ env.MAINTAINER }}/g' $spec_file
sed -i 's/{{ DESC }}/${{ env.DESC }}/g' $spec_file
sed -i 's/{{ ARCH }}/aarch64/g' $spec_file
# sed -i "s@{{ POSTRUN }}@$(<packages/postrun)@g" $spec_file
tar czf tmp.tar.gz "${{ env.APP_NAME }}/"
mkdir -p "$RPMBUILD_SOURCE_DIR"
mkdir -p "$RPMBUILD_SPEC_DIR"
mv tmp.tar.gz "$RPMBUILD_SOURCE_DIR"
cp -p $spec_file "$RPMBUILD_SPEC_DIR"
rpmbuild -bb "$RPMBUILD_SPEC_DIR/$spec_file"
cp -p "$RPMBUILD_DIR/RPMS/$(uname -m)"/*.rpm /artifacts/
- name: Rename package to proper name
run: |
ls -lah ./artifacts/*.rpm
version=${{ needs.pack.outputs.version_rpm }}
rpm_path="./artifacts/${{ env.APP_NAME }}-${version}-1.el8.aarch64.rpm"
cp $rpm_path "./artifacts/${{ env.APP_NAME }}-${version}-1.el9.aarch64.rpm"
cp $rpm_path "./artifacts/${{ env.APP_NAME }}-${version}-1.el10.aarch64.rpm"
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el8-aarch64
path: ./artifacts/*.el8.*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el9-aarch64
path: ./artifacts/*.el9.*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-rpm-el10-aarch64
path: ./artifacts/*.el10.*.rpm
build-extra-packages:
runs-on: ubuntu-22.04
needs:
- pack
if: needs.pack.outputs.should_continue == 'true'
steps:
- uses: actions/checkout@v3
- name: Prepare packages structure
run: |
mkdir -p .debpkg/usr/bin
mkdir -p .debpkg/usr/share/manticore
mkdir -p .rpmpkg/usr/bin
mkdir -p .rpmpkg/usr/share/manticore
cp -p extra.notice .debpkg/usr/share/manticore/${{ env.EXTRA_NAME }}.notice
cp -p extra.notice .rpmpkg/usr/share/manticore/${{ env.EXTRA_NAME }}.notice
echo "" > .rpmpkg/usr/share/${{ env.EXTRA_NAME }}-LICENSE
- uses: manticoresoftware/actions-build-deb-action@master
name: Build DEB packages
with:
package: ${{ env.EXTRA_NAME }}
package_root: .debpkg
maintainer: ${{ env.MAINTAINER }}
version: ${{ needs.pack.outputs.version_deb }}
arch: 'all'
desc: '${{ env.EXTRA_DESC }}'
license: 'Apache-2.0'
depends: '${{ env.APP_NAME }} (>= ${{ needs.pack.outputs.version_deb }}), ${{ env.COLUMNAR_NAME }} (>= ${{ env.COLUMNAR_VERSION }}), ${{ env.GALERA_NAME }} (>= ${{ env.GALERA_VERSION }}), ${{ env.LOAD_NAME }} (>= ${{ env.LOAD_VERSION }}), ca-certificates'
- name: Build RPM packages
run: |
sudo apt-get update -y -q
sudo apt-get install -y rpm
RPMBUILD_DIR="$HOME/rpmbuild"
RPMBUILD_SOURCE_DIR="$RPMBUILD_DIR/SOURCES"
RPMBUILD_SPEC_DIR="$RPMBUILD_DIR/SPECS"
WORKDIR="/tmp/work"
mkdir "$WORKDIR"
spec_file=extra.spec
cp "packages/$spec_file" "$WORKDIR"
cp -rp ".rpmpkg" "$WORKDIR/${{ env.EXTRA_NAME }}"
cd "$WORKDIR"
# Prepare spec file for RPM
sed -i 's/{{ NAME }}/${{ env.EXTRA_NAME }}/g' $spec_file
sed -i 's/{{ VERSION }}/${{ needs.pack.outputs.version_rpm }}/g' $spec_file
sed -i 's/{{ MAINTAINER }}/${{ env.MAINTAINER }}/g' $spec_file
sed -i 's/{{ DESC }}/${{ env.EXTRA_DESC }}/g' $spec_file
sed -i 's/{{ EXECUTOR_NAME }}/${{ env.APP_NAME }}/g' $spec_file
sed -i 's/{{ EXECUTOR_VERSION }}/${{ needs.pack.outputs.version_rpm }}/g' $spec_file
sed -i 's/{{ COLUMNAR_NAME }}/${{ env.COLUMNAR_NAME }}/g' $spec_file
sed -i 's/{{ COLUMNAR_VERSION }}/${{ env.COLUMNAR_VERSION }}/g' $spec_file
sed -i 's/{{ GALERA_NAME }}/${{ env.GALERA_NAME }}/g' $spec_file
sed -i 's/{{ GALERA_VERSION }}/${{ env.GALERA_VERSION }}/g' $spec_file
sed -i 's/{{ LOAD_NAME }}/${{ env.LOAD_NAME }}/g' $spec_file
sed -i 's/{{ LOAD_VERSION }}/${{ env.LOAD_VERSION }}/g' $spec_file
tar czf tmp.tar.gz "${{ env.EXTRA_NAME }}/"
mkdir -p "$RPMBUILD_SOURCE_DIR"
mkdir -p "$RPMBUILD_SPEC_DIR"
mv tmp.tar.gz "$RPMBUILD_SOURCE_DIR"
cp -p $spec_file "$RPMBUILD_SPEC_DIR"
rpmbuild -bb "$RPMBUILD_SPEC_DIR/$spec_file"
ls -lah "$RPMBUILD_DIR/RPMS/noarch"/*.rpm
cp -p "$RPMBUILD_DIR/RPMS/noarch"/*.rpm $GITHUB_WORKSPACE
- name: Rename packages to proper name
run: |
version=${{ needs.pack.outputs.version_rpm }}
rpm_path="./${{ env.EXTRA_NAME }}-${version}-1.noarch.rpm"
cp $rpm_path "./${{ env.EXTRA_NAME }}-${version}-1.el8.noarch.rpm"
cp $rpm_path "./${{ env.EXTRA_NAME }}-${version}-1.el9.noarch.rpm"
mv $rpm_path "./${{ env.EXTRA_NAME }}-${version}-1.el10.noarch.rpm"
mkdir -p ./artifacts
mv *.deb ./artifacts/
mv *.rpm ./artifacts/
ls -lah ./artifacts/*.deb
ls -lah ./artifacts/*.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-extra-deb
path: ./artifacts/*.deb
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-extra-rpm-el8
path: ./artifacts/*.el8.noarch.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-extra-rpm-el9
path: ./artifacts/*.el9.noarch.rpm
- uses: manticoresoftware/upload_artifact_with_retries@main
with:
name: artifact-extra-rpm-el10
path: ./artifacts/*.el10.noarch.rpm
deploy:
needs:
- pack
- build-artifact
- build-artifact-dev
- build-extra-packages
- build-linux-packages
- build-linux-packages-arm64
runs-on: ubuntu-22.04
env:
target: ${{ needs.pack.outputs.target }}
strategy:
matrix:
include:
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: buster
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: buster
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: bionic
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: bionic
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: focal
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: focal
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: jammy
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: jammy
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: bullseye
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: bullseye
- artifact: artifact-deb-amd64
type: deb
arch: amd64
delimiter: "-"
distro: bookworm
- artifact: artifact-deb-arm64
type: deb
arch: arm64
delimiter: "-"
distro: bookworm
- artifact: artifact-rpm-el8-amd64
type: rpm
arch: x86_64
delimiter: "_"
distro: 8
- artifact: artifact-rpm-el8-aarch64
type: rpm
arch: aarch
delimiter: "_"
distro: 8
- artifact: artifact-rpm-el9-amd64
type: rpm
arch: x86_64
delimiter: "_"
distro: 9
- artifact: artifact-rpm-el9-aarch64
type: rpm
arch: aarch
delimiter: "_"
distro: 9
- artifact: artifact-rpm-el10-amd64
type: rpm
arch: x86_64
delimiter: "_"
distro: 10
- artifact: artifact-rpm-el10-aarch64
type: rpm
arch: aarch
delimiter: "_"
distro: 10
- artifact: artifact-macos-13-x86_64
type: arc
arch: x86_64
delimiter: "-"
distro: ""
- artifact: artifact-macos-14-arm64
type: arc
arch: aarch
delimiter: "-"
distro: ""
# manticore-extra meta package now
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: buster
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: bionic
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: focal
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: jammy
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: bullseye
- artifact: artifact-extra-deb
type: deb
arch: all
delimiter: "-"
distro: bookworm
- artifact: artifact-extra-rpm-el8
type: rpm
arch: noarch
delimiter: "_"
distro: 8
- artifact: artifact-extra-rpm-el9
type: rpm
arch: noarch
delimiter: "_"
distro: 9
- artifact: artifact-extra-rpm-el10
type: rpm
arch: noarch
delimiter: "_"
distro: 10
steps:
- name: Deploy package
uses: manticoresoftware/publish_to_repo@main
with:
ssh_key: ${{ secrets.REPO_SSH_KEY }}
distr: ${{ matrix.distro }}
arch: ${{ matrix.arch }}
artifact: ${{ matrix.artifact }}
type: ${{ matrix.type }}
delimiter: ${{ matrix.delimiter }}
target: ${{ env.target }}
deploy-docker:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
needs:
- pack
- deploy
strategy:
matrix:
include:
- name: Deploy docker amd64
arch: amd64
os: ubuntu-22.04
- name: Deploy docker arm64
arch: arm64
os: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build docker image
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile-dist
platforms: linux/amd64, linux/arm64
load: false
push: true
tags: ${{ env.DOCKER_TAG }}:${{ needs.pack.outputs.version }}
update-manticoresearch-deps:
needs:
- pack
- deploy
runs-on: ubuntu-22.04
steps:
- name: Update deps
uses: manticoresoftware/manticoresearch/actions/update-deps@master
with:
name: executor
version: "${{ needs.pack.outputs.version_full }}"
token: ${{ secrets.PR_TOKEN }}