ghcr镜像构建 #26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ghcr镜像构建 | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version number' | |
| required: true | |
| default: 'latest' | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Cache Docker layers | |
| uses: actions/cache@v3 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx- | |
| - name: Log in to GitHub Docker Registry | |
| uses: docker/login-action@v2 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Set version from input | |
| run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV | |
| - name: Convert repository name to lowercase | |
| run: | | |
| # 将 github.repository 整体转换为小写 | |
| REPO_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') | |
| echo "REPO_LOWER=$REPO_LOWER" >> $GITHUB_ENV | |
| - name: Build and push Docker image | |
| run: | | |
| cd ghproxy | |
| docker buildx build --push \ | |
| --platform linux/amd64,linux/arm64 \ | |
| --tag ghcr.io/${{ env.REPO_LOWER }}:${{ env.VERSION }} \ | |
| --tag ghcr.io/${{ env.REPO_LOWER }}:latest \ | |
| --build-arg VERSION=${{ env.VERSION }} \ | |
| -f Dockerfile . | |
| env: | |
| GHCR_PUBLIC: true # 将镜像设置为公开 |