79 lines
2.8 KiB
YAML
79 lines
2.8 KiB
YAML
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.nucleoriofrio.com/nucleo000
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: docker/setup-buildx-action@v2
|
|
- uses: docker/login-action@v2
|
|
with:
|
|
registry: gitea.nucleoriofrio.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.nucleoriofrio.com/nucleo000
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Login to registry
|
|
run: docker login gitea.nucleoriofrio.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 |