diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml new file mode 100644 index 0000000..3626815 --- /dev/null +++ b/.gitea/workflows/build-and-deploy.yml @@ -0,0 +1,79 @@ +name: build-and-deploy + +on: + push: + branches: [ main ] + +jobs: +#───────────────── filtra qué dirs cambiaron ───────────────── + filter: + runs-on: docker + outputs: + server: ${{ steps.paths.outputs.server }} + client: ${{ steps.paths.outputs.client }} + admin: ${{ steps.paths.outputs.admin }} + steps: + - uses: actions/checkout@v3 + - id: paths + uses: dorny/paths-filter@v3 + with: + filters: | + server: "server/**" + client: "client/**" + admin: "admin/**" + +#───────────────── build & push ───────────────── + build: + needs: filter + runs-on: docker + env: + REG: gitea.interno.com/nucleo000 + steps: + - uses: actions/checkout@v3 + - uses: docker/setup-buildx-action@v2 + - uses: docker/login-action@v2 + with: + registry: gitea.interno.com + username: nucleo000 + password: 7bc7b2fcd283bd6a251bef3ede368b7f897c919d + + - name: Build+push server + if: needs.filter.outputs.server == 'true' + run: | + docker build -f server/Dockerfile -t $REG/snatchgame-server:${{ github.sha }} -t $REG/snatchgame-server:latest server + docker push $REG/snatchgame-server:${{ github.sha }} + docker push $REG/snatchgame-server:latest + + - name: Build+push client + if: needs.filter.outputs.client == 'true' + run: | + docker build -f client/Dockerfile -t $REG/snatchgame-client:${{ github.sha }} -t $REG/snatchgame-client:latest client + docker push $REG/snatchgame-client:${{ github.sha }} + docker push $REG/snatchgame-client:latest + + - name: Build+push admin + if: needs.filter.outputs.admin == 'true' + run: | + docker build -f admin/Dockerfile -t $REG/snatchgame-admin:${{ github.sha }} -t $REG/snatchgame-admin:latest admin + docker push $REG/snatchgame-admin:${{ github.sha }} + docker push $REG/snatchgame-admin:latest + +#───────────────── deploy ───────────────── + deploy: + needs: build + runs-on: docker + env: + REG: gitea.interno.com/nucleo000 + steps: + - uses: actions/checkout@v3 + - name: Login to registry + run: docker login gitea.interno.com -u nucleo000 -p 7bc7b2fcd283bd6a251bef3ede368b7f897c919d + + - name: Pull fresh images used in compose + run: docker compose pull --ignore-pull-failures + + - name: Clean up stack + run: docker compose --project-name snatchgame down + + - name: Update stack + run: docker compose --project-name snatchgame up -d --remove-orphans --wait \ No newline at end of file