name: Docker on: # schedule: # - cron: '0 10 1 * *' push: branches: [ master ] # Publish semver tags as releases. tags: [ '*.*.*' ] pull_request: branches: [ master ] env: # github.repository as / IMAGE_NAME: byjg/easy-haproxy jobs: Test: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout repository uses: actions/checkout@v2 - run: pip install -r requirements.txt - run: pytest -s tests/ -vv Build: runs-on: ubuntu-latest needs: Test permissions: contents: read packages: write steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Log into registry if: github.event_name != 'pull_request' || github.event.inputs.push == 'true' uses: docker/login-action@v1 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_REGISTRY_USER }} password: ${{ secrets.DOCKER_REGISTRY_TOKEN }} # Extract metadata (tags, labels) for Docker # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta uses: docker/metadata-action@v3 with: images: ${{ secrets.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action # - name: Build and push Docker image # uses: docker/build-push-action@v2 # with: # context: . # file: Dockerfile # platforms: linux/amd64,linux/arm64 # push: ${{ github.event_name != 'pull_request' || github.event.inputs.push == 'true' }} # tags: ${{ steps.meta.outputs.tags }} # labels: ${{ steps.meta.outputs.labels }} - name: Docker Hub Description if: github.event_name != 'pull_request' || github.event.inputs.push == 'true' run: | wget -q https://github.com/christian-korneck/docker-pushrm/releases/download/v1.8.0/docker-pushrm_linux_amd64 -O $HOME/.docker/cli-plugins/docker-pushrm chmod +x $HOME/.docker/cli-plugins/docker-pushrm docker pushrm ${{ env.IMAGE_NAME }} Documentation: runs-on: 'ubuntu-latest' needs: Build if: github.ref == 'refs/heads/master' env: DOC_GITHUB_TOKEN: '${{ secrets.DOC_TOKEN }}' steps: - uses: actions/checkout@v2 - run: curl https://opensource.byjg.com/add-doc.sh | bash /dev/stdin devops docker-easy-haproxy