diff --git a/.github/workflows/dev-image.yml b/.github/workflows/dev-image.yml index e9d8ec4..79edcf7 100644 --- a/.github/workflows/dev-image.yml +++ b/.github/workflows/dev-image.yml @@ -1,17 +1,53 @@ name: Docker Images CI on: push: - branches: [ dev ] + branches: dev + jobs: - build: + buildx: runs-on: ubuntu-latest - env: - DOCKER_BUILDKIT: '1' steps: - - uses: actions/checkout@v2 - - name: Build the Unified Docker image - run: docker build . --file Dockerfile --tag albertoxamin/bang:dev - - name: Log into registry - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - - name: Push images - run: docker push albertoxamin/bang:dev + - + name: Checkout + uses: actions/checkout@v2 + - + name: Set up Docker Buildx + uses: crazy-max/ghaction-docker-buildx@v3 + - + name: Cache Docker layers + uses: actions/cache@v2 + id: cache + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + - + name: Docker Buildx (build) + run: | + docker buildx build \ + --cache-from "type=local,src=/tmp/.buildx-cache" \ + --cache-to "type=local,dest=/tmp/.buildx-cache" \ + --platform linux/amd64,linux/arm/v7,linux/arm64 \ + --output "type=image,push=false" \ + --tag albertoxamin/bang:dev \ + --file ./Dockerfile ./ + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - + name: Docker Buildx (push) + run: | + docker buildx build \ + --cache-from "type=local,src=/tmp/.buildx-cache" \ + --platform linux/amd64,linux/arm/v7,linux/arm64 \ + --output "type=image,push=true" \ + --tag albertoxamin/bang:dev \ + --file ./Dockerfile ./ + - + name: Inspect image + run: | + docker buildx imagetools inspect albertoxamin/bang:dev diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index cb13728..8c53638 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,17 +1,53 @@ name: Docker Images CI on: push: - branches: [ main ] + branches: main + jobs: - build: + buildx: runs-on: ubuntu-latest - env: - DOCKER_BUILDKIT: '1' steps: - - uses: actions/checkout@v2 - - name: Build the Unified Docker image - run: docker build . --file Dockerfile --tag albertoxamin/bang:latest - - name: Log into registry - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - - name: Push images - run: docker push albertoxamin/bang:latest + - + name: Checkout + uses: actions/checkout@v2 + - + name: Set up Docker Buildx + uses: crazy-max/ghaction-docker-buildx@v3 + - + name: Cache Docker layers + uses: actions/cache@v2 + id: cache + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + - + name: Docker Buildx (build) + run: | + docker buildx build \ + --cache-from "type=local,src=/tmp/.buildx-cache" \ + --cache-to "type=local,dest=/tmp/.buildx-cache" \ + --platform linux/amd64,linux/arm/v7 \ + --output "type=image,push=false" \ + --tag albertoxamin/bang:latest \ + --file ./Dockerfile ./ + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - + name: Docker Buildx (push) + run: | + docker buildx build \ + --cache-from "type=local,src=/tmp/.buildx-cache" \ + --platform linux/amd64,linux/arm/v7 \ + --output "type=image,push=true" \ + --tag albertoxamin/bang:latest \ + --file ./Dockerfile ./ + - + name: Inspect image + run: | + docker buildx imagetools inspect albertoxamin/bang:latest diff --git a/Dockerfile b/Dockerfile index e63da3d..06a1600 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,10 +2,10 @@ FROM node:lts-alpine as builder COPY ./frontend . RUN npm install RUN npm run build -FROM python:3.7-slim-stretch +FROM python:3.7.10-stretch COPY --from=builder ./dist /dist/ COPY ./backend /dist/ WORKDIR /dist RUN pip install -r requirements.txt EXPOSE 5001 -ENTRYPOINT ["python", "/dist/__init__.py"] \ No newline at end of file +ENTRYPOINT ["python", "/dist/__init__.py"] diff --git a/backend/Dockerfile b/backend/Dockerfile index 515c7b6..df7d29e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,6 +2,9 @@ FROM python:3.7-slim-stretch WORKDIR /code COPY * /code/ +RUN RUN apt-get update && apt-get install -y \ + libevent-dev \ + python-all-dev RUN pip install -r requirements.txt EXPOSE 5001 diff --git a/backend/bang/players.py b/backend/bang/players.py index 87f6f19..2f43207 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -457,8 +457,8 @@ class Player: self.hand.append(self.game.deck.draw()) if len([c for c in self.gold_rush_equipment if isinstance(c, grc.Piccone)]) > 0: self.hand.append(self.game.deck.draw()) - self.notify_self() self.manette() + self.notify_self() def manette(self): if self.game.check_event(ceh.Manette): diff --git a/frontend/package.json b/frontend/package.json index 586b1f3..102bcae 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,14 +8,14 @@ "lint": "vue-cli-service lint" }, "dependencies": { - "core-js": "^3.14.0", + "core-js": "^3.15.0", "pretty-checkbox-vue": "^1.1.9", "register-service-worker": "^1.7.2", "socket.io-client": "^4.1.2", "vue": "^2.6.14", "vue-clipboard2": "^0.3.1", - "vue-i18n": "^8.24.4", - "vue-router": "^3.5.1", + "vue-i18n": "^8.24.5", + "vue-router": "^3.5.2", "vue-socket.io": "^3.0.10" }, "devDependencies": { diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue index 8325b82..ed567a8 100644 --- a/frontend/src/components/Player.vue +++ b/frontend/src/components/Player.vue @@ -147,7 +147,9 @@ export default { this.name = self.name this.pending_action = self.pending_action this.character = self.character - this.character.is_character = true + if (this.character != null) { + this.character.is_character = true + } this.hand = self.hand this.equipment = self.equipment this.gold_rush_equipment = self.gold_rush_equipment diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 02c8865..0259ada 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2728,9 +2728,9 @@ color-name@^1.0.0, color-name@~1.1.4: integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz?cache=0&sync_timestamp=1602228027609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY= + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2929,10 +2929,10 @@ core-js@^2.4.0: resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1606326948512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw= -core-js@^3.14.0, core-js@^3.6.5: - version "3.14.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" - integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== +core-js@^3.15.0, core-js@^3.6.5: + version "3.15.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.0.tgz#db9554ebce0b6fd90dc9b1f2465c841d2d055044" + integrity sha512-GUbtPllXMYRzIgHNZ4dTYTcUemls2cni83Q4Q/TrFONHfhcg9oEGOtaGHfb0cpzec60P96UKPvMkjX1jET8rUw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -5012,8 +5012,8 @@ is-arrayish@^0.2.1: is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@^1.0.0: version "1.0.1" @@ -7685,7 +7685,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" @@ -8753,10 +8753,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha1-UylVzB6yCKPZkLOp+acFdGV+CPI= -vue-i18n@^8.24.4: - version "8.24.4" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.4.tgz#b158614c1df7db183d9cadddbb73e1d540269492" - integrity sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw== +vue-i18n@^8.24.5: + version "8.24.5" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.5.tgz#7127a666d5be2199be69be39e439a419a90ff931" + integrity sha512-p8W5xOmniuZ8fj76VXe0vBL3bRWVU87jHuC/v8VwmhKVH2iMQsKnheB1U+umxDBqC/5g9K+NwzokepcLxnBAVQ== "vue-loader-v16@npm:vue-loader@^16.1.0": version "16.2.0" @@ -8778,10 +8778,10 @@ vue-loader@^15.9.2: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" -vue-router@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.1.tgz#edf3cf4907952d1e0583e079237220c5ff6eb6c9" - integrity sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw== +vue-router@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" + integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== vue-socket.io@^3.0.10: version "3.0.10"