Files
kemkas-gh-mirror/.github/workflows/ci.yml
T

82 lines
2.7 KiB
YAML

name: CI compile & test & build
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
ci-fe:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Yarn
run: |
cd ./frontend
yarn install --frozen-lockfiles
./compile-less.sh
yarn test
yarn build
docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: docker build
run: |
cd ./frontend
docker build . -t kemkas:${GITHUB_SHA::8}
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Log in to DigitalOcean Container Registry with short-lived credentials
run: doctl registry login --expiry-seconds 1200
- name: Tag container image
run: |
docker tag kemkas:${GITHUB_SHA::8} registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
- name: Push image to Container Registry
run: |
docker push registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
deploy:
runs-on: ubuntu-latest
needs:
- ci-fe
- docker-build
if: ${{ github.event_name == 'push' || ( github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged ) }}
steps:
- uses: actions/checkout@v3
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Log in to DigitalOcean Container Registry with short-lived credentials
run: doctl registry login --expiry-seconds 1200
- name: Tag container image with latest tag
run: |
docker pull registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
docker tag registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} registry.digitalocean.com/kemkas/kemkas:latest
- name: Push image to Container Registry
run: |
docker push registry.digitalocean.com/kemkas/kemkas:latest
- name: Get container image ID of the images just pushed
run: |
docker images registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} --format "{{.ID}}"
export DOCKER_IMAGE_ID=$(docker images registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} --format "{{.ID}}")
export DOCKER_IMAGE_ID=DO-$DOCKER_IMAGE_ID
echo "DOCKER_IMAGE_ID=$DOCKER_IMAGE_ID" >> $GITHUB_ENV
- name: Tag commit
uses: tvdias/github-tagger@v0.0.1
with:
repo-token: "${{ github.token }}"
tag: "${{ env.DOCKER_IMAGE_ID }}"