mirror of
https://github.com/actions/checkout.git
synced 2026-07-07 21:55:41 +00:00
Compare commits
No commits in common. "b32f140b0c872d58512e0a66172253c302617b90" and "b4ffde65f46336ab88eb53be808477a3936bae11" have entirely different histories.
b32f140b0c
...
b4ffde65f4
19
.github/workflows/test.yml
vendored
19
.github/workflows/test.yml
vendored
@ -7,11 +7,6 @@ on:
|
|||||||
- main
|
- main
|
||||||
- releases/*
|
- releases/*
|
||||||
|
|
||||||
|
|
||||||
# Note that when you see patterns like "ref: test-data/v2/basic" within this workflow,
|
|
||||||
# these refer to "test-data" branches on this actions/checkout repo.
|
|
||||||
# (For example, test-data/v2/basic -> https://github.com/actions/checkout/tree/test-data/v2/basic)
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -100,16 +95,6 @@ jobs:
|
|||||||
- name: Verify sparse checkout
|
- name: Verify sparse checkout
|
||||||
run: __test__/verify-sparse-checkout.sh
|
run: __test__/verify-sparse-checkout.sh
|
||||||
|
|
||||||
# Disabled sparse checkout in existing checkout
|
|
||||||
- name: Disabled sparse checkout
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
path: sparse-checkout
|
|
||||||
|
|
||||||
- name: Verify disabled sparse checkout
|
|
||||||
shell: bash
|
|
||||||
run: set -x && ls -l sparse-checkout/src/git-command-manager.ts
|
|
||||||
|
|
||||||
# Sparse checkout (non-cone mode)
|
# Sparse checkout (non-cone mode)
|
||||||
- name: Sparse checkout (non-cone mode)
|
- name: Sparse checkout (non-cone mode)
|
||||||
uses: ./
|
uses: ./
|
||||||
@ -190,7 +175,7 @@ jobs:
|
|||||||
test-proxy:
|
test-proxy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/actions/test-ubuntu-git:main.20240221.114913.703z
|
image: alpine/git:latest
|
||||||
options: --dns 127.0.0.1
|
options: --dns 127.0.0.1
|
||||||
services:
|
services:
|
||||||
squid-proxy:
|
squid-proxy:
|
||||||
@ -294,4 +279,4 @@ jobs:
|
|||||||
- name: Fix Checkout v3
|
- name: Fix Checkout v3
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: v3
|
path: v3
|
||||||
59
.github/workflows/update-test-ubuntu-git.yml
vendored
59
.github/workflows/update-test-ubuntu-git.yml
vendored
@ -1,59 +0,0 @@
|
|||||||
name: Publish test-ubuntu-git Container
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Use an on demand workflow trigger.
|
|
||||||
# (Forked copies of actions/checkout won't have permission to update GHCR.io/actions,
|
|
||||||
# so avoid trigger events that run automatically.)
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
publish:
|
|
||||||
description: 'Publish to ghcr.io? (main branch only)'
|
|
||||||
type: boolean
|
|
||||||
required: true
|
|
||||||
default: false
|
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY: ghcr.io
|
|
||||||
IMAGE_NAME: actions/test-ubuntu-git
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-push-image:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Use `docker/login-action` to log in to GHCR.io.
|
|
||||||
# Once published, the packages are scoped to the account defined here.
|
|
||||||
- name: Log in to the ghcr.io container registry
|
|
||||||
uses: docker/login-action@v3.0.0
|
|
||||||
with:
|
|
||||||
registry: ${{ env.REGISTRY }}
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Format Timestamp
|
|
||||||
id: timestamp
|
|
||||||
# Use `date` with a custom format to achieve the key=value format GITHUB_OUTPUT expects.
|
|
||||||
run: date -u "+now=%Y%m%d.%H%M%S.%3NZ" >> "$GITHUB_OUTPUT"
|
|
||||||
|
|
||||||
- name: Issue Image Publish Warning
|
|
||||||
if: ${{ inputs.publish && github.ref_name != 'main' }}
|
|
||||||
run: echo "::warning::test-ubuntu-git images can only be published from the actions/checkout 'main' branch. Workflow will continue with push/publish disabled."
|
|
||||||
|
|
||||||
# Use `docker/build-push-action` to build (and optionally publish) the image.
|
|
||||||
- name: Build Docker Image (with optional Push)
|
|
||||||
uses: docker/build-push-action@v5.1.0
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: images/test-ubuntu-git.Dockerfile
|
|
||||||
# For now, attempts to push to ghcr.io must target the `main` branch.
|
|
||||||
# In the future, consider also allowing attempts from `releases/*` branches.
|
|
||||||
push: ${{ inputs.publish && github.ref_name == 'main' }}
|
|
||||||
tags: |
|
|
||||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}.${{ steps.timestamp.outputs.now }}
|
|
||||||
@ -727,7 +727,6 @@ async function setup(testName: string): Promise<void> {
|
|||||||
branchDelete: jest.fn(),
|
branchDelete: jest.fn(),
|
||||||
branchExists: jest.fn(),
|
branchExists: jest.fn(),
|
||||||
branchList: jest.fn(),
|
branchList: jest.fn(),
|
||||||
disableSparseCheckout: jest.fn(),
|
|
||||||
sparseCheckout: jest.fn(),
|
sparseCheckout: jest.fn(),
|
||||||
sparseCheckoutNonConeMode: jest.fn(),
|
sparseCheckoutNonConeMode: jest.fn(),
|
||||||
checkout: jest.fn(),
|
checkout: jest.fn(),
|
||||||
|
|||||||
@ -462,7 +462,6 @@ async function setup(testName: string): Promise<void> {
|
|||||||
branchList: jest.fn(async () => {
|
branchList: jest.fn(async () => {
|
||||||
return []
|
return []
|
||||||
}),
|
}),
|
||||||
disableSparseCheckout: jest.fn(),
|
|
||||||
sparseCheckout: jest.fn(),
|
sparseCheckout: jest.fn(),
|
||||||
sparseCheckoutNonConeMode: jest.fn(),
|
sparseCheckoutNonConeMode: jest.fn(),
|
||||||
checkout: jest.fn(),
|
checkout: jest.fn(),
|
||||||
|
|||||||
10
dist/index.js
vendored
10
dist/index.js
vendored
@ -576,11 +576,6 @@ class GitCommandManager {
|
|||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
disableSparseCheckout() {
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
|
||||||
yield this.execGit(['sparse-checkout', 'disable']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
sparseCheckout(sparseCheckout) {
|
sparseCheckout(sparseCheckout) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield this.execGit(['sparse-checkout', 'set', ...sparseCheckout]);
|
yield this.execGit(['sparse-checkout', 'set', ...sparseCheckout]);
|
||||||
@ -1287,10 +1282,7 @@ function getSource(settings) {
|
|||||||
core.endGroup();
|
core.endGroup();
|
||||||
}
|
}
|
||||||
// Sparse checkout
|
// Sparse checkout
|
||||||
if (!settings.sparseCheckout) {
|
if (settings.sparseCheckout) {
|
||||||
yield git.disableSparseCheckout();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
core.startGroup('Setting up sparse checkout');
|
core.startGroup('Setting up sparse checkout');
|
||||||
if (settings.sparseCheckoutConeMode) {
|
if (settings.sparseCheckoutConeMode) {
|
||||||
yield git.sparseCheckout(settings.sparseCheckout);
|
yield git.sparseCheckout(settings.sparseCheckout);
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
# Defines the test-ubuntu-git Container Image.
|
|
||||||
# Consumed by actions/checkout CI/CD validation workflows.
|
|
||||||
|
|
||||||
FROM ubuntu:latest
|
|
||||||
|
|
||||||
RUN apt update
|
|
||||||
RUN apt install -y git
|
|
||||||
|
|
||||||
LABEL org.opencontainers.image.title="Ubuntu + git (validation image)"
|
|
||||||
LABEL org.opencontainers.image.description="Ubuntu image with git pre-installed. Intended primarily for testing `actions/checkout` during CI/CD workflows."
|
|
||||||
LABEL org.opencontainers.image.documentation="https://github.com/actions/checkout/tree/main/images/test-ubuntu-git.md"
|
|
||||||
LABEL org.opencontainers.image.licenses=MIT
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
# `test-ubuntu-git` Container Image
|
|
||||||
|
|
||||||
[](https://github.com/actions/checkout/actions/workflows/update-test-ubuntu-git.yml)
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
`test-ubuntu-git` is a container image hosted on the GitHub Container Registry, `ghcr.io`.
|
|
||||||
|
|
||||||
It is intended primarily for testing the [`actions/checkout` repository](https://github.com/actions/checkout) as part of `actions/checkout`'s CI/CD workflows.
|
|
||||||
|
|
||||||
The composition of `test-ubuntu-git` is intentionally minimal. It is comprised of [git](https://git-scm.com/) installed on top of a [base-level ubuntu image](https://hub.docker.com/_/ubuntu/tags).
|
|
||||||
|
|
||||||
# License
|
|
||||||
|
|
||||||
`test-ubuntu-git` is released under the [MIT License](/LICENSE).
|
|
||||||
@ -17,7 +17,6 @@ export interface IGitCommandManager {
|
|||||||
branchDelete(remote: boolean, branch: string): Promise<void>
|
branchDelete(remote: boolean, branch: string): Promise<void>
|
||||||
branchExists(remote: boolean, pattern: string): Promise<boolean>
|
branchExists(remote: boolean, pattern: string): Promise<boolean>
|
||||||
branchList(remote: boolean): Promise<string[]>
|
branchList(remote: boolean): Promise<string[]>
|
||||||
disableSparseCheckout(): Promise<void>
|
|
||||||
sparseCheckout(sparseCheckout: string[]): Promise<void>
|
sparseCheckout(sparseCheckout: string[]): Promise<void>
|
||||||
sparseCheckoutNonConeMode(sparseCheckout: string[]): Promise<void>
|
sparseCheckoutNonConeMode(sparseCheckout: string[]): Promise<void>
|
||||||
checkout(ref: string, startPoint: string): Promise<void>
|
checkout(ref: string, startPoint: string): Promise<void>
|
||||||
@ -172,10 +171,6 @@ class GitCommandManager {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
async disableSparseCheckout(): Promise<void> {
|
|
||||||
await this.execGit(['sparse-checkout', 'disable'])
|
|
||||||
}
|
|
||||||
|
|
||||||
async sparseCheckout(sparseCheckout: string[]): Promise<void> {
|
async sparseCheckout(sparseCheckout: string[]): Promise<void> {
|
||||||
await this.execGit(['sparse-checkout', 'set', ...sparseCheckout])
|
await this.execGit(['sparse-checkout', 'set', ...sparseCheckout])
|
||||||
}
|
}
|
||||||
|
|||||||
@ -208,9 +208,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Sparse checkout
|
// Sparse checkout
|
||||||
if (!settings.sparseCheckout) {
|
if (settings.sparseCheckout) {
|
||||||
await git.disableSparseCheckout()
|
|
||||||
} else {
|
|
||||||
core.startGroup('Setting up sparse checkout')
|
core.startGroup('Setting up sparse checkout')
|
||||||
if (settings.sparseCheckoutConeMode) {
|
if (settings.sparseCheckoutConeMode) {
|
||||||
await git.sparseCheckout(settings.sparseCheckout)
|
await git.sparseCheckout(settings.sparseCheckout)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user