Skip to content

Merge pull request #346 from cofacts/typescript #153

Merge pull request #346 from cofacts/typescript

Merge pull request #346 from cofacts/typescript #153

name: Build and push to docker
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the dev branch
push:
tags:
- release/*
branches:
- master
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
strategy:
matrix:
locales:
- locale: en_US
postfix: -en
- locale: zh_TW
postfix: -tw
- locale: ja
postfix: -ja
env:
RELEASE_TAG: ${{ startsWith(github.ref, 'refs/tags/release') && 'latest' || 'dev' }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Echo RELEASE_TAG
run: 'echo $RELEASE_TAG'
- name: Checkout repo
uses: actions/checkout@v2
- name: Generate staging .env file
run: 'curl $ENV_URL -o .env'
env:
ENV_URL: ${{ secrets.STAGING_ENV_URL }}
if: ${{ env.RELEASE_TAG == 'dev' }}
- name: Generate production .env file
run: 'curl $ENV_URL -o .env'
env:
ENV_URL: ${{ secrets.PRODUCTION_ENV_URL }}${{ matrix.locales.postfix }}
if: ${{ env.RELEASE_TAG == 'latest' }}
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: ./
file: ./Dockerfile
push: true
tags: cofacts/rumors-line-bot:${{ env.RELEASE_TAG }}${{ matrix.locales.postfix }}
build-args: |
"LOCALE=${{ matrix.locales.locale }}"
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}