スポンサーリンク

GitHub Actionsでワークフローを自動化する

ウェブサーバーへFTPでアップロードする

事前に接続情報をシークレット変数としてGithubに登録しておきます。

name: Staging Deploy

on:
  push: 
    branches:
      - main

jobs:
  FTP-Deploy-Action:
    name: FTP-Deploy-Action
    runs-on: ubuntu-latest
    steps:
        - name: Checkout
          uses: actions/checkout@v3
        - name: Sync-files
          uses: SamKirkland/FTP-Deploy-Action@v4.3.4
          with:
            server: ${{ secrets.SERVER_HOST }}
            username: ${{ secrets.SERVER_USERNAME }}
            password: ${{ secrets.SERVER_PASSWORD }}
            dry-run: true
            protocol: ftps
            local-dir: ./dist/
            server-dir: /html/git_action_test/
            exclude: |
              **/.git*
              **/.git*/**
              **/node_modules/**

プルリク時に対象ファイルがコミットに含まれているかチェックする

特定のファイルを修正したら、別の特定のファイルも一緒に修正しなければならない…といった場合があり、その作業忘れを防ぐために作ったものです。

name: Check Committed Files

on:
  pull_request:

jobs:
  changed_files:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v40
      - name: File existence check
        if: |
          (contains(steps.changed-files.outputs.all_changed_files, '.css') == true ||
          contains(steps.changed-files.outputs.all_changed_files, '.js') == true) &&
          contains(steps.changed-files.outputs.all_changed_files, 'functions.php') == false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          URL: ${{ github.event.pull_request.html_url }}
        run: |
          cat << EOF > comments
          CSSまたはJSが変更されていますが、functions.phpの変更が含まれてないようです。
          EOF

          gh pr comment -F ./comments "${URL}"
タイトルとURLをコピーしました