@@ -36,18 +36,17 @@ jobs:
- id: run-compliance-check
name: compliance_check::scheduled_compliance_check::run_compliance_check
run: |
- echo "tag=$LATEST_TAG" >> "$GITHUB_OUTPUT"
- cargo xtask compliance "$LATEST_TAG" --branch main --report-path compliance-report
+ cargo xtask compliance "$LATEST_TAG" --branch main --report-path "compliance-report-${GITHUB_REF_NAME}.md"
env:
LATEST_TAG: ${{ steps.determine-version.outputs.tag }}
GITHUB_APP_ID: ${{ secrets.ZED_ZIPPY_APP_ID }}
GITHUB_APP_KEY: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
- - name: '@actions/upload-artifact compliance-report.md'
+ - name: '@actions/upload-artifact compliance-report-${GITHUB_REF_NAME}.md'
if: always()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
with:
- name: compliance-report.md
- path: target/compliance-report.md
+ name: compliance-report-${GITHUB_REF_NAME}.md
+ path: compliance-report-${GITHUB_REF_NAME}.md
if-no-files-found: error
- name: send_compliance_slack_notification
if: always()
@@ -307,19 +307,19 @@ jobs:
cache: rust
path: ~/.rustup
- id: run-compliance-check
- name: release::compliance_check::run_compliance_check
+ name: release::run_compliance_check
run: |
- cargo xtask compliance "$GITHUB_REF_NAME" --report-path compliance-report
+ cargo xtask compliance "$GITHUB_REF_NAME" --report-path "compliance-report-${GITHUB_REF_NAME}.md"
env:
GITHUB_APP_ID: ${{ secrets.ZED_ZIPPY_APP_ID }}
GITHUB_APP_KEY: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
continue-on-error: true
- - name: '@actions/upload-artifact compliance-report.md'
+ - name: '@actions/upload-artifact compliance-report-${GITHUB_REF_NAME}.md'
if: always()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
with:
- name: compliance-report.md
- path: target/compliance-report.md
+ name: compliance-report-${GITHUB_REF_NAME}.md
+ path: compliance-report-${GITHUB_REF_NAME}.md
if-no-files-found: error
- name: send_compliance_slack_notification
if: always()
@@ -672,19 +672,20 @@ jobs:
with:
cache: rust
path: ~/.rustup
- - id: run-post-upload-compliance-check
- name: release::validate_release_assets::run_post_upload_compliance_check
+ - id: run-compliance-check
+ name: release::run_compliance_check
run: |
- cargo xtask compliance "$GITHUB_REF_NAME" --report-path compliance-report
+ cargo xtask compliance "$GITHUB_REF_NAME" --report-path "compliance-report-${GITHUB_REF_NAME}.md"
env:
GITHUB_APP_ID: ${{ secrets.ZED_ZIPPY_APP_ID }}
GITHUB_APP_KEY: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
- - name: '@actions/upload-artifact compliance-report.md'
+ continue-on-error: true
+ - name: '@actions/upload-artifact compliance-report-${GITHUB_REF_NAME}.md'
if: always()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
with:
- name: compliance-report.md
- path: target/compliance-report.md
+ name: compliance-report-${GITHUB_REF_NAME}.md
+ path: compliance-report-${GITHUB_REF_NAME}.md
if-no-files-found: error
overwrite: true
- name: send_compliance_slack_notification
@@ -703,7 +704,7 @@ jobs:
"$SLACK_WEBHOOK"
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}
- COMPLIANCE_OUTCOME: ${{ steps.run-post-upload-compliance-check.outcome }}
+ COMPLIANCE_OUTCOME: ${{ steps.run-compliance-check.outcome }}
COMPLIANCE_TAG: ${{ github.ref_name }}
ARTIFACT_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts
auto_release_preview:
@@ -2,7 +2,10 @@ use gh_workflow::{Event, Job, Run, Schedule, Step, Workflow, WorkflowDispatch};
use indoc::formatdoc;
use crate::tasks::workflows::{
- release::{COMPLIANCE_REPORT_PATH, ComplianceContext, add_compliance_notification_steps},
+ release::{
+ COMPLIANCE_REPORT_PATH, COMPLIANCE_STEP_ID, ComplianceContext,
+ add_compliance_notification_steps,
+ },
runners,
steps::{self, CommonJobConditions, named},
vars::{self, StepOutput},
@@ -37,12 +40,11 @@ fn scheduled_compliance_check() -> steps::NamedJob {
fn run_compliance_check(tag: &StepOutput) -> Step<Run> {
named::bash(
formatdoc! {r#"
- echo "tag=$LATEST_TAG" >> "$GITHUB_OUTPUT"
- cargo xtask compliance "$LATEST_TAG" --branch main --report-path {COMPLIANCE_REPORT_PATH}
+ cargo xtask compliance "$LATEST_TAG" --branch main --report-path "{COMPLIANCE_REPORT_PATH}"
"#,
}
)
- .id("run-compliance-check")
+ .id(COMPLIANCE_STEP_ID)
.add_env(("LATEST_TAG", tag.to_string()))
.add_env(("GITHUB_APP_ID", vars::ZED_ZIPPY_APP_ID))
.add_env(("GITHUB_APP_KEY", vars::ZED_ZIPPY_APP_PRIVATE_KEY))
@@ -61,6 +63,5 @@ fn scheduled_compliance_check() -> steps::NamedJob {
ComplianceContext::Scheduled {
tag_source: tag_output,
},
- "run-compliance-check",
))
}
@@ -151,8 +151,8 @@ pub(crate) fn create_sentry_release() -> Step<Use> {
.add_with(("environment", "production"))
}
-pub(crate) const COMPLIANCE_REPORT_PATH: &str = "compliance-report";
-const COMPLIANCE_REPORT_FILE: &str = "target/compliance-report.md";
+pub(crate) const COMPLIANCE_REPORT_PATH: &str = "compliance-report-${GITHUB_REF_NAME}.md";
+pub(crate) const COMPLIANCE_STEP_ID: &str = "run-compliance-check";
const NEEDS_REVIEW_PULLS_URL: &str = "https://github.com/zed-industries/zed/pulls?q=is%3Apr+is%3Aclosed+label%3A%22PR+state%3Aneeds+review%22";
pub(crate) enum ComplianceContext {
@@ -164,9 +164,8 @@ pub(crate) enum ComplianceContext {
pub(crate) fn add_compliance_notification_steps(
job: gh_workflow::Job,
context: ComplianceContext,
- compliance_step_id: &str,
) -> gh_workflow::Job {
- let upload_step = upload_artifact(COMPLIANCE_REPORT_FILE)
+ let upload_step = upload_artifact(COMPLIANCE_REPORT_PATH)
.if_condition(Expression::new("always()"))
.when(matches!(context, ComplianceContext::Release), |step| {
step.add_with(("overwrite", true))
@@ -203,7 +202,7 @@ pub(crate) fn add_compliance_notification_steps(
.add_env(("SLACK_WEBHOOK", vars::SLACK_WEBHOOK_WORKFLOW_FAILURES))
.add_env((
"COMPLIANCE_OUTCOME",
- format!("${{{{ steps.{compliance_step_id}.outcome }}}}"),
+ format!("${{{{ steps.{COMPLIANCE_STEP_ID}.outcome }}}}"),
))
.add_env((
"COMPLIANCE_TAG",
@@ -222,18 +221,18 @@ pub(crate) fn add_compliance_notification_steps(
job.add_step(upload_step).add_step(notification_step)
}
-fn compliance_check() -> NamedJob {
- fn run_compliance_check() -> Step<Run> {
- named::bash(formatdoc! {r#"
- cargo xtask compliance "$GITHUB_REF_NAME" --report-path {COMPLIANCE_REPORT_PATH}
- "#,
- })
- .id("run-compliance-check")
- .add_env(("GITHUB_APP_ID", vars::ZED_ZIPPY_APP_ID))
- .add_env(("GITHUB_APP_KEY", vars::ZED_ZIPPY_APP_PRIVATE_KEY))
- .continue_on_error(true)
- }
+fn run_compliance_check() -> Step<Run> {
+ named::bash(formatdoc! {r#"
+ cargo xtask compliance "$GITHUB_REF_NAME" --report-path "{COMPLIANCE_REPORT_PATH}"
+ "#,
+ })
+ .id(COMPLIANCE_STEP_ID)
+ .add_env(("GITHUB_APP_ID", vars::ZED_ZIPPY_APP_ID))
+ .add_env(("GITHUB_APP_KEY", vars::ZED_ZIPPY_APP_PRIVATE_KEY))
+ .continue_on_error(true)
+}
+fn compliance_check() -> NamedJob {
let job = release_job(&[])
.runs_on(runners::LINUX_SMALL)
.add_step(
@@ -247,7 +246,6 @@ fn compliance_check() -> NamedJob {
named::job(add_compliance_notification_steps(
job,
ComplianceContext::ReleaseNonBlocking,
- "run-compliance-check",
))
}
@@ -273,31 +271,20 @@ fn validate_release_assets(deps: &[&NamedJob]) -> NamedJob {
"#,
};
- fn run_post_upload_compliance_check() -> Step<Run> {
- named::bash(formatdoc! {r#"
- cargo xtask compliance "$GITHUB_REF_NAME" --report-path {COMPLIANCE_REPORT_PATH}
- "#,
- })
- .id("run-post-upload-compliance-check")
- .add_env(("GITHUB_APP_ID", vars::ZED_ZIPPY_APP_ID))
- .add_env(("GITHUB_APP_KEY", vars::ZED_ZIPPY_APP_PRIVATE_KEY))
- }
-
let job = dependant_job(deps)
.runs_on(runners::LINUX_SMALL)
.add_step(named::bash(&validation_script).add_env(("GITHUB_TOKEN", vars::GITHUB_TOKEN)))
.add_step(
steps::checkout_repo()
.with_full_history()
- .with_ref("${{ github.ref }}"),
+ .with_ref(Context::github().ref_()),
)
.add_step(steps::cache_rust_dependencies_namespace())
- .add_step(run_post_upload_compliance_check());
+ .add_step(run_compliance_check());
named::job(add_compliance_notification_steps(
job,
ComplianceContext::Release,
- "run-post-upload-compliance-check",
))
}