Update create_registry_secret.sh #23
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: City-connect CD for production | |
on: | |
push: | |
tags: | |
- '*.*.*' | |
jobs: | |
prepare-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Build with Maven | |
run: mvn -B clean test package javadoc:javadoc | |
- name: Archive build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: application-jar | |
path: | | |
backend/target/backend-*.jar | |
retention-days: 1 | |
- name: Archive build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: javadoc-jar | |
path: | | |
backend/target/site/apidocs | |
retention-days: 1 | |
# build-javadoc: | |
# runs-on: ubuntu-latest | |
# needs: prepare-build | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Download a single artifact | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: javadoc-jar | |
# path: backend/target/site/apidocs | |
# - name: Build javadoc docker image | |
# run: | | |
# echo "*******************************" | |
# echo "Building images" | |
# docker build -t registry.bastian-somon.fr/city-connect-javadoc:${{ github.ref_name }} -f backend/Dockerfile.javadoc backend | |
# echo "*******************************" | |
# echo "*******************************" | |
# echo "Pushing images" | |
# echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin registry.bastian-somon.fr | |
# docker push registry.bastian-somon.fr/city-connect-javadoc:${{ github.ref_name }} | |
# echo "*******************************" | |
build-application: | |
runs-on: ubuntu-latest | |
needs: prepare-build | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download a single artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: application-jar | |
path: backend/target | |
- name: Build application docker image | |
run: | | |
echo "*******************************" | |
echo "Building images" | |
docker build -t registry.bastian-somon.fr/city-connect:${{ github.ref_name }} -f backend/Dockerfile backend | |
echo "*******************************" | |
echo "*******************************" | |
echo "Pushing images" | |
echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin registry.bastian-somon.fr | |
docker push registry.bastian-somon.fr/city-connect:${{ github.ref_name }} | |
echo "*******************************" | |
rollout-kube: | |
runs-on: ubuntu-latest | |
needs: [build-application] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Rollout Kube | |
run: | | |
echo "*******************************" | |
echo "Importing custom kubectl config" | |
echo ${{ secrets.KUBE_CONFIG }} | base64 -d > config | |
echo "*******************************" | |
echo "*******************************" | |
echo "Replacing value in deployment.yaml ..." | |
sed -i "s/%%VERSION%%/${{ github.ref_name }}/1" infra/application/overlay/production/patches/backend-deployment.yml | |
# sed -i "s/%%VERSION%%/${{ github.ref_name }}/1" infra/application/overlay/production/patches/javadoc-deployment.yml | |
echo "*******************************" | |
echo "*******************************" | |
echo "Updating infrastructure ..." | |
kubectl --kubeconfig config apply -k infra/application/overlay/production | |
echo "*******************************" | |
echo "*******************************" | |
echo "Rolling out deployment ..." | |
kubectl --kubeconfig config rollout restart deployment/city-connect -n city-connect | |
# kubectl --kubeconfig config rollout restart deployment/javadoc -n city-connect | |
echo "*******************************" | |
create-release: | |
runs-on: ubuntu-latest | |
needs: rollout-kube | |
steps: | |
- name: Download a single artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: application-jar | |
path: backend/target | |
- name: Create release | |
uses: actions/create-release@v1 | |
id: create_release | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN }} | |
with: | |
tag_name: ${{ github.ref_name }} | |
release_name: City Connect v${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
- name: Rename jar | |
run: | | |
mv backend/target/backend-*.jar backend/target/backend-${{ github.ref_name }}.jar | |
- name: Upload jar asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: backend/target/backend-${{ github.ref_name }}.jar | |
asset_name: city-connect-${{ github.ref_name }}.jar | |
asset_content_type: application/java-archive |