diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..adc50dc --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,79 @@ +name: Build & Deploy + +on: + push: + branches: + - main + - development + +env: + DOCKER_TLS_CERTDIR: /certs + REGISTRY: registry.remo-liebmann.de + IMAGE_NAME: hallofbrawl-homepage + +jobs: + + # ========================= + # BUILD + # ========================= + + build: + runs-on: ubuntu-latest + + services: + docker: + image: docker:24.0.5-dind + options: --privileged + + container: + image: docker:24.0.5 + + steps: + - uses: actions/checkout@v4 + + - name: Set environment based on branch + run: | + if [ "${GITHUB_REF##*/}" = "main" ]; then + echo "IMAGE_TAG=prod" >> $GITHUB_ENV + echo "HUGO_ENV=production" >> $GITHUB_ENV + else + echo "IMAGE_TAG=dev" >> $GITHUB_ENV + echo "HUGO_ENV=development" >> $GITHUB_ENV + fi + + - name: Login to registry + run: echo "${{ secrets.CI_REGISTRY_PASSWORD }}" | docker login $REGISTRY -u reguser --password-stdin + + - name: Build image + run: | + docker build \ + --build-arg HUGO_ENV=$HUGO_ENV \ + -t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG \ + . + + - name: Push image + run: docker push $REGISTRY/$IMAGE_NAME:$IMAGE_TAG + + + # ========================= + # DEPLOY + # ========================= + + deploy: + runs-on: ubuntu-latest + needs: build + + container: + image: alpine/curl + + steps: + - name: Set webhook based on branch + run: | + if [ "${GITHUB_REF##*/}" = "main" ]; then + echo "PORTAINER_WEBHOOK=${{ secrets.PORTAINER_WEBHOOK_PROD }}" >> $GITHUB_ENV + else + echo "PORTAINER_WEBHOOK=${{ secrets.PORTAINER_WEBHOOK_DEV }}" >> $GITHUB_ENV + fi + + - name: Trigger Portainer + run: curl --insecure -X POST $PORTAINER_WEBHOOK \ No newline at end of file