name: Build and Push Docker Image on: push: branches: - dev jobs: build: name: Build and Push Docker Image runs-on: ubuntu-latest steps: # Checkout the code from the repository - name: Checkout repository uses: actions/checkout@v3 # Download the latest release binary from GitHub releases - name: Download latest release binary run: | latest_release=$(curl --silent "https://api.github.com/repos/donetick/donetick/releases/latest" | jq -r '.tag_name') curl -L "https://github.com/donetick/donetick/releases/download/${latest_release}/donetick_Linux_x86_64.tar.gz" -o donetick_Linux_x86_64.tar.gz tar -xzf donetick_Linux_x86_64.tar.gz mv donetick_Linux_x86_64/* . chmod +x ./donetick # Log in to Docker Hub - name: Log in to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} # Log in to GitHub Container Registry - name: Login to GitHub Container Registry uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} # Build and tag Docker image - name: Build Docker image run: | docker build -t ${{ secrets.DOCKER_USERNAME }}/my-go-app:${{ github.sha }} . # Push Docker image - name: Push Docker image run: | docker push ${{ secrets.DOCKER_USERNAME }}/my-go-app:${{ github.sha }}