กําหนดค่าเวิร์กโฟลว์ของคุณด้วยตัวแปรสภาพแวดล้อม

เสร็จสมบูรณ์เมื่อ

ในหน่วยนี้ คุณจะได้เรียนรู้วิธีการกําหนดค่าและจัดการลักษณะการทํางานเฉพาะของสภาพแวดล้อมโดยใช้ตัวแปร บริบท และสคริปต์แบบกําหนดเองในเวิร์กโฟลว์การดําเนินการ GitHub

หากต้องการใช้กระบวนการนี้ คุณจะได้เรียนรู้วิธีการ:

  • ใช้ตัวแปรสภาพแวดล้อมเริ่มต้นและแบบกําหนดเอง
  • เข้าถึงข้อมูลตามบริบทในเวิร์กโฟลว์
  • ตั้งค่าตัวแปรสภาพแวดล้อมในขอบเขตเวิร์กโฟลว์ที่แตกต่างกัน
  • ใช้สคริปต์แบบกําหนดเองกับคําสําคัญการเรียกใช้
  • ใช้การปกป้องสภาพแวดล้อมสําหรับการปรับใช้

ตัวแปรและบริบทของสภาพแวดล้อมเริ่มต้น

ภายในเวิร์กโฟลว์การดําเนินการ GitHub ตัวแปรสภาพแวดล้อมเริ่มต้นหลายตัวจะพร้อมใช้งานสําหรับคุณ แต่เฉพาะภายในตัวเรียกใช้ที่กําลังดําเนินการงานเท่านั้น ตัวแปรเริ่มต้นเหล่านี้จะตรงตามตัวพิมพ์ใหญ่-เล็ก และอ้างอิงถึงค่าการกําหนดค่าสําหรับระบบและสําหรับผู้ใช้ปัจจุบัน เราขอแนะนําให้คุณใช้ตัวแปรสภาพแวดล้อมเริ่มต้นเหล่านี้เพื่ออ้างอิงระบบไฟล์แทนที่จะใช้เส้นทางไฟล์ที่ตายตัว เมื่อต้องการใช้ตัวแปรสภาพแวดล้อมเริ่มต้น ให้ระบุ $ ตามด้วยชื่อของตัวแปรสภาพแวดล้อม

jobs:
  prod-check:
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

นอกจากตัวแปรสภาพแวดล้อมเริ่มต้น คุณสามารถใช้ตัวแปรที่กําหนดไว้เป็นบริบทได้ บริบทและตัวแปรเริ่มต้นจะคล้ายกันในที่ซึ่งทั้งสองมีการเข้าถึงข้อมูลสภาพแวดล้อม แต่มีความแตกต่างที่สําคัญบางอย่าง แม้ว่าตัวแปรสภาพแวดล้อมเริ่มต้นจะสามารถใช้ได้ภายในตัวเรียกใช้เท่านั้น แต่คุณสามารถใช้ตัวแปรบริบทได้ทุกจุดในเวิร์กโฟลว์ ตัวอย่างเช่น ตัวแปรบริบทช่วยให้คุณสามารถเรียกใช้คําสั่ง if เพื่อประเมินนิพจน์ก่อนเรียกใช้งาน

name: CI
on: push
jobs:
  prod-check:
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

ตัวอย่างนี้ใช้บริบท github.ref เพื่อตรวจสอบสาขาที่ทริกเกอร์เวิร์กโฟลว์ หากสาขาเป็น mainระบบจะดําเนินการโปรแกรมรันและพิมพ์ "การปรับใช้กับเซิร์ฟเวอร์การผลิตบนสาขา$GITHUB_REF" ตัวแปร $GITHUB_REF สภาพแวดล้อมเริ่มต้นถูกใช้ในตัวเรียกใช้เพื่ออ้างอิงถึงสาขา โปรดสังเกตว่าตัวแปรสภาพแวดล้อมเริ่มต้นคือตัวพิมพ์ใหญ่ทั้งหมดที่ตัวแปรบริบทเป็นตัวพิมพ์เล็กทั้งหมด

