diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 44ccbd2..4ce6969 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,47 +1,51 @@ -# This is a basic workflow to help you get started with Actions - -name: built - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch +name: Publish Docker image on: + workflow_dispatch: + inputs: push: - + branches: + - master + paths: + - "**/*.go" + - "go.mod" + - "go.sum" + - ".github/workflows/*.yml" tags: - 'v*' - - - #branches: [ master ] - #pull_request: - #branches: [ master ] - + pull_request: + branches: + - 'main' jobs: - buildx: + push_to_registry: + name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - - name: Set env - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - - - name: Checkout - uses: actions/checkout@v1 - - name: Dockerhub login - env: - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - run: | - echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin - - name: Set up Docker Buildx - id: buildx - uses: crazy-max/ghaction-docker-buildx@v1 + - name: Check out the repo + uses: actions/checkout@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Docker meta + id: docker_meta + uses: docker/metadata-action@v4 with: - buildx-version: latest - - name: Build dockerfile (with push) - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - run: | - docker buildx build \ - --platform=linux/amd64,linux/arm/v7,linux/arm64 \ - --output "type=image,push=true" \ - --file ./Dockerfile . \ - --tag aiastia/arpt:${{ env.RELEASE_VERSION }} + images: aiastia/arp + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - + name: Build and push + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/arm/v7,linux/arm64,linux/amd64 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }}