Files
express/.gitea/workflows/build.yml
ardi 1690eace79
Some checks failed
Build and Test / build (push) Successful in 1m18s
Build and Test / deploy (push) Failing after 7s
Update .gitea/workflows/build.yml
2025-10-09 16:50:30 +00:00

100 lines
2.5 KiB
YAML

name: Build and Test
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
jobs:
build:
runs-on: k8s-runner-00
env:
REGISTRY: registry.staging
IMAGE_NAME: ${{ gitea.repository }}
IMAGE_TAG: ${{ gitea.sha }}
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- id: generator
name: "Generate Dockerfile & Manifest K8S"
uses: ardipc/devops-generator@v1.0.2
with:
name: "hello-app"
language: "node"
- name: "Print Output Docker"
id: output
run: |
echo "${{ steps.generator.outputs.docker }}" > Dockerfile
- name: "Create buildkitd.toml"
run: |
cat <<EOF > buildkitd.toml
[registry."registry.staging"]
http = true
insecure = true
EOF
- name: "Set up Buildx builder"
run: |
BUILDER_NAME="builder-$(date +%s)"
echo "BUILDER_NAME=$BUILDER_NAME" >> $GITEA_ENV
docker buildx create \
--use \
--name $BUILDER_NAME \
--driver docker-container \
--config buildkitd.toml
- name: "Build & Push Docker"
run: |
docker buildx build \
--builder $BUILDER_NAME \
-t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG \
--push .
- name: "Cleanup builder"
if: always()
run: docker buildx rm $BUILDER_NAME || true
- name: Set image name
id: export
run: |
echo "image=registry.bigdata.pens.ac.id/$IMAGE_NAME:$IMAGE_TAG" >> $GITEA_OUTPUT
outputs:
image: ${{ steps.export.outputs.image }}
deploy:
runs-on: k8s-runner-00
needs: build
env:
IMAGE_NAME: ${{ gitea.repository }}
DIGEST_IMAGE: ${{ needs.build.outputs.image }}
steps:
- name: "Checkout repository"
uses: actions/checkout@v4
- name: "Generate Dockerfile"
run: curl -o k8s.yml https://n8n.mceasy.cloud/webhook/generator/manifest?type=k8s
- name: "Replace APP_NAME"
run: |
NAME=$(echo "$IMAGE_NAME" | sed 's/\//-/g')
sed -i "s|APP_NAME|$NAME|g" k8s.yml
sed -i "s|IMAGE_NAME|$DIGEST_IMAGE|g" k8s.yml
cat k8s.yml
- name: "Set kubeconfig"
run: |
mkdir -p .kube
echo "${{ vars.KUBECONFIG_PA_DEVOPS }}" > .kube/config
- name: "Deploy to Cluster"
run: |
kubectl apply -f k8s.yml