Upgrade Node.js version from 14.x to 18.x #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 18.x | |
| uses: actions/setup-node@v1 | |
| with: | |
| node-version: 18.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 |