azure-pipelines.yml
variables:
HOMEBREW_NO_INSTALL_CLEANUP: 1
HOMEBREW_NO_AUTO_UPDATE: 1
trigger:
branches:
exclude:
- prod
jobs:
- job: Build
pool:
vmImage: $(imageName)
strategy:
matrix:
ubuntu-node-16-go-1-16-6:
imageName: "ubuntu-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
mac-node-16-go-1-16-6:
imageName: "macos-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
steps:
- task: GoTool@0
inputs:
version: $(goVersion)
- task: NodeTool@0.200.0
inputs:
versionSpec: $(nodeVersion)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/home/vsts/.local/share/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Cache pnpm-store (Ubuntu)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/Users/runner/Library/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Cache pnpm-store (MacOS)
- script: ./scripts/setup.sh
displayName: Run install script
- script: |
DIR=$(basename $CURRENT_DIR)
sed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Fix src/wings/wings.json (Ubuntu)
- script: |
brew install gnu-sed
DIR=$(basename $CURRENT_DIR)
gsed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Fix src/wings/wings.json (MacOS)
- script: ./pleasew build --show_all_output //...
displayName: Build all
- script: ./pleasew lint
displayName: Lint changes
- script: |
git checkout src/wings/wings.json go.sum go.mod pnpm-lock.yaml
./scripts/leftover.sh
displayName: Check for leftover
- job: E2E
pool:
vmImage: $(imageName)
strategy:
matrix:
ubuntu-node-16-go-1-16-6:
imageName: "ubuntu-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
# mac-node-16-go-1-16-6:
# imageName: "macos-latest"
# nodeVersion: "16.13.1"
# goVersion: "1.16.6"
steps:
- task: GoTool@0
inputs:
version: $(goVersion)
- task: NodeTool@0.200.0
inputs:
versionSpec: $(nodeVersion)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/home/vsts/.local/share/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Cache pnpm-store (Ubuntu)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/Users/runner/Library/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Cache pnpm-store (MacOS)
- script: ./scripts/setup.sh
displayName: Run install script
- script: pnpm i --no-frozen-lockfile
displayName: Install pnpm
- script: |
DIR=$(basename $CURRENT_DIR)
sed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Fix src/wings/wings.json (Ubuntu)
- script: |
brew install gnu-sed
DIR=$(basename $CURRENT_DIR)
gsed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Fix src/wings/wings.json (MacOS)
- script: ./pleasew build "//src/turbine:main"
displayName: Build turbine
- script: pnpm run -r preflight
displayName: Prepare for serve
- script: ./pleasew run "//src/turbine:main" &
displayName: Run turbine on background
- script: sleep 1
- script: pnpm run -r serve:plz &
displayName: Run cockpit on background
- script: sleep 1
- script: pnpm run install_playwright --no-frozen-lockfile
displayName: Install playwright
- script: pnpm run -r test:playwright --coverage=false
displayName: Run playwright e2e tests
- job: turbine
pool:
vmImage: $(imageName)
strategy:
matrix:
ubuntu-node-16-go-1-16-6:
imageName: "ubuntu-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
mac-node-16-go-1-16-6:
imageName: "macos-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
steps:
- task: GoTool@0
inputs:
version: $(goVersion)
- script: ./scripts/setup.sh -gqc
displayName: Run install script
- script: |
DIR=$(basename $CURRENT_DIR)
sed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Fix src/wings/wings.json (Ubuntu)
- script: |
brew install gnu-sed
DIR=$(basename $CURRENT_DIR)
gsed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Fix src/wings/wings.json (MacOS)
- script: ./pleasew go_mod
displayName: Regenerate third_party/go/BUILD file
- script: ./pleasew cover --show_all_output //src/turbine/...
displayName: Test turbine (with coverage)
- job: cockpit
pool:
vmImage: $(imageName)
strategy:
matrix:
ubuntu-node-16-go-1-16-6:
imageName: "ubuntu-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
mac-node-16-go-1-16-6:
imageName: "macos-latest"
nodeVersion: "16.13.1"
goVersion: "1.16.6"
steps:
- task: NodeTool@0.200.0
inputs:
versionSpec: $(nodeVersion)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/home/vsts/.local/share/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Cache pnpm-store (Ubuntu)
- task: Cache@2.198.0
inputs:
key: "pnpm_store | $(Agent.OS) | package.json"
path: "/Users/runner/Library/pnpm/store/v3"
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Cache pnpm-store (MacOS)
# - script: ./scripts/setup.sh -n
# displayName: Run install script
- script: npm i -g pnpm@7.1.0 && pnpm i
displayName: Install pnpm
- script: |
DIR=$(basename $CURRENT_DIR)
sed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Fix src/wings/wings.json (Ubuntu)
- script: |
brew install gnu-sed
DIR=$(basename $CURRENT_DIR)
gsed -i "s/\"GlobeTrotte\"/\"$DIR\"/g" src/wings/wings.json
cat src/wings/wings.json
env:
CURRENT_DIR: $(Pipeline.Workspace)
condition: eq(variables['Agent.OS'], 'Darwin')
displayName: Fix src/wings/wings.json (MacOS)
- script: pnpm run -r test:vitest --coverage=false
displayName: Test cockpit
- script: pnpm run -r check:tsc
displayName: Cockpit typecheck