refactor(emulate-elastic): delegate system client access #1505
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: release | |
| on: | |
| workflow_run: | |
| workflows: [ tests ] | |
| types: [ completed ] | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| types: [opened, synchronize, reopened, labeled, unlabeled] | |
| push: | |
| tags: | |
| - 'release-*' | |
| - 'pack_publish' | |
| env: | |
| APP_NAME: 'manticore-buddy' | |
| MAINTAINER: 'Manticore' | |
| DESC: 'Manticore Buddy' | |
| LIBCURL_NAME: 'libcurl' | |
| LIBCURL_VERSION: '7.29.0' | |
| jobs: | |
| update-version: | |
| 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' && ( startsWith( github.ref, 'refs/tags/release-' ) || contains( github.ref, 'refs/tags/pack_publish' ) ) ) | |
| || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' && github.ref == 'refs/heads/main' && github.event.workflow_run.event != 'schedule') | |
| runs-on: ubuntu-24.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 }} | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - id: semver-tagger | |
| uses: manticoresoftware/semver-tagger-action@main | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| ignore_patterns: '\.md$|^test/|\.github|\.yml|\.gitignore$' | |
| debug: true | |
| vars: | |
| if: needs.update-version.outputs.version != '' | |
| needs: update-version | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| target: ${{ steps.vars.outputs.target }} | |
| version_full: ${{ steps.vars.outputs.version_full }} | |
| version_rpm: ${{ steps.vars.outputs.version_rpm }} | |
| version_deb: ${{ steps.vars.outputs.version_deb }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.head_ref || github.ref }} | |
| - id: vars | |
| run: | | |
| # Use version and target from update-version job | |
| version_full="${{ needs.update-version.outputs.version_full }}" | |
| version_rpm="${{ needs.update-version.outputs.version_rpm }}" | |
| version_deb="${{ needs.update-version.outputs.version_deb }}" | |
| target="${{ needs.update-version.outputs.target }}" | |
| echo "version_full=$version_full" >> $GITHUB_OUTPUT | |
| echo "version_rpm=$version_rpm" >> $GITHUB_OUTPUT | |
| echo "version_deb=$version_deb" >> $GITHUB_OUTPUT | |
| echo "target=$target" >> $GITHUB_OUTPUT | |
| build-artifact: | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - vars | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Prepare release directory | |
| run: | | |
| git clone https://github.com/manticoresoftware/phar_builder.git | |
| # We need to write current version HERE before we pack | |
| echo "${{ needs.vars.outputs.version_full }}" > APP_VERSION | |
| # Now build it | |
| ./phar_builder/bin/build --name="Manticore Buddy" --package="${{ env.APP_NAME }}" --phar --compat-src-main | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: version | |
| path: ${{ github.workspace }} | |
| - name: Create artifact | |
| run: | | |
| name="${{ env.APP_NAME }}_${{ needs.vars.outputs.version_full }}" | |
| echo "$name" | |
| mkdir -p build/bin | |
| cp build/${{ env.APP_NAME }} build/bin/${{ env.APP_NAME }} | |
| tar czf "$name.tar.gz" -C build bin/${{ env.APP_NAME }} share | |
| cd build | |
| zip -r "$name.zip" share/modules | |
| mv "$name.zip" .. | |
| cd .. | |
| shell: bash | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact | |
| path: ./*.{tar.gz,zip} | |
| build-linux-packages: | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - vars | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Build binary | |
| run: | | |
| git clone https://github.com/manticoresoftware/phar_builder.git | |
| # We need to write current version HERE before we pack | |
| echo "${{ needs.vars.outputs.version_full }}" > APP_VERSION | |
| ./phar_builder/bin/build --name="Manticore Buddy" --package="${{ env.APP_NAME }}" --phar --compat-src-main | |
| - name: Prepare packages structure | |
| run: | | |
| mkdir -p .debpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/bin | |
| mkdir -p .rpmpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/bin | |
| cp -rp build/share/modules/${{ env.APP_NAME }}/* .debpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/ | |
| cp -rp build/share/modules/${{ env.APP_NAME }}/* .rpmpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/ | |
| cp -r build/${{ env.APP_NAME }} .debpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/bin/${{ env.APP_NAME }} | |
| cp -r build/${{ env.APP_NAME }} .rpmpkg/usr/share/manticore/modules/${{ env.APP_NAME }}/bin/${{ env.APP_NAME }} | |
| sudo chown -R root:root .debpkg | |
| sudo chown -R root:root .rpmpkg | |
| - uses: manticoresoftware/actions-build-deb-action@master | |
| name: Build DEB packages | |
| with: | |
| package: ${{ env.APP_NAME }} | |
| package_root: .debpkg | |
| maintainer: ${{ env.MAINTAINER }} | |
| version: ${{ needs.vars.outputs.version_deb }} | |
| arch: 'all' | |
| desc: '${{ env.DESC }}' | |
| depends: '${{ env.LIBCURL_NAME }}4 (>= ${{ env.LIBCURL_VERSION}})' | |
| - 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=rpm.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.vars.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/{{ LIBCURL_NAME }}/${{ env.LIBCURL_NAME }}/g' $spec_file | |
| sed -i 's/{{ LIBCURL_VERSION }}/v${{ env.LIBCURL_VERSION }}/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/noarch"/*.rpm | |
| cp -p "$RPMBUILD_DIR/RPMS/noarch"/*.rpm $GITHUB_WORKSPACE | |
| - name: Rename packages to proper name | |
| run: | | |
| ls -la ./*.rpm | |
| version=${{ needs.vars.outputs.version_rpm }} | |
| rpm_path="./${{ env.APP_NAME }}-${version}-1.noarch.rpm" | |
| cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el7.noarch.rpm" | |
| cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el8.noarch.rpm" | |
| cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el9.noarch.rpm" | |
| cp $rpm_path "./${{ env.APP_NAME }}-${version}-1.el10.noarch.rpm" | |
| ls -la ./*.deb | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact-deb | |
| path: ./*_all.deb | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact-el7-rpm | |
| path: ./*.el7.noarch.rpm | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact-el8-rpm | |
| path: ./*.el8.noarch.rpm | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact-el9-rpm | |
| path: ./*.el9.noarch.rpm | |
| - uses: manticoresoftware/upload_artifact_with_retries@main | |
| with: | |
| name: artifact-el10-rpm | |
| path: ./*.el10.noarch.rpm | |
| create-release: | |
| if: needs.update-version.outputs.target == 'release' | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - update-version | |
| - build-artifact | |
| - build-linux-packages | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate changelog | |
| run: | | |
| bin/git-changelog > ./changelog | |
| - name: Create Release | |
| id: create-release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{ github.ref }} | |
| release_name: Release ${{ github.ref }} | |
| body_path: ./changelog | |
| draft: true | |
| prerelease: false | |
| deploy: | |
| name: ${{ matrix.distro }} ${{ matrix.arch }} | |
| needs: | |
| - vars | |
| - build-artifact | |
| - build-linux-packages | |
| env: | |
| target: ${{ needs.vars.outputs.target }} | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| include: | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: buster | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: bionic | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: focal | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: jammy | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: bullseye | |
| - artifact: artifact-deb | |
| type: deb | |
| arch: all | |
| delimiter: "-" | |
| distro: bookworm | |
| - artifact: artifact-el7-rpm | |
| type: rpm | |
| arch: noarch | |
| delimiter: "_" | |
| distro: 7 | |
| - artifact: artifact-el8-rpm | |
| type: rpm | |
| arch: noarch | |
| delimiter: "_" | |
| distro: 8 | |
| - artifact: artifact-el9-rpm | |
| type: rpm | |
| arch: noarch | |
| delimiter: "_" | |
| distro: 9 | |
| - artifact: artifact-el10-rpm | |
| type: rpm | |
| arch: noarch | |
| delimiter: "_" | |
| distro: 10 | |
| - artifact: artifact | |
| type: arc | |
| arch: noarch | |
| delimiter: "_" | |
| distro: "" | |
| 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 }} | |
| update-manticoresearch-deps: | |
| needs: | |
| - vars | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Update deps | |
| uses: manticoresoftware/manticoresearch/actions/update-deps@main | |
| with: | |
| name: buddy | |
| version: ${{ needs.vars.outputs.version_full }} | |
| token: ${{ secrets.PR_TOKEN }} |