From 367780cccbf20090bbfb8e23810c561ec91cb02a Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 1 May 2024 20:46:05 -0600 Subject: [PATCH] chore: add Docker build on PR --- .env.production.example | 3 ++ .github/workflows/pull-request.yml | 55 ++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 .env.production.example diff --git a/.env.production.example b/.env.production.example new file mode 100644 index 00000000..41e934c3 --- /dev/null +++ b/.env.production.example @@ -0,0 +1,3 @@ +DATABASE_URL="postgres://dokploy:amukds4wi9001583845717ad2@dokploy-postgres:5432/dokploy" +PORT=3000 +NODE_ENV=production \ No newline at end of file diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index e13b5b10..42a8d7cd 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -5,7 +5,8 @@ on: - main - canary jobs: - build: + build-app: + if: github.event_name == 'pull_request' runs-on: ubuntu-20.04 strategy: matrix: @@ -23,4 +24,54 @@ jobs: - name: Install dependencies run: pnpm install - name: Run Build - run: pnpm build \ No newline at end of file + run: pnpm build + + + build-docker-on-pr: + if: github.event_name == 'pull_request' + needs: build-app + runs-on: ubuntu-latest + steps: + - name: Check out the code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Prepare .env file + run: | + cp .env.production.example .env.production + + - name: Run custom Docker build script + run: | + + chmod +x ./docker/build.sh + echo "Building Docker image for ${{ github.head_ref }}" + ./docker/build.sh ${{ github.head_ref == 'canary' && 'canary' || '' }} + + build-and-push-docker-on-push: + if: github.event_name == 'push' + runs-on: ubuntu-latest + steps: + - name: Check out the code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Prepare .env file + run: | + cp .env.production.example .env.production + + - name: Build and push Docker image using custom script + run: | + chmod +x ./docker/build.sh + chmod +x ./docker/push.sh + ./docker/build.sh ${{ github.ref_name == 'canary' && 'canary' || '' }} + ./docker/push.sh ${{ github.ref_name == 'canary' && 'canary' || '' }} \ No newline at end of file