diff --git a/.gitea/workflows/node-ci.yaml b/.gitea/workflows/node-ci.yaml index c49964f..dc984a2 100644 --- a/.gitea/workflows/node-ci.yaml +++ b/.gitea/workflows/node-ci.yaml @@ -88,6 +88,23 @@ jobs: - name: Run build run: npm run build + - uses: actions/upload-artifact@v3 + with: + name: dist + path: dist + retention-days: 1 + + - uses: actions/upload-artifact@v3 + with: + name: source + path: src + retention-days: 1 + - uses: actions/upload-artifact@v3 + with: + name: Dockerfile + path: Dockerfile + retention-days: 1 + - name: Notify Google Chat if: ${{ failure() }} # Use always to ensure that the notification is also send on failure of former steps uses: SimonScholz/google-chat-action@3b3519e5102dba8aa5046fd711c4b553586409bb # v1.1.0 @@ -96,16 +113,37 @@ jobs: jobStatus: ${{ job.status }} title: Build failed - #- name: deploy - # if: ${{ success() }} - # run: docker build -t targo_frontend . - #deploy: - # needs: [lint, test, build] - # runs-on: ubuntu-24.04 - # if: github.ref == 'refs/heads/main' - # permissions: - # contents: read - # id-token: write - # steps: - # - run: docker build -t targo_frontend . \ No newline at end of file + deploy: + needs: [lint, test, build] + runs-on: ubuntu-24.04 + #if: github.ref == 'refs/heads/main' + permissions: + contents: read + id-token: write + steps: + - name: Getting Dockerfile + uses: actions/download-artifact@v3 + with: + name: Dockerfile + - name: Downloading dist folder + uses: actions/download-artifact@v3 + with: + name: dist + path: dist + - name: Downloading src folder + uses: actions/download-artifact@v3 + with: + name: source + path: source + - name: Set version number + run: echo "VERSION_NUMBER=$(date +'%y%m%d.%H%M%S')" >> $GITHUB_ENV + - name: Building docker image + run: docker build -t git.targo.ca/targo/targo-frontend-staging:2.${{ env.VERSION_NUMBER }} . + - name: Add tag Latest + run: docker tag git.targo.ca/targo/targo-frontend-staging:2.${{ env.VERSION_NUMBER }} git.targo.ca/targo/targo-frontend-staging:latest + - name: Push images to server + run: | + docker login -u ${{ secrets.CI_USER }} -p ${{ secrets.CI_PASSWORD }} git.targo.ca + docker push git.targo.ca/targo/targo-frontend-staging:2.${{ env.VERSION_NUMBER }} + docker push git.targo.ca/targo/targo-frontend-staging:latest diff --git a/Dockerfile b/Dockerfile index fa43432..73f79ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,15 @@ -# Step 1 - Building the app -FROM node:22 AS build -WORKDIR /app -COPY package*.json ./ -# Install dependencies -RUN npm install -g @quasar/cli -COPY . . -RUN npm ci -RUN npm run build - -# Step 2 - Move Applicatin to Nginx FROM nginx:alpine -COPY --from=build /app/dist/spa /usr/share/nginx/html -RUN mkdir /usr/share/nginx/html/src -COPY --from=build /app/src /usr/share/nginx/html/src -COPY env.sh /docker-entrypoint.d/env.sh +#Copy files +RUN mkdir /usr/share/nginx/html/src +COPY dist/spa /usr/share/nginx/html +COPY source /usr/share/nginx/html/src + +#Add script to replace VITE env vars +RUN curl -o /docker-entrypoint.d/env.sh -O https://raw.githubusercontent.com/Dutchskull/Vite-Dynamic-Environment-Variables/refs/heads/main/app/env.sh RUN dos2unix /docker-entrypoint.d/env.sh RUN chmod +x /docker-entrypoint.d/env.sh ENTRYPOINT ["/docker-entrypoint.sh"] - EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +CMD ["nginx", "-g", "daemon off;"]