Skip to content

added CI/CD

added CI/CD #21

name: Deploy on push
on:
push:
branches:
- main
env:
DOCKER_REGISTRY: mtz.ocir.io
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set environment variables
uses: allenevans/set-env@v3.0.0
with:
DOCKER_REPO: '${{ env.DOCKER_REGISTRY }}/${{ secrets.OCI_TENANCY_NAMESPACE }}/movie-info-bot'
DOCKER_USERNAME: '${{ secrets.OCI_TENANCY_NAMESPACE }}/${{ secrets.OCI_USERNAME }}'
- name: Get short SHA
run: echo "SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Login to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ env.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_AUTH_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Build and push
# uses: docker/build-push-action@v5
# with:
# push: true
# platforms: linux/arm64
# tags: |
# ${{ env.DOCKER_REPO }}:latest
# ${{ env.DOCKER_REPO }}:${{ env.SHA }}
- name: Docker build
run: docker build --platform linux/arm64 . -t ${{ env.DOCKER_REPO }}:latest
- name: Docker tag
run: docker tag ${{ env.DOCKER_REPO }}:latest ${{ env.DOCKER_REPO }}:${{ env.SHA }}
- name: Docker push
run: docker push ${{ env.DOCKER_REPO }} --all-tags
deploy:
runs-on: ubuntu-latest
needs: build
env:
OCI_CLI_USER: ${{ secrets.OCI_CLI_USER }}
OCI_CLI_TENANCY: ${{ secrets.OCI_CLI_TENANCY }}
OCI_CLI_FINGERPRINT: ${{ secrets.OCI_CLI_FINGERPRINT }}
OCI_CLI_KEY_CONTENT: ${{ secrets.OCI_CLI_KEY_CONTENT }}
OCI_CLI_REGION: ${{ secrets.OCI_CLI_REGION }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set environment variables
uses: allenevans/set-env@v3.0.0
with:
DOCKER_REPO: '${{ env.DOCKER_REGISTRY }}/${{ secrets.OCI_TENANCY_NAMESPACE }}/movie-info-bot'
DOCKER_USERNAME: '${{ secrets.OCI_TENANCY_NAMESPACE }}/${{ secrets.OCI_USERNAME }}'
DOCKER_AUTH_TOKEN: ${{ secrets.DOCKER_AUTH_TOKEN }}
HOST: ${{ secrets.HOST }}
TELEGRAM_API_TOKEN: ${{ secrets.TELEGRAM_API_TOKEN }}
- name: Get short SHA
run: echo "SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Configure Kubectl and kubeconfig
uses: oracle-actions/configure-kubectl-oke@v1.3.2
with:
cluster: ${{ secrets.OKE_CLUSTER_OCID }}
- name: Install Helm
uses: azure/setup-helm@v3
- name: Modify values.yaml
run: 'envsubst < ./.helm/template-values.yaml > ./.helm/values.yaml'
- name: View modified yaml
run: cat ./.helm/values.yaml
- name: Helm upgrade
run: helm upgrade -f .helm/values.yaml movie-info-bot ./.helm --atomic --debug --reuse-values --namespace movie-info-bot