diff --git a/.github/workflows/docker-build-tag-push.yml b/.github/workflows/docker-build-tag-push.yml index fea5038..1961b66 100644 --- a/.github/workflows/docker-build-tag-push.yml +++ b/.github/workflows/docker-build-tag-push.yml @@ -1,75 +1,61 @@ -name: Docker Build, Test and Push +name: Docker Build and Push on: - pull_request: - branches: [ main, master ] push: - branches: [ main, master ] + branches: [ "master" ] + pull_request: + branches: [ "master" ] env: REGISTRY: docker.io - REPO_NAME: ${{ github.event.repository.name }} + IMAGE_NAME: demo + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} jobs: - test: - if: github.event_name == 'pull_request' - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build Docker image for testing - run: | - docker build -t $REPO_NAME:test . - - - name: Run tests on the image - run: | - echo "Running tests on the built image..." - # Replace with your actual test commands - docker run --rm $REPO_NAME:test echo "Test completed successfully" - build-and-push: - if: github.event_name == 'push' runs-on: ubuntu-latest - needs: test steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v2 - - name: Log in to Docker Hub - uses: docker/login-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Get safe version number - id: version - run: | - # Use GitHub run number for reliable versioning - VERSION="1.0.${{ github.run_number }}" - echo "version=$VERSION" >> $GITHUB_OUTPUT - echo "VERSION=$VERSION" >> $GITHUB_ENV - echo "Using version: $VERSION" + - name: Generate timestamp tag + id: timestamp + run: echo "TIMESTAMP_TAG=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_OUTPUT - - name: Build and push Docker image - uses: docker/build-push-action@v5 + - name: Build and push + uses: docker/build-push-action@v4 with: context: . push: true tags: | - ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.REPO_NAME }}:${{ env.VERSION }} - ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.REPO_NAME }}:latest - cache-from: type=gha - cache-to: type=gha,mode=max + ${{ env.REGISTRY }}/${{ env.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + ${{ env.REGISTRY }}/${{ env.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ steps.timestamp.outputs.TIMESTAMP_TAG }} + + deploy: + needs: build-and-push + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Display pushed tags - run: | - echo "Successfully pushed the following tags to Docker Hub:" - echo "${{ secrets.DOCKERHUB_USERNAME }}/${{ env.REPO_NAME }}:${{ env.VERSION }}" - echo "${{ secrets.DOCKERHUB_USERNAME }}/${{ env.REPO_NAME }}:latest" \ No newline at end of file + # - name: Pull and run + # run: | + # docker stop demo || true + # docker rm demo || true + # docker pull ${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest + # docker run -d -p 8000:80 --name demo ${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest \ No newline at end of file