Skip to content

Use msys to install curl #2

Use msys to install curl

Use msys to install curl #2

Workflow file for this run

name: Bazel
on:
workflow_call:
inputs:
name:
description: Name of workflow
required: false
type: string
run:
description: Bazel command to run
required: true
type: string
os:
description: One of ubuntu, windows or macos
required: false
type: string
default: ubuntu
browser:
description: One of chrome, firefox, or edge
required: false
type: string
default: ''
browser-version:
description: One of stable, latest, latest-beta or latest-devedition
required: false
type: string
default: ''
caching:
description: Toggle caching of Bazel
required: false
type: boolean
default: true
cache-key:
description: Bazel disk cache key
required: false
type: string
default: ''
dotnet-version:
description: Custom DotNet version to install
required: false
type: string
default: ''
java-version:
description: Custom Java version to install
required: false
type: string
default: ''
node-version:
description: Custom Node version to install
required: false
type: string
default: ''
ruby-version:
description: Custom Ruby version to use
required: false
type: string
default: ''
nightly-release-files:
description: Files to upload to the Nightly release tag
required: false
type: string
default: ''
artifact-name:
description: Name of artifact to upload
required: false
type: string
default: 'ignore-artifacts'
jobs:
bazel:
name: ${{ inputs.name }}
runs-on: ${{ inputs.os == 'macos' && 'macos-13' || format('{0}-latest', inputs.os) }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEL_M2_USER: ${{ secrets.SEL_M2_USER }}
SEL_M2_PASS: ${{ secrets.SEL_M2_PASS }}
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SE_AVOID_STATS: true
steps:
- name: Checkout source tree
uses: actions/checkout@v4
- name: Free space
if: inputs.os != 'windows'
run: ./scripts/github-actions/free-disk-space.sh
- name: Remove driver directories Windows
if: inputs.os == 'windows'
run: |
rm "$env:ChromeWebDriver" -r -v
rm "$env:EdgeWebDriver" -r -v
rm "$env:GeckoWebDriver" -r -v
- name: Remove driver directories Non-Windows
if: inputs.os != 'windows'
run: |
sudo rm -rf "$CHROMEWEBDRIVER" "$EDGEWEBDRIVER" "$GECKOWEBDRIVER"
- name: Set Ruby version
if: inputs.ruby-version != ''
run: echo '${{ inputs.ruby-version }}' > rb/.ruby-version
- name: Setup DotNet
if: inputs.dotnet-version != ''
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ inputs.dotnet-version }}
- name: Setup Java
if: inputs.java-version != ''
uses: actions/setup-java@v3
with:
java-version: ${{ inputs.java-version }}
distribution: 'temurin'
- name: Setup Node
if: inputs.node-version != ''
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- name: Setup Bazel with caching
if: inputs.caching
uses: bazel-contrib/setup-bazel@0.8.5
with:
bazelisk-cache: true
bazelrc: common --color=yes
cache-version: 2
disk-cache: ${{ inputs.cache-key }}
external-cache: |
name: ${{ inputs.cache-key }}
manifest:
crates: rust/Cargo.Bazel.lock
rules_ruby~~ruby~ruby: ${{ inputs.os == 'windows' && 'false' || 'rb/.ruby-version' }}
repository-cache: true
- name: Setup Bazel without caching
if: inputs.caching == false
uses: bazel-contrib/setup-bazel@0.8.5
with:
bazelrc: common --color=yes
- name: Setup Fluxbox and Xvfb
if: inputs.os == 'ubuntu' && inputs.browser != ''
run: |
sudo apt-get -y install fluxbox
Xvfb :99 &
fluxbox -display :99 &
echo "DISPLAY=:99" >> "$GITHUB_ENV"
- name: Set resolution
if: inputs.os == 'windows' && inputs.browser != ''
run: Set-DisplayResolution -Width 1920 -Height 1080 -Force
- name: Setup Safari
if: inputs.browser == 'safari'
run: sudo safaridriver --enable
- name: Setup curl for Ubuntu
if: inputs.os == 'ubuntu'
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
- name: Setup curl for Windows
if: inputs.os == 'windows'
uses: msys2/setup-msys2@v2
run: pacman -S mingw-w64-x86_64-curl
- name: Run Bazel
run: ${{ inputs.run }}
- name: Start SSH session
if: failure() && runner.debug == '1'
uses: mxschmitt/action-tmate@v3
with:
limit-access-to-actor: false
- name: Release Nightly
if: inputs.nightly-release-files != ''
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "nightly"
title: "Nightly"
prerelease: true
files: ${{ inputs.nightly-release-files }}
- name: Save changes
if: ${{ always() && inputs.artifact-name != 'ignore-artifacts' }}
run: |
git diff > changes.patch
- name: "Upload changes"
if: ${{ always() && inputs.artifact-name != 'ignore-artifacts' }}
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-name }}
path: changes.patch
retention-days: 6