3
0
mirror of https://github.com/pragma-/pbot.git synced 2025-07-06 21:47:24 +02:00
pbot/.github/workflows/candide.yaml
2024-03-09 00:18:59 -05:00

87 lines
2.2 KiB
YAML

name: candide
on:
push:
branches:
- master
env:
PROJECT_ID: ${{ secrets.GKE_PROJECT }}
GKE_CLUSTER: pragma
GKE_ZONE: us-central1-c
DEPLOYMENT_NAME: candide
NAMESPACE: candide
REPOSITORY: pbot
IMAGE: pbot
jobs:
build:
name: Build & Deploy
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: 'Authenticate to Google Cloud'
id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
- name: Set up GKE credentials
uses: google-github-actions/get-gke-credentials@v2
with:
cluster_name: ${{ env.GKE_CLUSTER }}
location: ${{ env.GKE_ZONE }}
- name: Testing
run: |
kubectl get pods
- name: Authenticate Docker
run: |
gcloud auth configure-docker
- name: Build image
run: |-
docker build --tag "gcr.io/$PROJECT_ID/$REPOSITORY/$IMAGE:$GITHUB_SHA" .
- name: Push image
run: |-
docker push "gcr.io/$PROJECT_ID/$REPOSITORY/$IMAGE:$GITHUB_SHA"
- name: Get all changed non-plugin files
id: changed-non-plugin-files
uses: tj-actions/changed-files@v42
with:
files_ignore: |
lib/PBot/Plugin/**.pm
- name: Get all changed plugin files
id: changed-plugin-files
uses: tj-actions/changed-files@v42
with:
files: |
lib/PBot/Plugin/**.pm
- name: Hot-reload plugin files
if: steps.changed-plugin-files.outputs.any_changed == 'true' && steps.changed-non-plugin-files.outputs.any_changed == 'false'
env:
ALL_CHANGED_FILES: ${{ steps.changed-plugin-files.outputs.all_changed_files }}
run: |
for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed"
done
- name: Deploy with restart
if: steps.changed-non-plugin-files.outputs.any_changed == 'true'
run: |-
sed -i -e "s/PROJECT_ID/$PROJECT_ID/g" -e "s/REPOSITORY/$REPOSITORY/g" -e "s/IMAGE/$IMAGE/g" -e "s/GITHUB_SHA/$GITHUB_SHA/g" k8s/deployment.yaml
kubectl apply -f k8s/deployment.yaml