Skip to content

Merge pull request #2 from gruppin/fix-tel-aviv-trees #4

Merge pull request #2 from gruppin/fix-tel-aviv-trees

Merge pull request #2 from gruppin/fix-tel-aviv-trees #4

Workflow file for this run

name: Server CI
env:
IMAGE: ghcr.io/hasadna/meirim/meirim-server
on:
push:
paths:
- server/**
- .github/workflows/server.yml
jobs:
# test:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# node-version: [18.x]
# services:
# test_mysql:
# image: mysql:5.7
# env:
# MYSQL_ROOT_PASSWORD: password
# ports:
# - 33060:3306
# steps:
# - uses: actions/checkout@v2
# - name: use node v${{ matrix.node-version }}
# uses: actions/setup-node@v1
# with:
# node-version: ${{ matrix.node-version }}
# - name: cache node modules
# uses: actions/cache@v2
# with:
# path: |
# ~/.cache
# !~/.cache/exclude
# **/node_modules
# key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
# restore-keys: ${{ runner.OS }}-build-${{ env.cache-name }}
# ${{ runner.OS }}-build-
# ${{ runner.OS }}-
# - name: install server dependencies
# working-directory: server
# run: npm install
# - name: create database
# run: mysql --protocol=tcp --host=localhost --port=33060 --user=root --password=password -e "CREATE DATABASE test_meirim character set UTF8 collate utf8_bin; SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY,',''));"
# - name: test
# working-directory: server
# run: npm run test
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/setup-buildx-action@v3
- name: use node 14.x
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: install server dependencies
working-directory: server
run: npm install
- id: docker_build
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ env.IMAGE }}:${{ github.sha }}
# cache-from: type=registry,ref=${{ env.IMAGE }}:buildcache-latest
# cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache-latest,mode=max
# deploy-staging:
# environment: staging
# runs-on: ubuntu-latest
# needs: build
# steps:
# - uses: actions/checkout@v2
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
# - name: Fill in the new image ID in the Amazon ECS task definition
# id: task-def
# uses: aws-actions/amazon-ecs-render-task-definition@c804dfbdd57f713b6c079302a4c01db7017a36fc
# with:
# task-definition: server/.aws/staging-task-definition.json
# container-name: ${{ vars.CONTAINER_NAME }}
# image: "072085314121.dkr.ecr.il-central-1.amazonaws.com/meirim-server:${{github.sha}}"
# environment-variables: |
# SERVER_SESSION_SECRET=${{ secrets.SERVER_SESSION_SECRET }}
# SERVER_CYPHER_SECRET=${{ secrets.SERVER_CYPHER_SECRET }}
# SERVER_PAYMENT_SERVICE_MASOF_ID=${{ secrets.SERVER_PAYMENT_SERVICE_MASOF_ID }}
# SERVER_PAYMENT_SERVICE_API_KEY=${{ secrets.SERVER_PAYMENT_SERVICE_API_KEY }}
# SERVER_PAYMENT_SERVICE_PASS=${{ secrets.SERVER_PAYMENT_SERVICE_PASS }}
# SERVER_DATABASE_HOST=${{ secrets.SERVER_DATABASE_HOST }}
# SERVER_DATABASE_USER=${{ secrets.SERVER_DATABASE_USER }}
# SERVER_DATABASE_PASSWORD=${{ secrets.SERVER_DATABASE_PASSWORD }}
# SERVER_EMAIL_SMTP_HOST=${{ secrets.SERVER_EMAIL_SMTP_HOST }}
# SERVER_EMAIL_SMTP_AUTH_USER=${{ secrets.SERVER_EMAIL_SMTP_AUTH_USER }}
# SERVER_EMAIL_SMTP_AUTH_PASSWORD=${{ secrets.SERVER_EMAIL_SMTP_AUTH_PASSWORD }}
# SERVER_EMAIL_SMTP_AUTH_TEMPLATE_PASS=${{ secrets.SERVER_EMAIL_SMTP_AUTH_TEMPLATE_PASS }}
# SERVER_EMAIL_DIGEST_PLANS=${{ secrets.SERVER_EMAIL_DIGEST_PLANS }}
# SERVER_PROXY_API_KEY=${{ secrets.SERVER_PROXY_API_KEY }}
# SERVER_SENTRY_DSN=${{ secrets.SERVER_SENTRY_DSN }}
# AWS_ACCESS_KEY_ID=${{ secrets.SERVER_AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY=${{ secrets.SERVER_AWS_SECRET_ACCESS_KEY }}
# SERVER_CORALOGIX_SERVICE_NAME=${{ vars.SERVER_CORALOGIX_SERVICE_NAME }}
# SERVER_CORALOGIX_API_KEY=${{secrets.SERVER_CORALOGIX_API_KEY}}
# SERVER_GEOCODER_API_KEY=${{secrets.SERVER_GEOCODER_API_KEY}}
# VERSION=${{github.sha}}
# NODE_ENV=staging
# - name: Deploy Amazon ECS task definition
# uses: aws-actions/amazon-ecs-deploy-task-definition@df9643053eda01f169e64a0e60233aacca83799a
# with:
# task-definition: ${{ steps.task-def.outputs.task-definition }}
# service: ${{ vars.ECS_SERVICE }}
# cluster: ${{ vars.ECS_CLUSTER }}
# wait-for-service-stability: true
# deploy-prod:
# if: github.ref == 'refs/heads/master'
# environment: prod
# runs-on: ubuntu-latest
# needs: build
# steps:
# - uses: actions/checkout@v2
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
# - name: Fill in the new image ID in the Amazon ECS task definition
# id: task-def
# uses: aws-actions/amazon-ecs-render-task-definition@c804dfbdd57f713b6c079302a4c01db7017a36fc
# with:
# task-definition: server/.aws/production-task-definition.json
# container-name: ${{ vars.CONTAINER_NAME }}
# image: "072085314121.dkr.ecr.il-central-1.amazonaws.com/meirim-server:${{github.sha}}"
# environment-variables: |
# SERVER_SESSION_SECRET=${{ secrets.SERVER_SESSION_SECRET }}
# SERVER_CYPHER_SECRET=${{ secrets.SERVER_CYPHER_SECRET }}
# SERVER_PAYMENT_SERVICE_MASOF_ID=${{ secrets.SERVER_PAYMENT_SERVICE_MASOF_ID }}
# SERVER_PAYMENT_SERVICE_API_KEY=${{ secrets.SERVER_PAYMENT_SERVICE_API_KEY }}
# SERVER_PAYMENT_SERVICE_PASS=${{ secrets.SERVER_PAYMENT_SERVICE_PASS }}
# SERVER_DATABASE_HOST=${{ secrets.SERVER_DATABASE_HOST }}
# SERVER_DATABASE_USER=${{ secrets.SERVER_DATABASE_USER }}
# SERVER_DATABASE_PASSWORD=${{ secrets.SERVER_DATABASE_PASSWORD }}
# SERVER_EMAIL_SMTP_HOST=${{ secrets.SERVER_EMAIL_SMTP_HOST }}
# SERVER_EMAIL_SMTP_AUTH_USER=${{ secrets.SERVER_EMAIL_SMTP_AUTH_USER }}
# SERVER_EMAIL_SMTP_AUTH_PASSWORD=${{ secrets.SERVER_EMAIL_SMTP_AUTH_PASSWORD }}
# SERVER_EMAIL_SMTP_AUTH_TEMPLATE_PASS=${{ secrets.SERVER_EMAIL_SMTP_AUTH_TEMPLATE_PASS }}
# SERVER_EMAIL_DIGEST_PLANS=${{ secrets.SERVER_EMAIL_DIGEST_PLANS }}
# SERVER_PROXY_API_KEY=${{ secrets.SERVER_PROXY_API_KEY }}
# SERVER_SENTRY_DSN=${{ secrets.SERVER_SENTRY_DSN }}
# VERSION=${{github.sha}}
# AWS_ACCESS_KEY_ID=${{ secrets.SERVER_AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY=${{ secrets.SERVER_AWS_SECRET_ACCESS_KEY }}
# SERVER_CORALOGIX_SERVICE_NAME=${{ vars.SERVER_CORALOGIX_SERVICE_NAME }}
# SERVER_CORALOGIX_API_KEY=${{secrets.SERVER_CORALOGIX_API_KEY}}
# SERVER_GEOCODER_API_KEY=${{secrets.SERVER_GEOCODER_API_KEY}}
# NODE_ENV=production
# - name: Deploy Amazon ECS task definition
# uses: aws-actions/amazon-ecs-deploy-task-definition@df9643053eda01f169e64a0e60233aacca83799a
# with:
# task-definition: ${{ steps.task-def.outputs.task-definition }}
# service: ${{ vars.ECS_SERVICE }}
# cluster: ${{ vars.ECS_CLUSTER }}
# wait-for-service-stability: true