ข้อมูลตามบริบทที่พร้อมใช้งานในเวิร์กโฟลว์

ใช้บริบทเพื่อเข้าถึงข้อมูลเกี่ยวกับการเรียกใช้เวิร์กโฟลว์ ตัวแปร สภาพแวดล้อมตัวเรียกใช้งาน และขั้นตอน แต่ละบริบทเป็นวัตถุที่ประกอบด้วยคุณสมบัติที่สามารถเป็นวัตถุหรือสตริงอื่น ๆ ได้ บริบทที่พร้อมใช้งานประกอบด้วย , , , , , , github, envและ varsjobjobsstepsrunnersecretsstrategymatrixneedsinputs

ตารางต่อไปนี้แสดงรายการบริบทเวิร์กโฟลว์และคําอธิบาย:

บริบท คำอธิบาย
github ข้อมูลเกี่ยวกับการเรียกใช้เวิร์กโฟลว์ สําหรับข้อมูลเพิ่มเติม ดูgithubบริบท
env ประกอบด้วยตัวแปรที่คุณตั้งค่าในเวิร์กโฟลว์ งาน หรือขั้นตอน สําหรับข้อมูลเพิ่มเติม ดูenvบริบท
vars ประกอบด้วยตัวแปรที่คุณตั้งค่าที่ที่เก็บ องค์กร หรือระดับสภาพแวดล้อม สําหรับข้อมูลเพิ่มเติม ดูvarsบริบท
job ข้อมูลเกี่ยวกับงานที่กําลังทํางานอยู่ในปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูjobบริบท
jobs สําหรับเวิร์กโฟลว์ที่นํากลับมาใช้ใหม่ได้เท่านั้น มีผลลัพธ์ของงานจากเวิร์กโฟลว์ที่นํากลับมาใช้ใหม่ได้ สําหรับข้อมูลเพิ่มเติม ดูjobsบริบท
steps ข้อมูลเกี่ยวกับขั้นตอนที่เรียกใช้ในงานปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูstepsบริบท
runner ข้อมูลเกี่ยวกับตัวรันที่กําลังรันงานปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูrunnerบริบท
secrets ประกอบด้วยชื่อและค่าของข้อมูลลับที่พร้อมใช้งานสําหรับการเรียกใช้เวิร์กโฟลว์ สําหรับข้อมูลเพิ่มเติม ดูsecretsบริบท
strategy ข้อมูลเกี่ยวกับกลยุทธ์การดําเนินการเมทริกซ์สําหรับงานปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูstrategyบริบท
matrix ประกอบด้วยคุณสมบัติเมทริกซ์ที่กําหนดในเวิร์กโฟลว์ที่นําไปใช้กับงานปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูmatrixบริบท
needs แสดงเอาพุตของงานทั้งหมดที่กําหนดเป็นการขึ้นต่อกันของงานปัจจุบัน สําหรับข้อมูลเพิ่มเติม ดูneedsบริบท
inputs ประกอบด้วยข้อมูลป้อนเข้าของเวิร์กโฟลว์ที่นํากลับมาใช้ใหม่ได้หรือทริกเกอร์ด้วยตนเอง สําหรับข้อมูลเพิ่มเติม ดูinputsบริบท

บริบทที่แตกต่างกันจะพร้อมใช้งานในเวลาที่ต่างกันในการเรียกใช้เวิร์กโฟลว์ ตัวอย่างเช่น คุณสามารถใช้ secrets บริบทในสถานที่เฉพาะในงานเท่านั้น นอกจากนี้ คุณยังสามารถใช้ฟังก์ชันบางอย่าง เช่น hashFiles ฟังก์ชัน ในตําแหน่งที่เฉพาะเจาะจงเท่านั้น

ตารางต่อไปนี้แสดงรายการข้อจํากัดสําหรับแต่ละบริบทและฟังก์ชันพิเศษในเวิร์กโฟลว์ บริบทที่แสดงในรายการจะพร้อมใช้งานสําหรับคีย์เวิร์กโฟลว์ที่ระบุเท่านั้น คุณไม่สามารถใช้แอปเหล่านี้ได้ทุกที่ คุณสามารถใช้ฟังก์ชันได้ทุกที่ เว้นแต่ว่าจะแสดงอยู่ในตารางต่อไปนี้

