mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 21:19:01 +01:00 
			
		
		
		
	npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: 'node-abi@4.2.0',
npm warn EBADENGINE   required: { node: '>=22.12.0' },
npm warn EBADENGINE   current: { node: 'v20.18.1', npm: '10.8.2' }
npm warn EBADENGINE }
		
	
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Dev
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches: [ develop ]
 | 
						|
  pull_request:
 | 
						|
    branches: [ develop ]
 | 
						|
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.ref }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
env:
 | 
						|
  GHCR_REGISTRY: ghcr.io
 | 
						|
  DOCKERHUB_REGISTRY: docker.io
 | 
						|
  IMAGE_NAME: ${{ github.repository_owner }}/notes
 | 
						|
  TEST_TAG: ${{ github.repository_owner }}/notes:test
 | 
						|
 | 
						|
jobs:
 | 
						|
  test_dev:
 | 
						|
    name: Test development
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - name: Checkout the repository
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Set up node & dependencies
 | 
						|
        uses: actions/setup-node@v4
 | 
						|
        with:
 | 
						|
          node-version: 22
 | 
						|
          cache: "npm"
 | 
						|
 | 
						|
      - run: npm ci
 | 
						|
 | 
						|
      - name: Run the TypeScript build
 | 
						|
        run: npx tsc
 | 
						|
 | 
						|
      - name: Run the unit tests
 | 
						|
        run: npm run test
 | 
						|
 | 
						|
  build_docker:
 | 
						|
    name: Build Docker image
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    needs:
 | 
						|
      - test_dev
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: docker/setup-buildx-action@v3
 | 
						|
      - uses: docker/build-push-action@v6
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          cache-from: type=gha
 | 
						|
          cache-to: type=gha,mode=max
 | 
						|
  test_docker:
 | 
						|
    name: Check Docker build
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    needs:
 | 
						|
      - build_docker
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        include:
 | 
						|
          - dockerfile: Dockerfile.alpine
 | 
						|
          - dockerfile: Dockerfile
 | 
						|
    steps:
 | 
						|
      - name: Checkout the repository
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Set IMAGE_NAME to lowercase
 | 
						|
        run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
 | 
						|
      - name: Set TEST_TAG to lowercase
 | 
						|
        run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
 | 
						|
 | 
						|
      - name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@v3
 | 
						|
 | 
						|
      - name: Build and export to Docker
 | 
						|
        uses: docker/build-push-action@v6
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ${{ matrix.dockerfile }}
 | 
						|
          load: true
 | 
						|
          tags: ${{ env.TEST_TAG }}
 | 
						|
          cache-from: type=gha
 | 
						|
          cache-to: type=gha,mode=max
 | 
						|
 | 
						|
      - name: Validate container run output
 | 
						|
        run: |
 | 
						|
          CONTAINER_ID=$(docker run -d --log-driver=journald --rm --name trilium_local ${{ env.TEST_TAG }})
 | 
						|
          echo "Container ID: $CONTAINER_ID"
 | 
						|
 | 
						|
      - name: Wait for the healthchecks to pass
 | 
						|
        uses: stringbean/docker-healthcheck-action@v3
 | 
						|
        with:
 | 
						|
          container: trilium_local
 | 
						|
          wait-time: 50
 | 
						|
          require-status: running
 | 
						|
          require-healthy: true
 | 
						|
 | 
						|
      # Print the entire log of the container thus far, regardless if the healthcheck failed or succeeded
 | 
						|
      - name: Print entire log
 | 
						|
        if: always()
 | 
						|
        run: |
 | 
						|
          journalctl -u docker CONTAINER_NAME=trilium_local --no-pager
 |