mirror of
https://github.com/wez/wezterm.git
synced 2024-12-29 16:42:13 +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
114 lines
3.2 KiB
YAML
114 lines
3.2 KiB
YAML
name: alpine3.14_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: "ubuntu-latest"
|
|
container: "alpine:3.14"
|
|
env:
|
|
BUILD_REASON: "Schedule"
|
|
RUSTFLAGS: "-C target-feature=-crt-static"
|
|
|
|
steps:
|
|
- name: "Upgrade system"
|
|
shell: sh
|
|
run: "apk upgrade --update-cache"
|
|
- name: "Install CI dependencies"
|
|
shell: sh
|
|
run: "apk add nodejs zstd wget bash coreutils tar findutils"
|
|
- name: "Allow root login"
|
|
shell: bash
|
|
run: "sed 's/root:!/root:*/g' -i /etc/shadow"
|
|
- name: "Install git"
|
|
shell: bash
|
|
run: "apk add git"
|
|
- name: "Install curl"
|
|
shell: bash
|
|
run: "apk add curl"
|
|
- name: "Install openssh"
|
|
shell: bash
|
|
run: "apk add openssh"
|
|
- name: "Workaround git permissions issue"
|
|
shell: bash
|
|
run: "git config --global --add safe.directory /__w/wezterm/wezterm"
|
|
- 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: "Cache cargo"
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: "alpine3.14-None-2-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-cargo"
|
|
- name: "Install System Deps"
|
|
shell: bash
|
|
run: "env PATH=$PATH ./get-deps"
|
|
- name: "Build (Release mode)"
|
|
shell: bash
|
|
run: "cargo build --all --release"
|
|
- name: "Test (Release mode)"
|
|
shell: bash
|
|
run: "cargo test --all --release"
|
|
- name: "Package"
|
|
shell: bash
|
|
run: "bash ci/deploy.sh"
|
|
- name: "Move APKs"
|
|
shell: bash
|
|
run: "mv ~/packages/wezterm/x86_64/*.apk wezterm-nightly-alpine3.14.apk"
|
|
- name: "Upload artifact"
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: "alpine3.14"
|
|
path: "wezterm-*.apk"
|
|
retention-days: 5
|
|
|
|
upload:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
|
|
steps:
|
|
- name: "Workaround git permissions issue"
|
|
shell: bash
|
|
run: "git config --global --add safe.directory /__w/wezterm/wezterm"
|
|
- name: "checkout repo"
|
|
uses: actions/checkout@v3
|
|
- name: "Download artifact"
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: "alpine3.14"
|
|
- name: "Upload to Nightly Release"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
shell: bash
|
|
run: "bash ci/retry.sh gh release upload --clobber nightly wezterm-*.apk"
|