คีย์ลําดับงาน บริบท ฟังก์ชันพิเศษ
run-name github, , inputsvars ไม่มีใคร
concurrency github, , inputsvars ไม่มีใคร
env github, , secrets, inputsvars ไม่มีใคร
jobs.<job_id>.concurrency github, needs, strategy, matrix, inputsvars ไม่มีใคร
jobs.<job_id>.container github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.container.credentials github, needs, , strategymatrixenv, , vars, , secrets,inputs ไม่มีใคร
jobs.<job_id>.container.env.<env_id> github, needs, strategy, matrix, job, , runner, env, vars, secretsinputs ไม่มีใคร
jobs.<job_id>.container.image github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.continue-on-error github, needs, strategy, vars, matrixinputs ไม่มีใคร
jobs.<job_id>.defaults.run github, needs, strategy, matrix, env, , varsinputs ไม่มีใคร
jobs.<job_id>.env github, needs, strategy, matrix, vars, , secretsinputs ไม่มีใคร
jobs.<job_id>.environment github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.environment.url github, needs, strategy, matrix, job, , runner, env, vars, stepsinputs ไม่มีใคร
jobs.<job_id>.if github, , needs, varsinputs always, , canceled, successfailure
jobs.<job_id>.name github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.outputs.<output_id> github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs ไม่มีใคร
jobs.<job_id>.runs-on github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.secrets.<secrets_id> github, needs, strategy, matrix, secrets, , inputsvars ไม่มีใคร
jobs.<job_id>.services github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.services.<service_id>.credentials github, needs, , strategymatrixenv, , vars, , secrets,inputs ไม่มีใคร
jobs.<job_id>.services.<service_id>.env.<env_id> github, needs, strategy, matrix, job, , runner, env, vars, secretsinputs ไม่มีใคร
jobs.<job_id>.steps.continue-on-error github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs hashFiles
jobs.<job_id>.steps.env github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs hashFiles
jobs.<job_id>.steps.if github, needs, strategy, matrix, job, , runner, env, vars, stepsinputs always, canceled, success, failurehashFiles
jobs.<job_id>.steps.name github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs hashFiles
jobs.<job_id>.steps.run github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs hashFiles
jobs.<job_id>.steps.timeout-minutes github, needs, strategy, matrix, job, runner, , env, vars, secretsstepsinputs hashFiles
jobs.<job_id>.steps.with github, needs, strategy, matrix, , job, runner, , env, vars, , secretsstepsinputs hashFiles
jobs.<job_id>.steps.working-directory github, needs, strategy, matrix, , job, runner, , env, vars, , secretsstepsinputs hashFiles
jobs.<job_id>.strategy github, ความต้องการ, vars, inputs ไม่มีใคร
jobs.<job_id>.timeout-minutes github, needs, strategy, matrix, varsinputs ไม่มีใคร
jobs.<job_id>.with.<with_id> github, needs, strategy, matrix, inputsvars ไม่มีใคร
on.workflow_call.inputs.<inputs_id>.default github, , inputsvars ไม่มีใคร
on.workflow_call.outputs.<output_id>.value github, งาน, varsinputs ไม่มีใคร

ตัวแปรสภาพแวดล้อมแบบกําหนดเอง

คล้ายกับการใช้ตัวแปรสภาพแวดล้อมเริ่มต้น คุณสามารถใช้ตัวแปรสภาพแวดล้อมแบบกําหนดเองในไฟล์เวิร์กโฟลว์ของคุณได้ เมื่อต้องสร้างตัวแปรแบบกําหนดเอง คุณจําเป็นต้องกําหนดตัวแปรดังกล่าวในไฟล์เวิร์กโฟลว์ของคุณโดยใช้บริบท env ถ้าคุณต้องการใช้ค่าของตัวแปรสภาพแวดล้อมภายในตัวเรียกใช้ คุณสามารถใช้วิธีการปกติของระบบปฏิบัติการแบบเรียกใช้งานสําหรับการอ่านตัวแปรสภาพแวดล้อมได้

