Skip to content

feat: Use progress bar to display docker output #3994

feat: Use progress bar to display docker output

feat: Use progress bar to display docker output #3994

Workflow file for this run

name: Test
on:
workflow_dispatch:
pull_request:
env:
SAUCE_USERNAME: ${{secrets.SAUCE_USERNAME}}
SAUCE_ACCESS_KEY: ${{secrets.SAUCE_ACCESS_KEY}}
BUILD_ID: saucectl-run-${{ github.run_id }}
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Lint
uses: golangci/golangci-lint-action@v6
with:
args: --timeout 3m
version: latest
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Run tests
run: |
go test ./...
check-schema:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: scripts/json-schema-bundler/package-lock.json
- name: Install Dependencies
working-directory: scripts/json-schema-bundler
run: npm ci
- name: Generate Schema
working-directory: scripts/json-schema-bundler
run: npm run bundle -- -s ../../api/global.schema.json -o ../../api/fresh.schema.json
- name: Check Schema
working-directory: api/
run: diff saucectl.schema.json fresh.schema.json
build:
needs: [lint, test]
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Build Project
run: |
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)
LDFLAG_VERSION="github.com/saucelabs/saucectl/cli/version.Version=v0.0.0+$SHORT_SHA"
LDFLAG_SHA="github.com/saucelabs/saucectl/cli/version.GitCommit=$GITHUB_SHA"
go install ./...
CGO_ENABLED=0 go build -ldflags="-X $LDFLAG_VERSION -X $LDFLAG_SHA" cmd/saucectl/saucectl.go
GOOS=windows GOARCH=amd64 go build cmd/saucectl/saucectl.go
- name: Check GoReleaser Config
uses: goreleaser/goreleaser-action@v5
with:
version: latest
args: check
- name: Upload Binary
uses: actions/upload-artifact@v4
with:
name: saucectlbin
path: |
saucectl
saucectl.exe
puppeteer-replay:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: ./saucectl run -c .sauce/replay.yml --timeout 10m
- name: Saucectl RUN - CLI Driven
run: ./saucectl run replay "tests/e2e/replay/recording.json" -c "" --name "CLI Driven" --timeout 10m -r us-west-1
playwright:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: ./saucectl run -c .sauce/playwright.yml --timeout 10m
- name: Saucectl RUN - CLI Driven
run: ./saucectl run playwright ".*.js" -c "" --name "CLI Driven" --browser chromium --rootDir tests/e2e/playwright/ --playwright.version 1.43.1 --timeout 10m -r us-west-1
testcafe:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: ./saucectl run -c .sauce/testcafe.yml --timeout 10m
- name: Saucectl RUN - CLI Driven
run: ./saucectl run testcafe "*.test.js" -c "" --name "CLI Driven" --browser chrome --rootDir tests/e2e/testcafe/ --testcafe.version 3.5.0 --timeout 10m -r us-west-1
cypress:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: |
./saucectl run -c .sauce/cypress-10.yml --timeout 10m
- name: Saucectl RUN - CLI Driven
run: |
./saucectl run cypress "cypress/e2e/**/*.js" \
-c "" --name "CLI Driven" \
--rootDir tests/e2e/cypress_10/e2e/ \
--browser chrome \
--cypress.version 13.7.3 \
--cypress.configFile "cypress.config.js" \
--timeout 10m \
-r us-west-1
espresso:
needs: build
runs-on: ubuntu-latest
env:
BUILD_ID: ${{ github.run_id }}
BUILD_ENV: GitHub Actions
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: |
./saucectl run -c .sauce/espresso.yml
- name: Saucectl RUN - CLI Driven
run: |
./saucectl run espresso -c "" \
--name "CLI Driven" \
--app ./tests/e2e/espresso/mda-1.0.17-20.apk \
--testApp ./tests/e2e/espresso/mda-androidTest-1.0.17-20.apk \
--emulator name="Android GoogleApi Emulator",platformVersion=11.0 \
--testOptions.size small \
-r us-west-1
xcuitest:
needs: build
runs-on: ubuntu-latest
env:
BUILD_ID: ${{ github.run_id }}
BUILD_ENV: GitHub Actions
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: |
./saucectl run -c .sauce/xcuitest.yml --timeout 10m
- name: Saucectl RUN - CLI Driven
run: |
./saucectl run xcuitest \
-c "" \
--name "cli driven" \
--retries 2 \
--app ./tests/e2e/xcuitest/SauceLabs-Demo-App.XCUITest.ipa \
--testApp ./tests/e2e/xcuitest/SauceLabs-Demo-App-Runner.XCUITest.ipa \
--testOptions.class MyDemoAppUITests.ProductListingPageTest \
--device name="iPhone.*" \
--timeout 10m \
-r us-west-1
apitest:
needs: build
runs-on: ubuntu-latest
# apitest is not publicly released so let's be a bit lax during pre-release
continue-on-error: true
env:
BUILD_ID: ${{ github.run_id }}
BUILD_ENV: GitHub Actions
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
run: |
./saucectl run -c .sauce/apitest.yml -r us-west-1
playwright-cucumberjs:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN - Config Driven
working-directory: ./tests/e2e/playwright-cucumberjs
run: |
npm ci --production
../../../saucectl run
imagerunner:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN
run: ./saucectl run -c .sauce/imagerunner.yml
async-test:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download saucectl Binary
uses: actions/download-artifact@v4
with:
name: saucectlbin
- name: Set Permissions
run: chmod +x ./saucectl
- name: Saucectl RUN
run: |
./saucectl run -c .sauce/espresso.yml --async --timeout 10m