diff --git a/.gitea/workflows/test_implement.yml b/.gitea/workflows/test_implement.yml new file mode 100644 index 0000000..e9a4328 --- /dev/null +++ b/.gitea/workflows/test_implement.yml @@ -0,0 +1,68 @@ +name: Build docker image and push to test +run-name: Build Docker and Push + +on: + pull_request: + branches: + - main + +jobs: + build_image_push: + runs-on: gitea_runner + name: Build binaries, Build docker image, Apply on test + + env: + REGISTRY_ADDRESS: registry.ma-al.pl + DOCKER_APP_NAME: cl-project + MAAL_REGISTRY_USER: ${{ secret.MAAL_REGISTRY_USER }} + MAAL_REGISTRY_PASSWORD: ${{ secret.MAAL_REGISTRY_PASSWORD }} + MAAL_SSH_PRIVATE_KEY: ${{ secret.MAAL_SSH_PRIVATE_KEY }} + + steps: + - name: Pull Git Repo with Code + uses: actions/checkout@v4 + + - name: Generate version + run: echo "VERSION=$(date +%Y%d%m_%H%M)" >> $GITHUB_ENV + + - name: Login to registry + run: echo "${{ env.MAAL_REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY_ADDRESS }} -u ${{ env.MAAL_REGISTRY_USER }} --password-stdin + + - name: Build application image + run: | + cat < temp.Dockerfile + FROM oven/bun:1 + WORKDIR /app + COPY . /app + RUN bun install --frozen-lockfile + USER bun + EXPOSE 3000 + ENTRYPOINT ["bun", "./src/server.js"] + EOF + + docker build \ + -t "${{ env.REGISTRY_ADDRESS }}/${{ env.DOCKER_APP_NAME }}:${{ env.VERSION }}" \ + -t "${{ env.REGISTRY_ADDRESS }}/${{ env.DOCKER_APP_NAME }}:latest" \ + -f temp.Dockerfile . + + rm temp.Dockerfile + + - name: Push image + run: | + docker push "${{ env.REGISTRY_ADDRESS }}/${{ env.DOCKER_APP_NAME }}:${{ env.VERSION }}" + docker push "${{ env.REGISTRY_ADDRESS }}/${{ env.DOCKER_APP_NAME }}:latest" + + - name: Setup SSH + run: | + mkdir -p ~/.ssh + echo "${{ env.MAAL_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan 192.168.220.30 >> ~/.ssh/known_hosts + + - name: Execute Remote Command + run: | + echo "Deploying version: ${{ env.VERSION }}" + ssh docker@192.168.220.30 \ + "docker compose -f /volume/docker/sys/portainer/compose/71/docker-compose.yml -p mwingz_ma-al_pl pull && \ + docker compose -f /volume/docker/sys/portainer/compose/71/docker-compose.yml -p mwingz_ma-al_pl up -d" +