name: CI
on: push
jobs:
  prod-check:
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - run: echo "Nice work, $First_Name. Deploying to production server on branch $GITHUB_REF"
        env:
          First_Name: Mona

ตั้งค่าตัวแปรสภาพแวดล้อมแบบกําหนดเองในเวิร์กโฟลว์

คุณสามารถกําหนดตัวแปรสภาพแวดล้อมที่มีขอบเขตเวิร์กโฟลว์ทั้งหมดได้โดยใช้ env ที่ระดับบนสุดของไฟล์เวิร์กโฟลว์ กําหนดขอบเขตเนื้อหาของงานภายในเวิร์กโฟลว์โดยใช้jobs.<job_id>.env คุณสามารถกําหนดขอบเขตตัวแปรสภาพแวดล้อมในขั้นตอนเฉพาะภายในงานโดยใช้jobs.<job_id>.steps[*].env

นี่คือตัวอย่างที่แสดงทั้งสามสถานการณ์ในไฟล์เวิร์กโฟลว์:

name: Greeting on variable day

on:
  workflow_dispatch

env:
  DAY_OF_WEEK: Monday

jobs:
  greeting_job:
    runs-on: ubuntu-latest
    env:
      Greeting: Hello
    steps:
      - name: "Say Hello Mona it's Monday"
        run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!"
        env:
          First_Name: Mona

ใช้บริบทค่าเริ่มต้นในเวิร์กโฟลว์

แพลตฟอร์ม GitHub ตั้งค่าตัวแปรสภาพแวดล้อมเริ่มต้น ซึ่งไม่ได้กําหนดไว้ในเวิร์กโฟลว์ แต่คุณสามารถใช้ตัวแปรสภาพแวดล้อมเริ่มต้นในเวิร์กโฟลว์ในบริบทที่เหมาะสมได้ ตัวแปรเหล่านี้ส่วนใหญ่ นอกเหนือจาก CIเริ่มต้นด้วย GITHUB_* หรือRUNNER_* สองชนิดหลังไม่สามารถเขียนทับได้ นอกจากนี้ ตัวแปรเริ่มต้นเหล่านี้มีคุณสมบัติบริบทที่สอดคล้องกันและมีชื่อคล้ายกัน ตัวอย่างเช่น RUNNER_* ชุดของตัวแปรเริ่มต้นมีคุณสมบัติบริบทที่ตรงกันของrunner.*

นี่คือตัวอย่างของวิธีการเข้าถึงตัวแปรเริ่มต้นในเวิร์กโฟลว์โดยใช้วิธีการเหล่านี้:

on: workflow_dispatch

jobs:
  if-Windows-else:
    runs-on: macos-latest
    steps:
      - name: condition 1
        if: runner.os == 'Windows'
        run: echo "The operating system on the runner is $env:RUNNER_OS."
      - name: condition 2
        if: runner.os != 'Windows'
        run: echo "The operating system on the runner is not Windows, it's $RUNNER_OS."

สําหรับข้อมูลเพิ่มเติม ให้ดู ตัวแปรสภาพแวดล้อมเริ่มต้น

ส่งผ่านตัวแปรสภาพแวดล้อมแบบกําหนดเองไปยังเวิร์กโฟลว์

คุณสามารถส่งผ่านตัวแปรสภาพแวดล้อมแบบกําหนดเองจากขั้นตอนหนึ่งของงานเวิร์กโฟลว์ไปยังขั้นตอนต่อไปภายในงาน สร้างค่าในขั้นตอนหนึ่งของงาน และกําหนดค่าให้กับตัวแปรสภาพแวดล้อมใหม่หรือที่มีอยู่ ถัดไป คุณเขียนคู่ตัวแปร/ค่าไปยังไฟล์สภาพแวดล้อม GITHUB_ENV คุณสามารถใช้ไฟล์สภาพแวดล้อมในการดําเนินการ หรือจากคําสั่ง shell ในงานเวิร์กโฟลว์โดยใช้ run คําสําคัญ

