Skip to content

Allow CodeyBot to generate random phrase based on user messages (with consent) and Markov chain #1170

Allow CodeyBot to generate random phrase based on user messages (with consent) and Markov chain

Allow CodeyBot to generate random phrase based on user messages (with consent) and Markov chain #1170

Workflow file for this run

name: Build
on:
push:
branches: [main]
pull_request:
branches: [main]
release:
types: [released]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Run linter
run: yarn eslint . --max-warnings 0
- name: Run formatter
run: yarn prettier --check "src/**/*.(ts|js)"
- name: TypeScript build
run: yarn ts:build
deploy:
needs: build
# only run deploy on pushes and releases
if: ${{ github.event_name == 'push' || github.event_name == 'release' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# set target deployment to production on release and get release tag
- name: Configuration for releases
if: ${{ github.event_name == 'release' }}
run: |
echo "DEPLOYMENT_TARGET=production" >> $GITHUB_ENV
echo "RELEASE_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
echo "DOCKER_TAG=latest-prod" >> $GITHUB_ENV
# set target deployment to staging on push
- name: Configuration for pushes
if: ${{ github.event_name == 'push' }}
run: |
echo "DEPLOYMENT_TARGET=staging" >> $GITHUB_ENV
echo "DOCKER_TAG=latest-staging" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push version image
id: docker_build
uses: docker/build-push-action@v2
with:
cache-to: uwcsclub/codey-bot:cache
cache-from: uwcsclub/codey-bot:cache
file: docker/${{env.DEPLOYMENT_TARGET}}/Dockerfile
push: true
tags: uwcsclub/codey-bot:${{ env.DOCKER_TAG }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}