# This is ci/actions-templates/windows-builds-template.yaml # Do not edit this file in .github/workflows name: Windows (PR) # skip-master skip-stable name: Windows (master) # skip-pr skip-stable name: Windows (stable) # skip-master skip-pr on: pull_request: # skip-master skip-stable branches: # skip-master skip-stable - "*" # skip-master skip-stable push: # skip-pr branches: # skip-pr - master # skip-pr skip-stable - stable # skip-pr skip-master schedule: # skip-pr skip-stable - cron: "30 0 * * 1" # Every Monday at half past midnight UTC skip-pr skip-stable jobs: build: name: Build runs-on: windows-latest env: RUSTFLAGS: -Ctarget-feature=+crt-static strategy: fail-fast: false matrix: target: - x86_64-pc-windows-msvc - i686-pc-windows-msvc # skip-pr skip-master - aarch64-pc-windows-msvc # skip-pr skip-stable - x86_64-pc-windows-gnu # skip-pr - i686-pc-windows-gnu # skip-pr skip-master include: - target: x86_64-pc-windows-gnu mingw: https://ci-mirrors.rust-lang.org/rustc/x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z mingwdir: mingw64 - target: i686-pc-windows-gnu mingwdir: mingw32 mingw: https://ci-mirrors.rust-lang.org/rustc/i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z - target: aarch64-pc-windows-msvc # skip-pr skip-stable skip_tests: yes # skip-pr skip-stable steps: - uses: actions/checkout@v2 # v2 defaults to a shallow checkout, but we need at least to the previous tag with: fetch-depth: 0 - name: Acquire tags for the repo run: | git fetch --no-tags --prune --depth=1 origin +refs/tags/*:refs/tags/* - name: Display the current git status run: | git status git describe - name: Prep cargo dirs run: | New-Item "${env:USERPROFILE}\.cargo\registry" -ItemType Directory -Force New-Item "${env:USERPROFILE}\.cargo\git" -ItemType Directory -Force shell: powershell - name: Install mingw run: | # We retrieve mingw from the Rust CI buckets # Disable the download progress bar which can cause perf issues $ProgressPreference = "SilentlyContinue" Invoke-WebRequest ${{ matrix.mingw }} -OutFile mingw.7z 7z x -y mingw.7z -oC:\msys64 | Out-Null del mingw.7z echo "C:\msys64\usr\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "C:\msys64\${{ matrix.mingwdir }}\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 shell: powershell if: matrix.mingw != '' - name: Set environment variables appropriately for the build run: | echo "%USERPROFILE%\.cargo\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "TARGET=${{ matrix.target }}" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 echo "SKIP_TESTS=${{ matrix.skip_tests }}" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 - name: Cache cargo registry and git trees uses: actions/cache@v2 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Get rustc commit hash id: cargo-target-cache run: | echo "::set-output name=rust_hash::$(rustc -Vv | grep commit-hash | awk '{print $2}')" shell: bash - name: Cache cargo build uses: actions/cache@v2 with: path: target key: ${{ github.base_ref }}-${{ github.head_ref }}-${{ matrix.target }}-cargo-target-dir-${{ steps.cargo-target-cache.outputs.rust_hash }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ github.base_ref }}-${{ matrix.target }}-cargo-target-dir-${{ steps.cargo-target-cache.outputs.rust_hash }}-${{ hashFiles('**/Cargo.lock') }} - name: Install Rustup using win.rustup.rs run: | # Disable the download progress bar which can cause perf issues $ProgressPreference = "SilentlyContinue" Invoke-WebRequest https://win.rustup.rs/ -OutFile rustup-init.exe .\rustup-init.exe -y --default-host=x86_64-pc-windows-msvc --profile=minimal del rustup-init.exe shell: powershell - name: Ensure stable toolchain is up to date run: rustup update stable shell: bash - name: Install the target run: | rustup target install ${{ matrix.target }} - name: Run a full build run: bash ci/run.bash - name: Upload the built artifact if: false uses: actions/upload-artifact@v2 with: name: rustup-init-${{ matrix.target }} path: | target/${{ matrix.target }}/release/rustup-init.exe retention-days: 7 - name: Acquire the AWS tooling run: | choco upgrade awscli if: false && github.event_name == 'push' && github.ref == 'refs/heads/stable' - name: Prepare the dist run: | .\ci\prepare-deploy.ps1 shell: powershell if: false && github.event_name == 'push' && github.ref == 'refs/heads/stable' - name: Deploy build to dev-static dist tree for release team run: | aws --debug s3 cp --recursive dist s3://dev-static-rust-lang-org/rustup/dist env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: us-west-1 if: false && github.event_name == 'push' && github.ref == 'refs/heads/stable' - name: Clear the cargo caches run: | cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache