FIx format and add windows curl #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: crazy-max/ghaction-chocolatey@v3 | |
run: choco install curl | |
with: | |
args: '' | |
- 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 |