name: Docker Build and Push on: push: branches: - main tags: - v* jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Use Node.js 16.x uses: actions/setup-node@v2 with: node-version: 16.x - name: Install dependencies run: npm ci - name: Test build run: npm run test build-and-push: runs-on: ubuntu-latest needs: test steps: - name: Checkout code uses: actions/checkout@v3 - name: Write .env to build env: DOTENV: '${{ secrets.DOTENV }}' run: echo "$DOTENV" >> ./client/.env - name: Build & push client image uses: mr-smithers-excellent/docker-build-push@v6 with: image: c4thebomb/know-it-all-client registry: docker.io addLatest: true multiPlatform: true platform: linux/amd64,linux/arm64/v8 directory: ./client dockerfile: ./client/Dockerfile username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build & push server image uses: mr-smithers-excellent/docker-build-push@v6 with: image: c4thebomb/know-it-all-server registry: docker.io addLatest: true multiPlatform: true platform: linux/amd64,linux/arm64/v8 directory: ./server dockerfile: ./server/Dockerfile username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} draft: runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v3 - name: Draft release uses: release-drafter/release-drafter@v5 id: release-draft env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}