mirror of
https://github.com/wez/wezterm.git
synced 2024-12-26 14:54:16 +03:00
ce89e33f01
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
91 lines
2.5 KiB
YAML
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"
|