ขั้นตอนที่สร้างหรืออัปเดตตัวแปรสภาพแวดล้อมไม่สามารถเข้าถึงค่าใหม่ได้ แต่ขั้นตอนต่อไปทั้งหมดในงานจะสามารถเข้าถึงได้

ตัวอย่างมีดังนี้:

steps:
  - name: Set the value
    id: step_one
    run: |
      echo "action_state=yellow" >> "$GITHUB_ENV"
  - name: Use the value
    id: step_two
    run: |
      printf '%s\n' "$action_state" # This will output 'yellow'

เพิ่มการปกป้องสภาพแวดล้อม

คุณสามารถเพิ่มกฎการป้องกันสําหรับสภาพแวดล้อมที่กําหนดไว้สําหรับที่เก็บ GitHub ของคุณได้

เมื่อต้องเพิ่มสภาพแวดล้อม ในที่เก็บของคุณ:

  1. เลือก การตั้งค่า

    แถบเมนูของอินเทอร์เฟซเว็บที่มีแท็บ เช่น รหัส ปัญหา และ Wiki การตั้งค่าจะถูกเน้น

  2. ในบานหน้าต่างด้านซ้าย เลือกสภาพแวดล้อม

    สกรีนช็อตของเมนูการตั้งค่าภายใต้ทั่วไปกับส่วนสําหรับการเข้าถึงรหัสและระบบอัตโนมัติความปลอดภัยและการรวม ตัวเลือกสภาพแวดล้อมจะถูกเน้นไว้

  3. เลือกปุ่ม สภาพแวดล้อมใหม่ เพื่อเพิ่มและกําหนดค่าสภาพแวดล้อม และเพิ่มการป้องกัน

    ภาพหน้าจอของหน้าการตั้งค่าที่เก็บ GitHub ที่แสดงส่วนสภาพแวดล้อมที่มีข้อความระบุว่าไม่มีสภาพแวดล้อมและปุ่มสภาพแวดล้อมใหม่ที่ถูกเน้น

เกี่ยวกับสภาพแวดล้อม

ใช้สภาพแวดล้อมเพื่ออธิบายเป้าหมายการปรับใช้ทั่วไป เช่น การผลิต การจัดเตรียม หรือการพัฒนา เมื่อเวิร์กโฟลว์การดําเนินการ GitHub ปรับใช้กับสภาพแวดล้อม สภาพแวดล้อมจะปรากฏบนหน้าหลักของที่เก็บ คุณสามารถใช้สภาพแวดล้อมเพื่อกําหนดให้มีการอนุมัติงานเพื่อดําเนินการต่อ จํากัดสาขาที่สามารถทริกเกอร์เวิร์กโฟลว์ ประตูการปรับใช้โดยใช้กฎการป้องกันการปรับใช้แบบกําหนดเอง หรือจํากัดการเข้าถึงข้อมูลลับ

แต่ละงานในเวิร์กโฟลว์สามารถอ้างอิงสภาพแวดล้อมหนึ่งรายการได้ กฎการป้องกันใด ๆ ที่คุณตั้งค่าสําหรับสภาพแวดล้อมจะต้องส่งผ่านก่อนที่จะมีการส่งงานที่อ้างอิงถึงสภาพแวดล้อมไปยังผู้เรียกใช้ งานสามารถเข้าถึงข้อมูลลับของสภาพแวดล้อมหลังจากที่งานถูกส่งไปยังรันเนอร์เท่านั้น

เมื่อเวิร์กโฟลว์อ้างอิงถึงสภาพแวดล้อม สภาพแวดล้อมจะปรากฏในการปรับใช้ของที่เก็บ

กฎการป้องกันสภาพแวดล้อม

