# This is a basic workflow to help you get started with Actions name: Deploy # 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_* # 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" Deploy: # 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: 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 }}" == "master" ]; then echo "##[set-output name=tag;]$(echo 'latest')" elif [[ "${{ steps.extract_branch.outputs.branch }}" == release_* ]]; then echo "##[set-output name=tag;]$(echo '${GITHUB_REF#refs/heads/}' | cut -d '_' -f2-)" else echo "##[set-output name=tag;]$(echo 'ghtest')" fi - 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: 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.outputs.tag }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}