name: build & publish Docker image on: push: branches: - 5 jobs: lint-test: name: lint & test runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - name: setup Node uses: actions/setup-node@v1 with: node-version: 16.x - run: npm install - run: npm run lint - run: npm test build-and-publish: name: build & publish Docker image needs: [lint-test] runs-on: ubuntu-latest steps: - name: check out the repo uses: actions/checkout@v2 - name: log in to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_ACCESS_TOKEN }} - name: build Docker image & push to Docker Hub uses: docker/build-push-action@v2 with: push: true tags: | derhuerst/db-rest:5 derhuerst/db-rest:latest # this is for the public-transport/infrastructure cluster - name: log in to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: determine commit hash id: hash run: echo "::set-output name=hash::$(echo $GITHUB_SHA | head -c7)" - name: determine current date and time id: datetime run: echo "::set-output name=datetime::$(date -u +'%Y-%m-%dT%H.%M.%SZ')" - name: push Docker image to GitHub Registry uses: docker/build-push-action@v2 with: push: true tags: ghcr.io/${{github.repository}}:v5_${{steps.hash.outputs.hash}}_${{steps.datetime.outputs.datetime}}