กําหนดค่าเวิร์กโฟลว์ของคุณด้วยตัวแปรสภาพแวดล้อม
ในหน่วยนี้ คุณจะได้เรียนรู้วิธีการกําหนดค่าและจัดการลักษณะการทํางานเฉพาะของสภาพแวดล้อมโดยใช้ตัวแปร บริบท และสคริปต์แบบกําหนดเองในเวิร์กโฟลว์การดําเนินการ 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 ของคุณได้
เมื่อต้องเพิ่มสภาพแวดล้อม ในที่เก็บของคุณ:
เลือก การตั้งค่า
ในบานหน้าต่างด้านซ้าย เลือกสภาพแวดล้อม
เลือกปุ่ม สภาพแวดล้อมใหม่ เพื่อเพิ่มและกําหนดค่าสภาพแวดล้อม และเพิ่มการป้องกัน
เกี่ยวกับสภาพแวดล้อม
ใช้สภาพแวดล้อมเพื่ออธิบายเป้าหมายการปรับใช้ทั่วไป เช่น การผลิต การจัดเตรียม หรือการพัฒนา เมื่อเวิร์กโฟลว์การดําเนินการ GitHub ปรับใช้กับสภาพแวดล้อม สภาพแวดล้อมจะปรากฏบนหน้าหลักของที่เก็บ คุณสามารถใช้สภาพแวดล้อมเพื่อกําหนดให้มีการอนุมัติงานเพื่อดําเนินการต่อ จํากัดสาขาที่สามารถทริกเกอร์เวิร์กโฟลว์ ประตูการปรับใช้โดยใช้กฎการป้องกันการปรับใช้แบบกําหนดเอง หรือจํากัดการเข้าถึงข้อมูลลับ
แต่ละงานในเวิร์กโฟลว์สามารถอ้างอิงสภาพแวดล้อมหนึ่งรายการได้ กฎการป้องกันใด ๆ ที่คุณตั้งค่าสําหรับสภาพแวดล้อมจะต้องส่งผ่านก่อนที่จะมีการส่งงานที่อ้างอิงถึงสภาพแวดล้อมไปยังผู้เรียกใช้ งานสามารถเข้าถึงข้อมูลลับของสภาพแวดล้อมหลังจากที่งานถูกส่งไปยังรันเนอร์เท่านั้น
เมื่อเวิร์กโฟลว์อ้างอิงถึงสภาพแวดล้อม สภาพแวดล้อมจะปรากฏในการปรับใช้ของที่เก็บ
กฎการป้องกันสภาพแวดล้อม
กฎการป้องกันการปรับใช้สภาพแวดล้อมจําเป็นต้องมีเงื่อนไขเฉพาะที่จะส่งผ่านก่อนงานที่อ้างอิงการดําเนินการของสภาพแวดล้อม คุณสามารถใช้กฎการป้องกันการปรับใช้เพื่อกําหนดให้มีการอนุมัติด้วยตนเอง หน่วงเวลางาน หรือจํากัดสภาพแวดล้อมให้กับสาขาเฉพาะ คุณยังสามารถสร้างและใช้กฎการป้องกันแบบกําหนดเองที่ขับเคลื่อนโดย GitHub Apps เพื่อใช้ระบบคู่ค้าเพื่อควบคุมการปรับใช้ที่อ้างอิงสภาพแวดล้อมที่ได้รับการกําหนดค่าบน GitHub
ต่อไปนี้คือคําอธิบายของกฎการป้องกันเหล่านี้:
กฎการป้องกันผู้ตรวจสอบที่จําเป็น ใช้กฎนี้เพื่อกําหนดบุคคลหรือทีมที่ระบุเพื่ออนุมัติงานเวิร์กโฟลว์ที่อ้างอิงสภาพแวดล้อม คุณสามารถแสดงผู้ใช้หรือทีมได้สูงสุดหกคนในฐานะผู้ตรวจสอบ ผู้ตรวจสอบต้องมีอย่างน้อยหนึ่งสิทธิ์ในการอ่านในที่เก็บ ผู้ตรวจสอบที่จําเป็นเพียงคนเดียวต้องอนุมัติงานเพื่อดําเนินการต่อ
นอกจากนี้ คุณยังสามารถป้องกันการตรวจสอบด้วยตนเองสําหรับการปรับใช้กับสภาพแวดล้อมที่ได้รับการป้องกันได้ หากคุณเปิดใช้งานการตั้งค่านี้ ผู้ใช้ที่เริ่มต้นการปรับใช้จะไม่สามารถอนุมัติงานการปรับใช้ได้แม้ว่าพวกเขาจะเป็นผู้ตรวจสอบที่จําเป็นก็ตาม การเปิดใช้งานการตรวจสอบด้วยตนเองจะทําให้มั่นใจได้ว่ามีผู้ตรวจสอบการปรับใช้มากกว่าหนึ่งคนไปยังสภาพแวดล้อมที่ได้รับการปกป้อง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบงานที่อ้างอิงสภาพแวดล้อมกับผู้ตรวจสอบที่จําเป็น ให้ดู ตรวจสอบการปรับใช้
กฎการคาดการณ์ของตัวจับเวลารอ คุณสามารถใช้กฎการป้องกันตัวจับเวลารอเพื่อหน่วงเวลางานสําหรับระยะเวลาที่กําหนดหลังจากที่งานถูกทริกเกอร์ในตอนแรกก่อนการดําเนินการปรับใช้สภาพแวดล้อม เวลา (ในหน่วยเป็นนาที) ต้องเป็นจํานวนเต็มระหว่าง 1 ถึง 43,200 (30 วัน) เวลารอจะไม่นับรวมในเวลาที่เรียกเก็บเงินได้
กฎการป้องกันสาขาและแท็ก คุณสามารถใช้สาขาการปรับใช้และกฎการป้องกันแท็กเพื่อจํากัดสาขาและแท็กที่ใช้เพื่อปรับใช้กับสภาพแวดล้อมได้ คุณมีหลายตัวเลือกสําหรับการปรับใช้สาขาและกฎการป้องกันแท็กสําหรับสภาพแวดล้อม
- ไม่มีข้อจํากัด ในสาขาหรือแท็กที่สามารถปรับใช้กับสภาพแวดล้อมได้
- สาขาที่ได้รับการป้องกัน จะอนุญาตให้เฉพาะสาขาที่มีกฎการป้องกันสาขาเท่านั้นที่เปิดใช้งานเพื่อปรับใช้กับสภาพแวดล้อม หากไม่ได้กําหนดกฎการป้องกันสาขาสําหรับสาขาใด ๆ ในที่เก็บ ทุกสาขาจะสามารถปรับใช้ได้ การตั้งค่า สาขาและแท็กที่เลือก ช่วยให้แน่ใจว่า เฉพาะสาขาและแท็กที่ตรงกับรูปแบบชื่อที่ระบุของคุณสามารถปรับใช้กับสภาพแวดล้อมได้
- ถ้าคุณระบุ
releases/*เป็นกฎสาขาหรือแท็กการปรับใช้ เฉพาะสาขาหรือแท็กที่มีชื่อที่เริ่มต้นด้วยreleases/เท่านั้นที่สามารถปรับใช้กับสภาพแวดล้อมได้ (อักขระตัวแทนไม่ตรงกัน/เมื่อต้องการจับคู่สาขาหรือแท็กที่ขึ้นต้นด้วยrelease/และ ประกอบด้วยเครื่องหมายทับเดี่ยวอื่น ให้ใช้release/*/*) ถ้าคุณเพิ่มmainเป็นกฎสาขา สาขาที่ชื่อว่าmainยังสามารถปรับใช้กับสภาพแวดล้อมได้
กฎการป้องกันการปรับใช้แบบกําหนดเอง คุณสามารถสร้างกฎการป้องกันแบบกําหนดเองเพื่อปรับใช้ประตูเพื่อใช้บริการพันธมิตร ตัวอย่างเช่น คุณสามารถใช้ระบบความสามารถในการสังเกตการณ์ ระบบการจัดการการเปลี่ยนแปลง ระบบคุณภาพโค้ด หรือการกําหนดค่าด้วยตนเองอื่นๆ ที่คุณใช้ในการประเมินความพร้อมและให้การอนุมัติอัตโนมัติสําหรับการปรับใช้กับ GitHub ได้
หลังจากที่คุณสร้างกฎการป้องกันการปรับใช้แบบกําหนดเองและติดตั้งบนที่เก็บแล้ว คุณสามารถเปิดใช้งานกฎการป้องกันการปรับใช้แบบกําหนดเองสําหรับสภาพแวดล้อมใด ๆ ในที่เก็บได้
หมายเหตุ
ถ้าคุณมีแผน 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