name: stable-release on: workflow_dispatch: inputs: version: description: "版本号(如 v1.42.5)" required: true type: string permissions: contents: read packages: write jobs: make-stable: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to aliyun container Registry uses: docker/login-action@v3 with: registry: registry.cn-shenzhen.aliyuncs.com username: ${{ secrets.aliyun_cs_username }} password: ${{ secrets.aliyun_cs_password }} - name: Login to GitHub Packages uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.dockerhub_username }} password: ${{ secrets.dockerhub_password }} # stable 镜像:叠加 ENV 层 - name: Build and push stable images run: | echo "FROM greper/certd:${{ inputs.version }} ENV certd_release_mode=stable" > Dockerfile.stable docker buildx build \ --platform linux/amd64,linux/arm64 \ --push \ -f Dockerfile.stable \ -t registry.cn-shenzhen.aliyuncs.com/handsfree/certd:stable \ -t registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{ inputs.version }}-stable \ -t greper/certd:stable \ -t greper/certd:${{ inputs.version }}-stable \ -t ghcr.io/${{ github.repository }}:stable \ -t ghcr.io/${{ github.repository }}:${{ inputs.version }}-stable \ . # slim-stable 镜像 - name: Build and push slim-stable images run: | echo "FROM greper/certd:${{ inputs.version }}-slim ENV certd_release_mode=stable" > Dockerfile.slim-stable docker buildx build \ --platform linux/amd64,linux/arm64 \ --push \ -f Dockerfile.slim-stable \ -t registry.cn-shenzhen.aliyuncs.com/handsfree/certd:slim-stable \ -t registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{ inputs.version }}-slim-stable \ -t greper/certd:slim-stable \ -t greper/certd:${{ inputs.version }}-slim-stable \ -t ghcr.io/${{ github.repository }}:slim-stable \ -t ghcr.io/${{ github.repository }}:${{ inputs.version }}-slim-stable \ . - name: Set AtomGit release as stable run: | export ATOMGIT_TOKEN=${{ secrets.ATOMGIT_TOKEN }} export VERSION=${{ inputs.version }} npm run set-release-stable