Skip to content

chore: fix type in workflow #9

chore: fix type in workflow

chore: fix type in workflow #9

Workflow file for this run

name: Docker v3
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-matrix:
runs-on: ubuntu-latest
strategy:
matrix:
folders:
- apps/api
- apps/api-gql
- apps/bots
- apps/discord
- apps/emotes-cacher
- apps/eval
- apps/events
- apps/eventsub
- apps/integrations
- apps/parser
- apps/scheduler
- apps/timers
- apps/tokens
- apps/websockets
- apps/ytsr
- apps/chat-messages-store
- frontend/dashboard
- frontend/landing
- frontend/overlays
- frontend/public-page
steps:
- uses: actions/checkout@v4
- name: Sets the folder and application names for the build
id: set-folder
run: |
echo "folder=$(dirname ${{ matrix.folders }})" >> $GITHUB_ENV
echo "app=$(basename ${{ matrix.folders }})" >> $GITHUB_ENV
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
${{ env.folder }}/${{ env.app }}/**
libs/**
- name: Install Node.js
if: steps.changed-files.outputs.any_changed == 'true'
uses: actions/setup-node@v3
with:
node-version: 20
- uses: pnpm/action-setup@v3
if: steps.changed-files.outputs.any_changed == 'true'
with:
version: 9
run_install: false
- name: Get pnpm store directory
if: steps.changed-files.outputs.any_changed == 'true'
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
if: steps.changed-files.outputs.any_changed == 'true'
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install Node.js dependencies
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm install --frozen-lockfile
- name: Setup Golang dependencies
if: steps.changed-files.outputs.any_changed == 'true'
uses: magnetikonline/action-golang-cache@v5
with:
go-version-file: go.work
- name: Install binaries dependencies
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm cli deps -skip-node -skip-go
- name: Setup turborepo cache
if: steps.changed-files.outputs.any_changed == 'true'
uses: dtinth/setup-github-actions-caching-for-turbo@v1
- name: Build libraries
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm cli build libs
- name: Build libraries
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm cli build gql
- name: Build application
if: steps.changed-files.outputs.any_changed == 'true'
run: pnpm cli build app ${{ env.app }}
- name: Set up Docker Buildx
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_REGISTRY_LOGIN }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
- name: Login to Twir registry
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
registry: registry.twir.app
username: ${{ secrets.DOCKER_TWIR_LOGIN }}
password: ${{ secrets.DOCKER_TWIR_PASSWORD }}
- name: Build docker image
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/build-push-action@v5
with:
context: .
file: ./${{ env.folder }}/${{ env.app }}/Dockerfile
push: true
tags: |
twirapp/${{ env.app }}:latest
registry.twir.app/twirapp/${{ env.app }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
migrations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
libs/migrations/**
- name: Set up Docker Buildx
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_REGISTRY_LOGIN }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
- name: Login to Twir registry
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
registry: registry.twir.app
username: ${{ secrets.DOCKER_TWIR_LOGIN }}
password: ${{ secrets.DOCKER_TWIR_PASSWORD }}
- name: Build docker image
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/build-push-action@v5
with:
context: .
file: ./libs/migrations/Dockerfile
push: true
tags: |
twirapp/migrations:latest
registry.twir.app/twirapp/migrations:latest
cache-from: type=gha
cache-to: type=gha,mode=max
web:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
web/**
libs/**
- name: Set up Docker Buildx
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_REGISTRY_LOGIN }}
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
- name: Login to Twir registry
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/login-action@v3
with:
registry: registry.twir.app
username: ${{ secrets.DOCKER_TWIR_LOGIN }}
password: ${{ secrets.DOCKER_TWIR_PASSWORD }}
- name: Build docker image
if: steps.changed-files.outputs.any_changed == 'true'
uses: docker/build-push-action@v5
with:
context: .
file: ./web/Dockerfile
push: true
tags: |
twirapp/web:latest
registry.twir.app/twirapp/web:latest
cache-from: type=gha
cache-to: type=gha,mode=max