name: Publish Docker image

on:
  push:
    branches: main

jobs:
  push_to_registry:
    name: Push Docker image to Docker Hub
    runs-on: ubuntu-22.04
    permissions:
      packages: write
      contents: read
      attestations: write
      id-token: write
    steps:
      - name: Check out the repo
        uses: actions/checkout@v4

      - name: Log in to registry
        uses: docker/login-action@v3
        with:
          registry: git.vault48.org
          username: ${{ secrets.username }}
          password: ${{ secrets.password }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
        with:
          images: git.vault48.org/${{ env.GITHUB_REPOSITORY }}

#      - name: Use Node.js
#        uses: actions/setup-node@v4
#        with:
#          node-version: '18'
#          cache: 'yarn'
      - run: pwd
      - run: ls -lah
      - run: npm -g install yarn         
      
      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

      - uses: actions/cache@v4
        id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - run: echo ${{ hashFiles('**/yarn.lock') }}
      - run: ls -lah
      - run: yarn add yup
      - run: ls -lah
      - run: ls ${{ steps.yarn-cache-dir-path.outputs.dir }}
      - run: echo ${{ hashFiles('**/yarn.lock') }}

#      - name: Build and push Docker image
#        id: push
#        uses: docker/build-push-action@v6
#        with:
#          context: .
#          file: ./Dockerfile
#          push: true
#          tags: ${{ steps.meta.outputs.tags }}
#          labels: ${{ steps.meta.outputs.labels }}