กฎการป้องกันการปรับใช้สภาพแวดล้อมจําเป็นต้องมีเงื่อนไขเฉพาะที่จะส่งผ่านก่อนงานที่อ้างอิงการดําเนินการของสภาพแวดล้อม คุณสามารถใช้กฎการป้องกันการปรับใช้เพื่อกําหนดให้มีการอนุมัติด้วยตนเอง หน่วงเวลางาน หรือจํากัดสภาพแวดล้อมให้กับสาขาเฉพาะ คุณยังสามารถสร้างและใช้กฎการป้องกันแบบกําหนดเองที่ขับเคลื่อนโดย GitHub Apps เพื่อใช้ระบบคู่ค้าเพื่อควบคุมการปรับใช้ที่อ้างอิงสภาพแวดล้อมที่ได้รับการกําหนดค่าบน GitHub

ต่อไปนี้คือคําอธิบายของกฎการป้องกันเหล่านี้:

  • กฎการป้องกันผู้ตรวจสอบที่จําเป็น ใช้กฎนี้เพื่อกําหนดบุคคลหรือทีมที่ระบุเพื่ออนุมัติงานเวิร์กโฟลว์ที่อ้างอิงสภาพแวดล้อม คุณสามารถแสดงผู้ใช้หรือทีมได้สูงสุดหกคนในฐานะผู้ตรวจสอบ ผู้ตรวจสอบต้องมีอย่างน้อยหนึ่งสิทธิ์ในการอ่านในที่เก็บ ผู้ตรวจสอบที่จําเป็นเพียงคนเดียวต้องอนุมัติงานเพื่อดําเนินการต่อ

    นอกจากนี้ คุณยังสามารถป้องกันการตรวจสอบด้วยตนเองสําหรับการปรับใช้กับสภาพแวดล้อมที่ได้รับการป้องกันได้ หากคุณเปิดใช้งานการตั้งค่านี้ ผู้ใช้ที่เริ่มต้นการปรับใช้จะไม่สามารถอนุมัติงานการปรับใช้ได้แม้ว่าพวกเขาจะเป็นผู้ตรวจสอบที่จําเป็นก็ตาม การเปิดใช้งานการตรวจสอบด้วยตนเองจะทําให้มั่นใจได้ว่ามีผู้ตรวจสอบการปรับใช้มากกว่าหนึ่งคนไปยังสภาพแวดล้อมที่ได้รับการปกป้อง

    สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบงานที่อ้างอิงสภาพแวดล้อมกับผู้ตรวจสอบที่จําเป็น ให้ดู ตรวจสอบการปรับใช้

  • กฎการคาดการณ์ของตัวจับเวลารอ คุณสามารถใช้กฎการป้องกันตัวจับเวลารอเพื่อหน่วงเวลางานสําหรับระยะเวลาที่กําหนดหลังจากที่งานถูกทริกเกอร์ในตอนแรกก่อนการดําเนินการปรับใช้สภาพแวดล้อม เวลา (ในหน่วยเป็นนาที) ต้องเป็นจํานวนเต็มระหว่าง 1 ถึง 43,200 (30 วัน) เวลารอจะไม่นับรวมในเวลาที่เรียกเก็บเงินได้

  • กฎการป้องกันสาขาและแท็ก คุณสามารถใช้สาขาการปรับใช้และกฎการป้องกันแท็กเพื่อจํากัดสาขาและแท็กที่ใช้เพื่อปรับใช้กับสภาพแวดล้อมได้ คุณมีหลายตัวเลือกสําหรับการปรับใช้สาขาและกฎการป้องกันแท็กสําหรับสภาพแวดล้อม

    • ไม่มีข้อจํากัด ในสาขาหรือแท็กที่สามารถปรับใช้กับสภาพแวดล้อมได้
    • สาขาที่ได้รับการป้องกัน จะอนุญาตให้เฉพาะสาขาที่มีกฎการป้องกันสาขาเท่านั้นที่เปิดใช้งานเพื่อปรับใช้กับสภาพแวดล้อม หากไม่ได้กําหนดกฎการป้องกันสาขาสําหรับสาขาใด ๆ ในที่เก็บ ทุกสาขาจะสามารถปรับใช้ได้ การตั้งค่า สาขาและแท็กที่เลือก ช่วยให้แน่ใจว่า เฉพาะสาขาและแท็กที่ตรงกับรูปแบบชื่อที่ระบุของคุณสามารถปรับใช้กับสภาพแวดล้อมได้
    • ถ้าคุณระบุ releases/* เป็นกฎสาขาหรือแท็กการปรับใช้ เฉพาะสาขาหรือแท็กที่มีชื่อที่เริ่มต้นด้วย releases/ เท่านั้นที่สามารถปรับใช้กับสภาพแวดล้อมได้ (อักขระตัวแทนไม่ตรงกัน / เมื่อต้องการจับคู่สาขาหรือแท็กที่ขึ้นต้นด้วย release/ และ ประกอบด้วยเครื่องหมายทับเดี่ยวอื่น ให้ใช้ release/*/*) ถ้าคุณเพิ่ม main เป็นกฎสาขา สาขาที่ชื่อว่า main ยังสามารถปรับใช้กับสภาพแวดล้อมได้
  • กฎการป้องกันการปรับใช้แบบกําหนดเอง คุณสามารถสร้างกฎการป้องกันแบบกําหนดเองเพื่อปรับใช้ประตูเพื่อใช้บริการพันธมิตร ตัวอย่างเช่น คุณสามารถใช้ระบบความสามารถในการสังเกตการณ์ ระบบการจัดการการเปลี่ยนแปลง ระบบคุณภาพโค้ด หรือการกําหนดค่าด้วยตนเองอื่นๆ ที่คุณใช้ในการประเมินความพร้อมและให้การอนุมัติอัตโนมัติสําหรับการปรับใช้กับ GitHub ได้

    หลังจากที่คุณสร้างกฎการป้องกันการปรับใช้แบบกําหนดเองและติดตั้งบนที่เก็บแล้ว คุณสามารถเปิดใช้งานกฎการป้องกันการปรับใช้แบบกําหนดเองสําหรับสภาพแวดล้อมใด ๆ ในที่เก็บได้

    สกรีนช็อตที่แสดงหน้าการตั้งค่าสําหรับการกําหนดค่าสภาพแวดล้อม 1 ด้วยตัวเลือกสําหรับผู้ตรวจทาน ตัวจับเวลารอ กฎแบบกําหนดเอง และข้อจํากัดสาขา

