123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- name: Docker nightly release
- on:
- workflow_dispatch:
- schedule:
- - cron: '0 0 * * *'
- jobs:
- check_date:
- runs-on: ubuntu-latest
- name: Check latest commit
- outputs:
- should_run: ${{ steps.should_run.outputs.should_run }}
- steps:
- - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- - name: print latest_commit
- run: echo ${{ github.sha }}
- - id: should_run
- continue-on-error: true
- name: check latest commit is less than a day
- if: ${{ github.event_name == 'schedule' }}
- run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false"
- ci:
- runs-on: ubuntu-latest
- needs: check_date
- if: ${{ needs.check_date.outputs.should_run != 'false' }}
- steps:
- - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- - run: corepack enable
- - uses: actions/setup-node@v3
- with:
- node-version: 20
- cache: 'pnpm'
- - name: Install dependencies
- run: pnpm i
- - name: Run linters
- run: pnpm lint
- - name: Run unit test
- run: pnpm test
- - name: Build the app
- run: pnpm build
- build:
- runs-on: ubuntu-latest
- needs:
- - ci
- steps:
- - name: Checkout
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v3
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.GITHUB_TOKEN }}
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
- - name: Build and push
- uses: docker/build-push-action@v5
- with:
- context: .
- file: ./Dockerfile
- platforms: linux/amd64,linux/arm64
- push: true
- tags: |
- corentinth/it-tools:nightly
- ghcr.io/corentinth/it-tools:nightly
|