Spaces:
Sleeping
Sleeping
| name: Docker | |
| on: [push] | |
| jobs: | |
| # Push image to GitHub Packages and docker hub. | |
| # See also https://docs.docker.com/docker-hub/builds/ | |
| push: | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Prepare | |
| id: prep | |
| run: | | |
| DOCKER_IMAGE="websyncplay/websyncplay" | |
| VERSION=edge | |
| if [[ $GITHUB_REF == refs/tags/* ]]; then | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| elif [[ $GITHUB_REF == refs/heads/* ]]; then | |
| VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') | |
| elif [[ $GITHUB_REF == refs/pull/* ]]; then | |
| VERSION=pr-${{ github.event.number }} | |
| fi | |
| # Use Docker `latest` tag convention | |
| [ "$VERSION" == "main" ] && VERSION=latest | |
| TAG="${DOCKER_IMAGE}:${VERSION}" | |
| echo ::set-output name=version::${VERSION} | |
| echo ::set-output name=tag::${TAG} | |
| echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ') | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v1 | |
| - name: Login to DockerHub | |
| if: github.event_name != 'pull_request' | |
| uses: docker/login-action@v1 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_TOKEN }} | |
| - name: Build and push to docker hub | |
| uses: docker/build-push-action@v2 | |
| with: | |
| context: . | |
| file: ./Dockerfile | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.prep.outputs.tag }} | |
| labels: | | |
| org.opencontainers.image.source=${{ github.event.repository.html_url }} | |
| org.opencontainers.image.created=${{ steps.prep.outputs.created }} | |
| org.opencontainers.image.revision=${{ github.sha }} | |