Skip to content

Improve player controlled snake #93

Improve player controlled snake

Improve player controlled snake #93

Workflow file for this run

name: Docker Image CD
on:
push:
tags:
- '*.*.*'
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
# set latest tag for main branch
tags: |
type=raw,value=latest
type=ref,event=tag
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ github.event.repository.name }}
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
- name: Build and push Docker image
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
push: true
# push main -> tag:latest, release x.x.x main -> tag:latest AND tag:x.x.x
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# Pushing to production
- name: Force rebuild in digitalocean
run: doctl apps create-deployment ${{secrets.DIGITALOCEAN_APP_ID}} --force-rebuild --wait
- name: Get commit sha
id: vars
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Tag digitalocean yml name with date and sha
uses: fjogeleit/[email protected]
with:
valueFile: 'digitalocean-spec.yaml'
propertyPath: 'name'
value: snakebot-web-${{steps.date.outputs.date}}-${{steps.vars.outputs.sha_short}}
commitChange: false
updateFile: true
- name: Update digitalocean app with new yml spec
run: doctl apps update ${{ secrets.DIGITALOCEAN_APP_ID }} --spec digitalocean-spec.yaml