Skip to content

Create release on tag push #61

Create release on tag push

Create release on tag push #61

name: Create release on tag push
on:
push:
tags:
- "*"
jobs:
buildMaven:
name: Build Maven
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: 'maven'
- name: Build, Test
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./mvnw clean verify -P git-commit,integration --no-transfer-progress
buildDocker:
name: Build Docker and Push Image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.PACKAGE_ACTIONS_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64
push: true
provenance: false
tags: |
ghcr.io/nincodedo/ninbot:latest
ghcr.io/nincodedo/ninbot:${{ github.sha }}
ghcr.io/nincodedo/ninbot:${{ github.ref_name }}
createRelease:
needs: [ buildMaven, buildDocker ]
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
discussion_category_name: 'Releases'
deployGKE:
needs: [ createRelease ]
name: Deploy GKE
runs-on: ubuntu-latest
steps:
- name: GKE Auth
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GKE_JSON }}
- name: GKE Get Credentials
uses: google-github-actions/[email protected]
with:
cluster_name: ninbot-cluster
location: us-central1-c
- name: GKE Update Configs
run: kubectl patch configmap ninbot-config -p '{"data":{"OTEL_RESOURCE_ATTRIBUTES":"service.name=ninbot-${{ github.ref_name }},deployment.environment=PROD", "OTEL_SERVICE_NAME":"ninbot-${{ github.ref_name }}"}}'
- name: GKE Deploy
run: kubectl set image deployment/ninbot ninbot=ghcr.io/nincodedo/ninbot:${{ github.ref_name }}