หมายเหตุ

ถ้าคุณมีแผน GitHub Free, GitHub Pro หรือ GitHub Team กฎการฉายภาพการปรับใช้สภาพแวดล้อมจะใช้ได้เฉพาะกับพื้นที่เก็บข้อมูลสาธารณะเท่านั้น ยกเว้นสําหรับสาขาและกฎการป้องกันแท็ก สําหรับผู้ใช้ที่มีแผน GitHub Pro หรือ GitHub Team สาขาและกฎการป้องกันแท็กจะพร้อมใช้งานสําหรับที่เก็บส่วนตัว

สคริปต์ในเวิร์กโฟลว์ของคุณ

ในตัวอย่างส่วนย่อยของเวิร์กโฟลว์ก่อนหน้านี้ คําสําคัญ run จะถูกใช้เพื่อพิมพ์สตริงข้อความ เนื่องจากคําสําคัญ run บอกให้งานดําเนินการคําสั่งบนรันเกอร์ คุณใช้คําสําคัญ run เพื่อเรียกใช้การดําเนินการหรือสคริปต์

jobs:
  example-job:
    steps:
      - run: npm install -g bats

ในตัวอย่างนี้ คุณใช้ npm เพื่อติดตั้ง bats แพคเกจทดสอบซอฟต์แวร์โดยใช้ run คําสําคัญ คุณยังสามารถเรียกใช้สคริปต์เป็นการดําเนินการได้อีกด้วย คุณสามารถจัดเก็บสคริปต์ในที่เก็บข้อมูลของคุณ ซึ่งมักจะทําในไดเรกทอรี .github/scripts/ จากนั้นใส่เส้นทางและชนิดของเชลล์โดยใช้คําสําคัญ run

jobs:
  example-job:
    steps:
      - name: Run build script
        run: ./.github/scripts/build.sh
        shell: bash