diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..6ff1fe5 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,42 @@ +name: Build and Deploy + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + container: + image: harbor.scottyah.com/quay-cache/buildah/stable + steps: + - name: Checkout + run: | + git clone --depth 1 --branch "${{ github.ref_name }}" "https://x-access-token:${{ github.token }}@git.scottyah.com/${{ github.repository }}.git" . + git checkout "${{ github.sha }}" + + - name: Build image + run: | + IMAGE=harbor.scottyah.com/secure/awards + buildah --isolation chroot bud -t $IMAGE:${{ github.sha }} -t $IMAGE:latest . + + - name: Push image + run: | + IMAGE=harbor.scottyah.com/secure/awards + buildah login --tls-verify=false -u "$HARBOR_USERNAME" -p "$HARBOR_PASSWORD" harbor.scottyah.com + buildah push --tls-verify=false $IMAGE:${{ github.sha }} + buildah push --tls-verify=false $IMAGE:latest + env: + HARBOR_USERNAME: ${{ secrets.HARBOR_USERNAME }} + HARBOR_PASSWORD: ${{ secrets.HARBOR_PASSWORD }} + + - name: Deploy + run: | + curl -sLO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + chmod +x kubectl + mkdir -p ~/.kube + echo "${{ secrets.KUBECONFIG_DATA }}" | base64 -d > ~/.kube/config + sed -i "s|harbor.scottyah.com/secure/awards:latest|harbor.scottyah.com/secure/awards:${{ github.sha }}|" k8s.yaml + ./kubectl apply -f k8s.yaml + ./kubectl rollout status deployment/awards-dep -n awards --timeout=120s diff --git a/Dockerfile b/Dockerfile index cdf3b4b..ab57448 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Multi-stage build for React Awards Map -FROM node:20-alpine AS frontend-builder +FROM harbor.scottyah.com/dockerhub-cache/library/node:20-alpine AS frontend-builder WORKDIR /app/frontend @@ -17,7 +17,7 @@ ENV VITE_API_URL="" RUN npm run build # Production stage -FROM node:20-alpine +FROM harbor.scottyah.com/dockerhub-cache/library/node:20-alpine WORKDIR /app