From 5f773b1b11320ff5c1d07ed0732b4e339e4c4cf6 Mon Sep 17 00:00:00 2001 From: oonyeje Date: Sat, 1 Mar 2025 18:22:06 -0500 Subject: [PATCH] - add gitea actions pipeline --- .env.dev | 10 ++++++ .gitea/workflows/test.yaml | 66 ++++++++++++++++++++++++++++++++++++++ docker-compose.dev.yaml | 27 ++++++++++++++++ docker-compose.drone.yaml | 3 +- 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 .env.dev create mode 100644 .gitea/workflows/test.yaml create mode 100755 docker-compose.dev.yaml diff --git a/.env.dev b/.env.dev new file mode 100644 index 0000000..2614730 --- /dev/null +++ b/.env.dev @@ -0,0 +1,10 @@ +SMTP_PROXY_EMAIL=$SMTP_PROXY_EMAIL +SMTP_RECIPIENT_EMAIL=$SMTP_RECIPIENT_EMAIL +SMTP_HOST=$SMTP_HOST +SMTP_PORT=$SMTP_PORT +SMTP_USERNAME=$SMTP_USERNAME +SMTP_PASSWORD=$SMTP_PASSWORD +NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK=$NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK +RECAPTCHA_SECRET_KEY=$RECAPTCHA_SECRET_KEY +NEXT_PUBLIC_RECAPTCHA_SITE_KEY=$NEXT_PUBLIC_RECAPTCHA_SITE_KEY +GIT_SHA=$GIT_SHA diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml new file mode 100644 index 0000000..8147dba --- /dev/null +++ b/.gitea/workflows/test.yaml @@ -0,0 +1,66 @@ +name: Build and Push Docker Image to Gitea Registry + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Login to Gitea Registry + run: | + echo "${{ secrets.GITEA_TOKEN }}" | docker login ${{ gitea.server_url }}/packages/container --username ${{ gitea.actor }} --password-stdin + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build and push Docker image (from docker-compose) + id: docker_build + uses: docker/build-push-action@v3 + with: + context: . + file: ./Dockerfile # Ensure your Dockerfile is correctly referenced from your compose file. + push: true + tags: ${{ gitea.server_url }}/packages/container/${{ gitea.repository }}:${{ github.sha }} + build-args: | + SMTP_PROXY_EMAIL=${{secrets.SMTP_PROXY_EMAIL}} + SMTP_RECIPIENT_EMAIL=${{secrets.SMTP_RECIPIENT_EMAIL}} + SMTP_HOST=${{secrets.SMTP_HOST}} + SMTP_PORT=${{secrets.SMTP_PORT}} + SMTP_USERNAME=${{secrets.SMTP_USERNAME}} + SMTP_PASSWORD=${{secrets.SMTP_PASSWORD}} + NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK=${{secrets.NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK}} + RECAPTCHA_SECRET_KEY=${{secrets.RECAPTCHA_SECRET_KEY}} + NEXT_PUBLIC_RECAPTCHA_SITE_KEY=${{secrets.NEXT_PUBLIC_RECAPTCHA_SITE_KEY}} + + - name: Push latest tag (optional) + if: github.ref == 'refs/heads/main' + uses: docker/build-push-action@v3 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ gitea.server_url }}/packages/container/${{ gitea.repository }}:latest + build-args: | + SMTP_PROXY_EMAIL=${{secrets.SMTP_PROXY_EMAIL}} + SMTP_RECIPIENT_EMAIL=${{secrets.SMTP_RECIPIENT_EMAIL}} + SMTP_HOST=${{secrets.SMTP_HOST}} + SMTP_PORT=${{secrets.SMTP_PORT}} + SMTP_USERNAME=${{secrets.SMTP_USERNAME}} + SMTP_PASSWORD=${{secrets.SMTP_PASSWORD}} + NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK=${{secrets.NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK}} + RECAPTCHA_SECRET_KEY=${{secrets.RECAPTCHA_SECRET_KEY}} + NEXT_PUBLIC_RECAPTCHA_SITE_KEY=${{secrets.NEXT_PUBLIC_RECAPTCHA_SITE_KEY}} + + - name: Display Image details + run: | + echo "Image pushed: ${{ gitea.server_url }}/packages/container/${{ gitea.repository }}:${{ github.sha }}" + echo "Image pushed: ${{ gitea.server_url }}/packages/container/${{ gitea.repository }}:latest" \ No newline at end of file diff --git a/docker-compose.dev.yaml b/docker-compose.dev.yaml new file mode 100755 index 0000000..f053136 --- /dev/null +++ b/docker-compose.dev.yaml @@ -0,0 +1,27 @@ +name: oonyeje-portfolio +services: + oonyeje-portfolio: + # this is not tagging corectly in drone, which is not pushing the correct build in the end + image: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio + build: + context: ./ + dockerfile: Dockerfile + ports: + - "6000:3000" + volumes: + - .:/home/node/app + - ./node_modules:/home/node/app/node_modules + environment: + - SMTP_PROXY_EMAIL=${SMTP_PROXY_EMAIL} + - SMTP_RECIPIENT_EMAIL=${SMTP_RECIPIENT_EMAIL} + - SMTP_HOST=${SMTP_HOST} + - SMTP_PORT=${SMTP_PORT} + - SMTP_USERNAME=${SMTP_USERNAME} + - SMTP_PASSWORD=${SMTP_PASSWORD} + - NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK=${NEXT_PUBLIC_GOOGLE_APPOINTMENTS_LINK} + - RECAPTCHA_SECRET_KEY=${RECAPTCHA_SECRET_KEY} + - NEXT_PUBLIC_RECAPTCHA_SITE_KEY=${NEXT_PUBLIC_RECAPTCHA_SITE_KEY} + working_dir: /home/node/app/ + command: sh -c "yarn install && yarn dev" + env_file: + - .env.dev diff --git a/docker-compose.drone.yaml b/docker-compose.drone.yaml index 2e56d59..87dd091 100755 --- a/docker-compose.drone.yaml +++ b/docker-compose.drone.yaml @@ -1,7 +1,8 @@ name: oonyeje-portfolio services: oonyeje-portfolio: - image: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio:"${DRONE_SHA}" + # this is not tagging corectly in drone, which is not pushing the correct build in the end + image: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio build: context: ./ dockerfile: Dockerfile