Skip to content

github action for release #130

github action for release

github action for release #130

Workflow file for this run

name: Merge PR to main
permissions:
contents: read
# on:
# pull_request:
# types:
# - closed
# branches:
# - main
on:
pull_request:
types:
- opened
- synchronize # Optional: to trigger on PR updates too
branches:
- development
jobs:
release:
runs-on: ubuntu-latest
concurrency: release
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python version
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install python-semantic-release
run: pip install python-semantic-release
- name: Determine Modified Packages
id: detect_changes
run: |
# Print the base and head SHAs
echo "Base SHA: ${{ github.event.pull_request.base.sha }}"
echo "Head SHA: ${{ github.event.pull_request.head.sha }}"
# Find modified packages
modified_packages=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | \
grep -E '^feluda/|^operators/' | \
cut -d/ -f1,2 | uniq)
# Print modified packages
echo "Modified packages: $modified_packages"
# Set output for modified packages
echo "::set-output name=packages::$modified_packages"
# jobs:
# release:
# if: github.event.pull_request.merged == true
# runs-on: ubuntu-latest
# concurrency: release
# permissions:
# contents: write
# # Map a step output to a job output
# outputs:
# released: ${{ steps.release.outputs.released }}
# tag: ${{ steps.release.outputs.tag }}
# steps:
# - name: Checkout code
# uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# with:
# fetch-depth: 0
# - name: Setup Python version
# uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
# with:
# python-version: '3.11'
# - name: Python Semantic Release
# id: release
# uses: python-semantic-release/python-semantic-release@c82bd673c30da94a02e039963c8c4c8a51758096 # v9.1.1
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# docker:
# needs: release
# if: needs.release.outputs.released == 'true'
# runs-on: ubuntu-latest
# steps:
# - name: Set up QEMU
# uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
# - name: Login to Docker Hub
# uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Publish vidvec amd64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/vidvec/Dockerfile.video_worker
# platforms: linux/amd64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-vidvec:worker-amd64-${{ needs.release.outputs.tag }}
# - name: Publish vidvec arm64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/vidvec/Dockerfile.video_worker_graviton
# platforms: linux/arm64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-vidvec:worker-arm64-${{ needs.release.outputs.tag }}
# - name: Publish audiovec amd64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/audiovec/Dockerfile.audio_worker
# platforms: linux/amd64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-audiovec:worker-amd64-${{ needs.release.outputs.tag }}
# - name: Publish audiovec arm64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/audiovec/Dockerfile.audio_worker_graviton
# platforms: linux/arm64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-audiovec:worker-arm64-${{ needs.release.outputs.tag }}
# - name: Publish media hash amd64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/hash/Dockerfile.hash_worker
# platforms: linux/amd64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-hash:worker-amd64-${{ needs.release.outputs.tag }}
# - name: Publish media hash arm64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/hash/Dockerfile.hash_worker_graviton
# platforms: linux/arm64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-hash:worker-arm64-${{ needs.release.outputs.tag }}
# - name: Publish media worker amd64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/media/Dockerfile.media_worker
# platforms: linux/amd64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-media:worker-amd64-${{ needs.release.outputs.tag }}
# - name: Publish media worker arm64 worker to dockerhub
# uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
# with:
# context: "{{defaultContext}}:src/"
# file: worker/media/Dockerfile.media_worker_graviton
# platforms: linux/arm64
# build-args: |
# "UID=1000"
# "GID=1000"
# push: true
# tags: tattletech/feluda-operator-media:worker-arm64-${{ needs.release.outputs.tag }}
# - name: deploy to cluster
# uses: steebchen/[email protected]
# with: # defaults to latest kubectl binary version
# config: ${{ secrets.PROD_KUBE_CONFIG_DATA }}
# command: set image --record deployment/feluda-server feluda-server=tattletech/feluda-server:${{ steps.vars.outputs.sha_short }}
# - name: verify deployment
# uses: steebchen/[email protected]
# with:
# config: ${{ secrets.PROD_KUBE_CONFIG_DATA }}
# version: v1.21.0 # specify kubectl binary version explicitly
# command: rollout status deployment/feluda-server