chore(deps-dev): bump eslint from 9.15.0 to 9.16.0 (#350) #640
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: 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 |