Skip to content

chore(deps-dev): bump eslint from 9.16.0 to 9.17.0 #661

chore(deps-dev): bump eslint from 9.16.0 to 9.17.0

chore(deps-dev): bump eslint from 9.16.0 to 9.17.0 #661

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
tags: ['v**']
workflow_dispatch:
jobs:
test_and_lint:
name: Test and lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- run: npm run lint
end_to_end_tests_macos:
name: Run end to end tests (GitHub.com to GitHub.com on macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename macOS binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-macos bin/gh-migrate-project-darwin-amd64
- name: Create `output` directory
run: mkdir output
- name: Make macOS binary executable
run: chmod +x bin/gh-migrate-project-darwin-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-darwin-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GitHub.com
run: ./bin/gh-migrate-project-darwin-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: macos-outputs
path: output
end_to_end_tests_linux:
name: Run end to end tests (GitHub.com to GitHub.com on Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Create `output` directory
run: mkdir output
- name: Make Linux binary executable
run: chmod +x bin/gh-migrate-project-linux-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: linux-outputs
path: output
end_to_end_tests_windows:
name: Run end to end tests (GitHub.com to GitHub.com on Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Windows binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-win.exe bin/gh-migrate-project-windows-amd64.exe
- name: Create `output` directory
run: mkdir output
- name: Export a project from GitHub.com
run: bin/gh-migrate-project-windows-amd64.exe export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GitHub.com
run: bin/gh-migrate-project-windows-amd64.exe import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: windows-outputs
path: output
end_to_end_tests_linux_ghes_315:
name: Run end to end tests (GitHub.com to GHES v3.15 on Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Create `output` directory
run: mkdir output
- name: Make Linux binary executable
run: chmod +x bin/gh-migrate-project-linux-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GHES
run: ./bin/gh-migrate-project-linux-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry --base-url ${{ secrets.GHES_315_BASE_URL }}
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GHES_315_ACCESS_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: linux-outputs-ghes-315
path: output
end_to_end_tests_linux_ghes_314:
name: Run end to end tests (GitHub.com to GHES v3.14 on Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Create `output` directory
run: mkdir output
- name: Make Linux binary executable
run: chmod +x bin/gh-migrate-project-linux-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GHES
run: ./bin/gh-migrate-project-linux-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry --base-url ${{ secrets.GHES_314_BASE_URL }}
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GHES_314_ACCESS_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: linux-outputs-ghes-314
path: output
end_to_end_tests_linux_ghes_313:
name: Run end to end tests (GitHub.com to GHES v3.13 on Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Create `output` directory
run: mkdir output
- name: Make Linux binary executable
run: chmod +x bin/gh-migrate-project-linux-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GHES
run: ./bin/gh-migrate-project-linux-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry --base-url ${{ secrets.GHES_313_BASE_URL }}
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GHES_313_ACCESS_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: linux-outputs-ghes-313
path: output
end_to_end_tests_linux_ghes_312:
name: Run end to end tests (GitHub.com to GHES v3.12 on Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Create `output` directory
run: mkdir output
- name: Make Linux binary executable
run: chmod +x bin/gh-migrate-project-linux-amd64
- name: Export a project from GitHub.com
run: ./bin/gh-migrate-project-linux-amd64 export --project-owner gh-migrate-project-sandbox --project-number 1026 --disable-telemetry
env:
EXPORT_GITHUB_TOKEN: ${{ secrets.GH_MIGRATE_PROJECT_SANDBOX_TOKEN }}
- name: Copy outputs to output/ directory
run: cp project.json output/ && cp repository-mappings.csv output/
- name: Print outputted project data
run: cat project.json
- name: Print repository mappings template
run: cat repository-mappings.csv
- name: Fill in repository mappings template
run: |
echo "source_repository,target_repository
gh-migrate-project-sandbox/initial-repository,gh-migrate-project-sandbox/initial-repository" > completed-repository-mappings.csv
- name: Import project to GHES
run: ./bin/gh-migrate-project-linux-amd64 import --input-path project.json --repository-mappings-path completed-repository-mappings.csv --project-owner gh-migrate-project-sandbox --disable-telemetry --base-url ${{ secrets.GHES_312_BASE_URL }}
env:
IMPORT_GITHUB_TOKEN: ${{ secrets.GHES_312_ACCESS_TOKEN }}
- name: Upload outputs as artifacts
uses: actions/upload-artifact@v4
with:
name: linux-outputs-ghes-312
path: output
package:
name: Package binaries
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/[email protected]
with:
node-version: 20.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Generate binaries for macOS, Linux and Windows
run: npm run package
- name: Rename macOS binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-macos bin/gh-migrate-project-darwin-amd64
- name: Rename Windows binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-win.exe bin/gh-migrate-project-windows-amd64.exe
- name: Rename Linux binary to conform to GitHub CLI extension rules
run: mv bin/migrate-project-linux bin/gh-migrate-project-linux-amd64
- name: Upload macOS binary as artifact
uses: actions/upload-artifact@v4
with:
name: package-macos
path: bin/gh-migrate-project-darwin-amd64
- name: Upload Linux binary as artifact
uses: actions/upload-artifact@v4
with:
name: package-linux
path: bin/gh-migrate-project-linux-amd64
- name: Upload Windows binary as artifact
uses: actions/upload-artifact@v4
with:
name: package-windows
path: bin/gh-migrate-project-windows-amd64.exe
check_release_tag_matches_version:
name: Check release tag matches version
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs:
[
'package',
'test_and_lint',
'end_to_end_tests_linux_ghes_315',
'end_to_end_tests_linux_ghes_314',
'end_to_end_tests_linux_ghes_313',
'end_to_end_tests_linux_ghes_312',
'end_to_end_tests_windows',
'end_to_end_tests_linux',
'end_to_end_tests_macos',
]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get the version
id: get_tag_version
run: echo ::set-output name=version::${GITHUB_REF#refs/tags/}
- name: Check version matches
run: ./script/check-version ${{ steps.get_tag_version.outputs.version }}
create_release:
name: Create release
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: ['check_release_tag_matches_version']
permissions:
contents: write
steps:
- name: Download Windows binary
uses: actions/download-artifact@v4
with:
name: package-windows
path: bin
- name: Download macOS binary
uses: actions/download-artifact@v4
with:
name: package-macos
path: bin
- name: Download Linux binary
uses: actions/download-artifact@v4
with:
name: package-linux
path: bin
- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
files: |
bin/gh-migrate-project-darwin-amd64
bin/gh-migrate-project-linux-amd64
bin/gh-migrate-project-windows-amd64.exe
generate_release_notes: true