name: docker on: workflow_dispatch: push: pull_request: jobs: # Outputs from this job aren't really used, but it's here to verify that # the Dockerfile builds correctly on pull requests. build: runs-on: ubuntu-latest permissions: actions: write contents: read steps: - name: Checkout uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # 4.1.0 - name: Install Docker Buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # 3.0.0 - name: Build image run: > docker buildx build . --file DiscordChatExporter.Cli.dockerfile --platform linux/amd64,linux/arm64 --output type=tar,dest=DiscordChatExporter.Cli.Docker.tar - name: Upload artifacts uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # 3.1.3 with: name: DiscordChatExporter.Cli.Docker path: DiscordChatExporter.Cli.Docker.tar if-no-files-found: error deploy: # Deploy to DockerHub only on tag push or master branch push if: ${{ github.ref_type == 'tag' || github.ref_type == 'branch' && github.ref_name == 'master' }} runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # 4.1.0 - name: Install Docker Buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # 3.0.0 - name: Login to DockerHub run: > echo ${{ secrets.DOCKER_TOKEN }} | docker login --username tyrrrz --password-stdin - name: Build & push image run: > docker buildx build . --file DiscordChatExporter.Cli.dockerfile --platform linux/amd64,linux/arm64 --push --tag tyrrrz/discordchatexporter:latest ${{ github.ref_type == 'tag' && '--tag tyrrrz/discordchatexporter:$GITHUB_REF_NAME' || '' }} ${{ github.ref_type == 'tag' && '--tag tyrrrz/discordchatexporter:stable' || '' }}