1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 14:54:16 +03:00
wezterm/.github/workflows/gen_macos_continuous.yml
Wez Furlong ce89e33f01 ci: make deterministic again!
dc728b3895 introduced some non-determinism
by mutating the global TARGETS list.

The result is, depending on iteration order, the generated jobs
may inherit the env from earlier jobs.

Notably, if the tag job inherit the schedule reason from a continuous
job, they'll upload assets with an incorrect filename.

This commit restores the determinism by forcing each iteration
of the generation loop to make a deep copy of the statically
defined information in TARGETS.

While we're at it, ensure that the list of env vars is sorted
to avoid non-determinism there as well.

refs: https://github.com/wez/wezterm/issues/2176
2022-06-25 11:40:47 -07:00

91 lines
2.5 KiB
YAML

name: macos_continuous
on:
schedule:
- cron: "10 3 * * *"
push:
branches:
- main
paths-ignore:
- ".cirrus.yml"
- "docs/**"
- "ci/build-docs.sh"
- "ci/generate-docs.py"
- "ci/subst-release-info.py"
- ".github/workflows/pages.yml"
- ".github/workflows/verify-pages.yml"
- ".github/workflows/no-response.yml"
- ".github/ISSUE_TEMPLATE/*"
- "**/*.md"
- "**/*.markdown"
jobs:
build:
runs-on: "macos-11"
env:
BUILD_REASON: "Schedule"
MACOSX_DEPLOYMENT_TARGET: "10.9"
steps:
- name: "checkout repo"
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: "Install Rust"
uses: actions-rs/toolchain@v1
with:
profile: "minimal"
toolchain: "stable"
override: true
components: "rustfmt"
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
- name: "Install Rust (ARM)"
shell: bash
run: "rustup target add aarch64-apple-darwin"
- name: "Install System Deps"
shell: bash
run: "env PATH=$PATH ./get-deps"
- name: "Build (Release mode Intel)"
shell: bash
run: "cargo build --target x86_64-apple-darwin --all --release"
- name: "Build (Release mode ARM)"
shell: bash
run: "cargo build --target aarch64-apple-darwin --all --release"
- name: "Test (Release mode)"
shell: bash
run: "cargo test --target x86_64-apple-darwin --all --release"
- name: "Package"
env:
MACOS_APPLEID: ${{ secrets.MACOS_APPLEID }}
MACOS_APP_PW: ${{ secrets.MACOS_APP_PW }}
MACOS_CERT: ${{ secrets.MACOS_CERT }}
MACOS_CERT_PW: ${{ secrets.MACOS_CERT_PW }}
MACOS_TEAM_ID: ${{ secrets.MACOS_TEAM_ID }}
shell: bash
run: "bash ci/deploy.sh"
- name: "Upload artifact"
uses: actions/upload-artifact@v3
with:
name: "macos"
path: "WezTerm-*.zip"
retention-days: 5
upload:
runs-on: ubuntu-latest
needs: build
steps:
- name: "checkout repo"
uses: actions/checkout@v3
- name: "Download artifact"
uses: actions/download-artifact@v3
with:
name: "macos"
- name: "Upload to Nightly Release"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: "bash ci/retry.sh gh release upload --clobber nightly WezTerm-*.zip"