1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- name: Build Image and Publish to Dockerhub & GPR
- on:
- release:
- types: [ published ]
- workflow_dispatch:
- inputs:
- tag:
- description: 'Image tag'
- required: true
- default: 'test'
- permissions:
- contents: read
- jobs:
- image:
- name: Build Image from Dockerfile and binaries
- runs-on: ubuntu-latest
- steps:
- # environment
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: '0'
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
- # get image tag name
- - name: Get Image Tag Name
- run: |
- if [ x${{ github.event.inputs.tag }} == x"" ]; then
- echo "TAG_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- else
- echo "TAG_NAME=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
- fi
- - name: Login to DockerHub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_PASSWORD }}
- - name: Login to the GPR
- uses: docker/login-action@v3
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.GPR_TOKEN }}
- # prepare image tags
- - name: Prepare Image Tags
- run: |
- echo "DOCKERFILE_FRPC_PATH=dockerfiles/Dockerfile-for-frpc" >> $GITHUB_ENV
- echo "DOCKERFILE_FRPS_PATH=dockerfiles/Dockerfile-for-frps" >> $GITHUB_ENV
- echo "TAG_FRPC=fatedier/frpc:${{ env.TAG_NAME }}" >> $GITHUB_ENV
- echo "TAG_FRPS=fatedier/frps:${{ env.TAG_NAME }}" >> $GITHUB_ENV
- echo "TAG_FRPC_GPR=ghcr.io/fatedier/frpc:${{ env.TAG_NAME }}" >> $GITHUB_ENV
- echo "TAG_FRPS_GPR=ghcr.io/fatedier/frps:${{ env.TAG_NAME }}" >> $GITHUB_ENV
- - name: Build and push frpc
- uses: docker/build-push-action@v5
- with:
- context: .
- file: ./dockerfiles/Dockerfile-for-frpc
- platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
- push: true
- tags: |
- ${{ env.TAG_FRPC }}
- ${{ env.TAG_FRPC_GPR }}
- - name: Build and push frps
- uses: docker/build-push-action@v5
- with:
- context: .
- file: ./dockerfiles/Dockerfile-for-frps
- platforms: linux/amd64,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
- push: true
- tags: |
- ${{ env.TAG_FRPS }}
- ${{ env.TAG_FRPS_GPR }}
|