name: Build and Deploy docker container 'on': push: branches: main jobs: build: runs-on: ubuntu-latest steps: # - name: Send message job is starting # uses: cstuder/apprise-ga@master # with: # title: 'jonb.io site deployment' # message: >- # Started build for: # Commit by {{ head_commit.author.name }}: {{ head_commit.message | # truncate(128) }} ({{ head_commit.id[0:7] }}) # env: # APPRISE_URL: '${{ secrets.APPRISE_URL }}' - name: Checkout main uses: actions/checkout@v4 - name: Install Yarn run: npm install -g yarn - name: Set Node.js 22.x uses: actions/setup-node@v4 with: node-version: 22.x cache: yarn - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - name: Restore cache uses: actions/cache@v4 id: yarn-cache with: path: | ${{ steps.yarn-cache-dir-path.outputs.dir }} ${{ github.workspace }}/.next/ key: '${{ runner.os }}-yarn-${{ hashFiles(''**/yarn.lock'') }}' restore-keys: | ${{ runner.os }}-yarn- - name: Update node modules run: yarn install --immutable - name: Lint run: yarn lint - name: Build app and export to ./out run: EXPORT=1 UNOPTIMIZED=1 yarn build - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: git.jonb.io username: '${{ gitea.actor }}' password: '${{ secrets.JONBIO_CI }}' - name: Build and push uses: docker/build-push-action@v6 with: context: . push: true tags: 'git.jonb.io/jblu/jonbio:latest' cache-from: 'type=registry,ref=git.jonb.io/jblu/jonbio:buildcache' cache-to: >- type=registry,image-manifest=true,oci-mediatypes=true,ref=git.jonb.io/jblu/jonbio:buildcache,mode=max - name: Deploy app uses: fjogeleit/http-request-action@v1 with: url: 'http://192.168.4.11:7777/v1/update' method: GET bearerToken: '${{ secrets.DEPLOYTOKEN }}' timeout: 60000 - name: Send message app has deployed uses: cstuder/apprise-ga@master with: title: 'jonb.io site deployment' message: >- Deployed {{head_commit.message}} Commit by {{ head_commit.author.name }}: {{ head_commit.message | truncate(128) }} ({{ head_commit.id[0:7] }}) env: APPRISE_URL: '${{ secrets.APPRISE_URL }}'