on: push: tags: - '**' name: 🏗️✨ Build Workflow jobs: BuildFrontend: name: 🖼️🔨 Build Frontend runs-on: ubuntu-latest steps: - name: 🛡️🔒 Add Siteworx CA Certificates run: | apt update && apt install -yq ca-certificates curl curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt update-ca-certificates - name: 📖🔍 Checkout Repository Code uses: actions/checkout@v2 with: fetch-depth: 1 - name: 🔑🔐 Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: 🔑🛠️ Login to Siteworx Registry uses: docker/login-action@v3 with: username: ${{ vars.SITEWORX_USERNAME }} password: ${{ secrets.SITEWORX_PASSWORD }} registry: scr.siteworxpro.com - name: ⚙️🛠️ Set up QEMU uses: docker/setup-qemu-action@v3 - name: 🐳🔨 Build Frontend Container uses: docker/build-push-action@v6 with: context: ./frontend file: ./frontend/Dockerfile platforms: linux/amd64,linux/arm64 tags: scr.siteworxpro.com/reloading-manager/frontend:${{ gitea.ref_name }} push: true - name: 📦✨ Build Latest Frontend Container uses: docker/build-push-action@v6 with: context: ./frontend file: ./frontend/Dockerfile platforms: linux/amd64,linux/arm64 tags: scr.siteworxpro.com/reloading-manager/frontend:latest push: true BuildBackend: name: 🖥️🔨 Build Backend runs-on: ubuntu-latest steps: - name: 🛡️🔒 Add Siteworx CA Certificates run: | apt update && apt install -yq ca-certificates curl curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt update-ca-certificates - name: 📖🔍 Checkout Repository Code uses: actions/checkout@v2 with: fetch-depth: 1 - name: 🔑🔐 Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: 🔑🛠️ Login to Siteworx Registry uses: docker/login-action@v3 with: username: ${{ vars.SITEWORX_USERNAME }} password: ${{ secrets.SITEWORX_PASSWORD }} registry: scr.siteworxpro.com - name: ⚙️🛠️ Set up QEMU uses: docker/setup-qemu-action@v3 - name: 🏗️🔧 Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: 🐳🔨 Build Backend Container uses: docker/build-push-action@v6 with: context: ./backend file: ./backend/Dockerfile platforms: linux/amd64,linux/arm64 tags: scr.siteworxpro.com/reloading-manager/backend:${{ gitea.ref_name }} push: true - name: 📦✨ Build Latest Backend Container uses: docker/build-push-action@v6 with: context: ./backend file: ./backend/Dockerfile platforms: linux/amd64,linux/arm64 tags: scr.siteworxpro.com/reloading-manager/backend:latest push: true Deploy: name: 🚀✨ Deploy Application runs-on: ubuntu-latest needs: [BuildFrontend, BuildBackend] steps: - name: 🛡️🔒 Add Siteworx CA Certificates run: | apt update && apt install -yq ca-certificates curl curl -Ls https://siteworxpro.com/hosted/Siteworx+Root+CA.pem -o /usr/local/share/ca-certificates/sw.crt update-ca-certificates - name: 📖🔍 Checkout Repository Code uses: actions/checkout@v2 with: fetch-depth: 1 - name: 📝🔧 Update Deployment Manifest run: | sed "s|__TAG__|${{ gitea.ref_name }}|g" argocd/template/deployment.yml > argocd/deployment/deployment.yml - name: 💾✅ Commit Updated Manifest uses: EndBug/add-and-commit@v9 with: new_branch: ${ gitea.ref_name }-deploy add: argocd/deployment/deployment.yml author_name: "GitHub Action 🤖" author_email: gitia@siteworxpro.com message: "📝🔄 Update deployment manifest with new image tags"