# This is a basic workflow to help you get started with Actions name: docker-pull # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: - master - release_* - github-action-test # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Extract branch name shell: bash run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" id: extract_branch - name: Get Docker tag from branch name id: extract_docker_tag shell: bash run: | if ${{ steps.extract_branch.outputs.branch }} -eq "master"; then echo "##[set-output name=tag;]$(echo 'latest')" elif [[${{ steps.extract_branch.outputs.branch }} = release_*]]; then echo "##[set-output name=tag;]$(echo ${{ steps.extract_branch.outputs.branch }} | cut -d '_' -f2-)" else echo "##[set-output name=tag;]$(echo 'ghtest')" fi - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: context: ./ file: ./Dockerfile push: true tags: ${{ secrets.DOCKER_HUB_USERNAME }}/qp_demo:${{ steps.extract_docker_tag.output.tag }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}