name: Package-Build on: push: branches: [ "v2.x" ] paths-ignore: - '.github/**' - '**.md' # pull_request: # branches: [ "v2.x" ] # paths-ignore: # - '.github/**' # - '**.md' # schedule: # - cron: '15 13 * * 3' workflow_dispatch: concurrency: group: ${{ github.workflow }} # cancel-in-progress: true jobs: clean: runs-on: ubuntu-22.04 steps: - name: Clean packages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # gh release delete-asset v2.x-head gh release delete v2.x-head --repo ${{ github.repository }} --cleanup-tag || true gh release create v2.x-head --repo ${{ github.repository }} --title v2.x-head --draft --prerelease --notes-file - << EOF ## Development Snapshot GH-Action Package-Build on PR merge into v2.x Started : **$(date '+%Y-%m-%d %H:%M:%S %Z')** Status : **Build in progress** EOF - name: Clean repo uses: appleboy/ssh-action@v0.1.8 with: host: ${{ secrets.REPO_HOST }} username: ${{ secrets.REPO_USER }} key: ${{ secrets.REPO_PRIVATE_KEY }} script: | ls -1 ${{ secrets.REPO_TARGET }} | sort -rV | tail +11 | xargs -n1 rm -rf build: runs-on: ubuntu-22.04 needs: [ clean ] strategy: fail-fast: false matrix: # dist: [ 'centos7' ] dist: [ 'almalinux8','almalinux9','centos6','centos7','centos8','debian8','debian9','debian10','debian11','fedora27','fedora28','fedora33','fedora34','fedora36','fedora37','opensuse15','ubuntu14','ubuntu16','ubuntu18','ubuntu20','ubuntu22' ] type: [ '','-dbg','-clang' ] exclude: - dist: 'centos6' type: '-clang' - dist: 'centos7' type: '-clang' - dist: 'debian8' type: '-clang' - dist: 'debian9' type: '-clang' - dist: 'debian10' type: '-clang' - dist: 'fedora27' type: '-clang' - dist: 'fedora28' type: '-clang' - dist: 'fedora33' type: '-clang' - dist: 'ubuntu14' type: '-clang' - dist: 'ubuntu16' type: '-clang' - dist: 'ubuntu18' type: '-clang' steps: - name: Checkout repository uses: actions/checkout@v3 with: repository: 'sysown/proxysql' # ref: 'v2.x' fetch-depth: 0 - name: Set GIT_VERSION run: | git fetch --tags --force echo "GIT_VERSION=$(git describe --long --abbrev=7)" >> $GITHUB_ENV - name: Update release if: always() env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | if [[ "${{ matrix.dist }}" = "centos7" ]] && [[ "${{ matrix.type }}" = "" ]]; then gh release edit v2.x-head --draft --prerelease --repo ${{ github.repository }} --tag v2.x-head --title "v2.x-head - ${GIT_VERSION}" --notes-file - << EOF ## Development Snapshot GH-Action Package-Build on PR merge into v2.x Updated : **$(date '+%Y-%m-%d %H:%M:%S %Z')** Status : **Build in progress** EOF fi - name: Build package run: | make ${{ matrix.dist }}${{ matrix.type }} echo "BIN_PKG=$(ls -1 binaries/*[mb])" >> $GITHUB_ENV echo "BIN_HASH=$(ls -1 binaries/*.id-hash)" >> $GITHUB_ENV - name: Deploy to Repo uses: easingthemes/ssh-deploy@main env: SSH_PRIVATE_KEY: ${{ secrets.REPO_PRIVATE_KEY }} ARGS: "-aic" SOURCE: ${{ env.BIN_PKG }} REMOTE_HOST: ${{ secrets.REPO_HOST }} REMOTE_USER: ${{ secrets.REPO_USER }} TARGET: ${{ secrets.REPO_TARGET }}/binaries-${{ env.GIT_VERSION }}/ EXCLUDE: binaries/.gitignore - name: Push packages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # git tag --force -a v2.x-head -m 'GH-Actions - Development Snapshot Build' # git push origin --tags # gh release upload v2.x-head --repo ${{ github.repository }} --clobber binaries/proxysql*${{ matrix.dist }}*[mb] gh release upload v2.x-head --repo ${{ github.repository }} --clobber ${{ env.BIN_PKG }} # - name: Archive artifacts # if: always() # uses: actions/upload-artifact@v3 # with: # name: binaries-${{ env.GIT_VERSION }} # path: | # ./binaries/ # !./**/.gitignore finalize: runs-on: ubuntu-22.04 needs: [ build ] steps: - name: Update release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release edit v2.x-head --draft --prerelease --repo ${{ github.repository }} --tag v2.x-head --notes-file - << EOF ## Development Snapshot GH-Action Package-Build on PR merge into v2.x Finished : **$(date '+%Y-%m-%d %H:%M:%S %Z')** Status : **Build is finished** [![Package-Build](https://github.com/${{ github.repository }}/actions/workflows/package-build.yml/badge.svg)](https://github.com/${{ github.repository }}/actions/workflows/package-build.yml)