formatが間違ってたので直してあげたよ! #18334
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: deploy-hato-bot | |
| on: | |
| release: | |
| types: | |
| - published | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - closed | |
| branches: | |
| - develop | |
| - master | |
| push: | |
| branches: | |
| - master | |
| - develop | |
| permissions: {} | |
| jobs: | |
| update-uv-version: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| persist-credentials: false | |
| - name: Get uv version | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| run: bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/update_uv_version/get_uv_version.sh" | |
| env: | |
| HEAD_REF: ${{github.head_ref || github.event.release.tag_name}} | |
| - uses: dev-hato/actions-diff-pr-management@9de3de40217217a73ac95f3751d7bfe1c9f23ead # v2.2.3 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| branch-name-prefix: fix-uv-version | |
| pr-title-prefix: uvのバージョンを直してあげたよ! | |
| deploy_docker_image: | |
| runs-on: ubuntu-latest | |
| env: | |
| DOCKER_BUILDKIT: 1 | |
| COMPOSE_DOCKER_CLI_BUILD: 1 | |
| REPOSITORY: ${{github.repository}} | |
| permissions: | |
| contents: read | |
| packages: write | |
| if: github.event_name == 'release' || (github.event_name == 'pull_request' && github.event.action != 'closed' && github.repository == github.event.pull_request.head.repo.full_name) | |
| needs: update-uv-version | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Set .env | |
| run: cp .env.example .env | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 | |
| - run: echo "TAG_NAME=${HEAD_REF//\//-}" >> "$GITHUB_ENV" | |
| env: | |
| HEAD_REF: ${{github.head_ref}} | |
| if: ${{ github.event_name == 'pull_request' }} | |
| - run: echo 'TAG_NAME=${{ github.event.release.tag_name }}' >> "$GITHUB_ENV" | |
| if: ${{ github.event_name == 'release' }} | |
| - name: Build and push (build) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: build.docker-compose.yml | |
| source: . | |
| - name: Build and push (main) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: docker-compose.yml | |
| source: . | |
| - name: Build and push (dev) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: docker-compose.yml,dev.base.docker-compose.yml | |
| source: . | |
| - run: echo 'TAG_NAME=latest' >> "$GITHUB_ENV" | |
| if: ${{ github.event_name == 'release' }} | |
| - name: Build and push (build) (latest) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| if: ${{ github.event_name == 'release' }} | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: build.docker-compose.yml | |
| source: . | |
| - name: Build and push (main) (latest) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| if: ${{ github.event_name == 'release' }} | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: docker-compose.yml | |
| source: . | |
| - name: Build and push (dev) (latest) | |
| uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 | |
| if: ${{ github.event_name == 'release' }} | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| with: | |
| push: true | |
| files: docker-compose.yml,dev.base.docker-compose.yml | |
| source: . | |
| - name: Start docker | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| run: docker compose up -d --wait | |
| # pyproject.toml をDockerイメージと同期させる | |
| update-version-pyproject: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| REPOSITORY: ${{github.repository}} | |
| needs: deploy_docker_image | |
| if: always() && (needs.deploy_docker_image.result == 'success' || (github.event_name == 'pull_request' && github.event.action == 'closed')) | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| persist-credentials: false | |
| - name: Get Python version | |
| id: get_python_version | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| run: bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/update_version_python_version/get_python_version.sh" | |
| env: | |
| HEAD_REF: ${{github.head_ref || github.event.release.tag_name}} | |
| - uses: dev-hato/actions-diff-pr-management@9de3de40217217a73ac95f3751d7bfe1c9f23ead # v2.2.3 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| branch-name-prefix: fix-version-pyproject | |
| pr-title-prefix: pyproject.tomlを直してあげたよ! | |
| pr-update-version: | |
| runs-on: ubuntu-latest | |
| needs: deploy_docker_image | |
| if: always() && (needs.deploy_docker_image.result == 'success' || (github.event_name == 'pull_request' && github.event.action == 'closed')) | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| persist-credentials: false | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| cache: npm | |
| node-version-file: package.json | |
| - name: Get npm version | |
| id: get_npm_version | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| run: bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/pr_update_version/get_npm_version.sh" | |
| env: | |
| HEAD_REF: ${{github.head_ref || github.event.release.tag_name}} | |
| - uses: dev-hato/actions-diff-pr-management@9de3de40217217a73ac95f3751d7bfe1c9f23ead # v2.2.3 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| branch-name-prefix: fix-version | |
| pr-title-prefix: nodeをアップデートしてあげたよ! | |
| # package.jsonに差分があれば、package.jsonからpackage-lock.jsonを作り出す | |
| pr-check-npm: | |
| runs-on: ubuntu-latest | |
| needs: pr-update-version | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| # ここでsubmodule持ってくるとdetached headにcommitして死ぬ | |
| # submodule: 'recursive' | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| persist-credentials: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| cache: npm | |
| node-version-file: package.json | |
| - name: Install dependencies | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| run: bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/npm_install.sh" | |
| - uses: dev-hato/actions-diff-pr-management@9de3de40217217a73ac95f3751d7bfe1c9f23ead # v2.2.3 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| branch-name-prefix: npm | |
| pr-title-prefix: package.jsonやpackage-lock.jsonが更新されたので直してあげたよ! | |
| update-dockle: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| if: github.event_name != 'pull_request' || github.event.action != 'closed' | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| persist-credentials: false | |
| - uses: dev-hato/actions-update-dockle@61f45ed79dbb9ce2304c5c9a1d8caa06a1ae3275 # v0.0.128 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| dockle: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - update-dockle | |
| - deploy_docker_image | |
| env: | |
| DOCKER_CONTENT_TRUST: 1 | |
| REPOSITORY: ${{github.repository}} | |
| steps: | |
| - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 | |
| with: | |
| persist-credentials: false | |
| - run: bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/dockle/run_dockle.sh" | |
| env: | |
| HEAD_REF: ${{github.head_ref || github.event.release.tag_name}} | |
| deploy-complete: | |
| runs-on: ubuntu-latest | |
| if: always() | |
| needs: | |
| - update-version-pyproject | |
| - pr-check-npm | |
| - update-dockle | |
| - dockle | |
| steps: | |
| - if: needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-pyproject.result == 'success' && (github.event.action == 'closed' || (needs.pr-check-npm.result == 'success' && needs.dockle.result == 'success')))) | |
| run: exit 0 | |
| - if: ${{ !(needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-pyproject.result == 'success' && (github.event.action == 'closed' || (needs.pr-check-npm.result == 'success' && needs.dockle.result == 'success'))))) }} | |
| run: exit 1 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} | |
| cancel-in-progress: true |