Skip to content

Commit f0a5e14

Browse files
authored
Merge pull request #1124 from github/3.10.3-patch
3.10.1 patch
2 parents 6700986 + 0f9a5a3 commit f0a5e14

File tree

16 files changed

+269
-33
lines changed

16 files changed

+269
-33
lines changed

.github/linters/.yaml-lint.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
###########################################
3+
# These are the rules used for #
4+
# linting all the yaml files in the stack #
5+
# NOTE: #
6+
# You can disable line with: #
7+
# # yamllint disable-line #
8+
###########################################
9+
rules:
10+
braces:
11+
level: warning
12+
min-spaces-inside: 0
13+
max-spaces-inside: 0
14+
min-spaces-inside-empty: 1
15+
max-spaces-inside-empty: 5
16+
brackets:
17+
level: warning
18+
min-spaces-inside: 0
19+
max-spaces-inside: 0
20+
min-spaces-inside-empty: 1
21+
max-spaces-inside-empty: 5
22+
colons:
23+
level: warning
24+
max-spaces-before: 0
25+
max-spaces-after: 1
26+
commas:
27+
level: warning
28+
max-spaces-before: 0
29+
min-spaces-after: 1
30+
max-spaces-after: 1
31+
comments: disable
32+
comments-indentation: disable
33+
document-end: disable
34+
document-start: disable
35+
empty-lines:
36+
level: warning
37+
max: 2
38+
max-start: 0
39+
max-end: 0
40+
hyphens:
41+
level: warning
42+
max-spaces-after: 1
43+
indentation:
44+
level: warning
45+
spaces: consistent
46+
indent-sequences: true
47+
check-multi-line-strings: false
48+
key-duplicates: enable
49+
line-length: disable
50+
new-line-at-end-of-file: disable
51+
new-lines:
52+
type: unix
53+
trailing-spaces: disable
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
name: Build and Release
3+
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
gh-token:
8+
description: 'GitHub Token - used to create a commit in the backup-utils repo'
9+
required: true
10+
type: string
11+
version:
12+
description: 'Version - patch version of the release (e.g. x.y.z)'
13+
required: true
14+
type: string
15+
draft:
16+
description: 'Draft - true if the release should be a draft'
17+
required: true
18+
type: boolean
19+
default: true
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
steps:
25+
# resulting token still gets denied by the backup-utils repo
26+
# see: https://github.com/actions/create-github-app-token/pull/46
27+
# - uses: timreimherr/create-github-app-token@main
28+
# id: app-token
29+
# with:
30+
# # required
31+
# app_id: ${{ vars.RELEASE_CONTROLLER_APP_ID }}
32+
# private_key: ${{ secrets.RELEASE_CONTROLLER_APP_PRIVATE_KEY }}
33+
# owner: ${{ github.repository_owner }}
34+
# repositories: backup-utils,backup-utils-private
35+
- name: Checkout backup-utils-private
36+
uses: actions/checkout@v4
37+
with:
38+
token: ${{ github.event.inputs.gh-token }}
39+
repository: github/backup-utils-private
40+
- name: Install dependencies
41+
run: |
42+
sudo apt-get update -y
43+
sudo apt-get install -y moreutils debhelper help2man devscripts gzip
44+
- name: Create tag # this is required for the build scripts
45+
run: |
46+
git config user.name "${{ github.actor }}"
47+
git config user.email "[email protected]"
48+
git tag -a "v${{ github.event.inputs.version }}" -m "v${{ github.event.inputs.version }}"
49+
git push origin "v${{ github.event.inputs.version }}"
50+
- name: Package deb
51+
run: |
52+
./script/package-deb
53+
# many need to remove this once release-notes compilation is automated
54+
- name: Rename deb artifact
55+
run: |
56+
for file in dist/github-backup-utils_*_all.deb; do
57+
if [[ -f "$file" ]]; then
58+
mv "$file" "dist/github-backup-utils_${{ github.event.inputs.version }}_all.deb"
59+
fi
60+
done
61+
- name: Upload deb artifact
62+
uses: actions/upload-artifact@v3
63+
with:
64+
name: github-backup-utils_${{ github.event.inputs.version }}_all.deb
65+
path: |
66+
dist/github-backup-utils_${{ github.event.inputs.version }}_all.deb
67+
- name: Package tarball
68+
run: |
69+
./script/package-tarball
70+
- name: Upload tarball artifact
71+
uses: actions/upload-artifact@v3
72+
with:
73+
name: github-backup-utils-v${{ github.event.inputs.version }}.tar.gz
74+
path: |
75+
dist/github-backup-utils-v${{ github.event.inputs.version }}.tar.gz
76+
release:
77+
needs: build
78+
runs-on: ubuntu-latest
79+
outputs:
80+
commit_hash: ${{ steps.empty-commit.outputs.commit_hash }}
81+
steps:
82+
# resulting token still gets denied by the backup-utils repo
83+
# see: https://github.com/actions/create-github-app-token/pull/46
84+
# - uses: timreimherr/create-github-app-token@main
85+
# id: app-token
86+
# with:
87+
# app_id: ${{ vars.RELEASE_CONTROLLER_APP_ID }}
88+
# private_key: ${{ secrets.RELEASE_CONTROLLER_APP_PRIVATE_KEY }}
89+
# owner: ${{ github.repository_owner }}
90+
# repositories: backup-utils,backup-utils-private
91+
- name: Checkout backup-utils
92+
uses: actions/checkout@v4
93+
with:
94+
token: ${{ github.event.inputs.gh-token }}
95+
repository: github/backup-utils
96+
ref: master
97+
- name: Create empty commit
98+
uses: stefanzweifel/git-auto-commit-action@v4
99+
id: empty-commit
100+
with:
101+
branch: master
102+
commit_message: "${{ github.event.inputs.version }} release"
103+
commit_user_name: "${{ github.actor }}"
104+
commit_user_email: "[email protected]"
105+
commit_options: "--allow-empty"
106+
skip_dirty_check: true
107+
- name: Checkout backup-utils
108+
uses: actions/checkout@v4
109+
with:
110+
token: ${{ github.event.inputs.gh-token }}
111+
repository: github/backup-utils-private
112+
- name: Download deb artifact
113+
uses: actions/download-artifact@v3
114+
with:
115+
name: github-backup-utils_${{ github.event.inputs.version }}_all.deb
116+
- name: Download tarball artifact
117+
uses: actions/download-artifact@v3
118+
with:
119+
name: github-backup-utils-v${{ github.event.inputs.version }}.tar.gz
120+
- name: Create Release
121+
uses: ncipollo/release-action@v1
122+
with:
123+
token: ${{ github.event.inputs.gh-token }}
124+
repo: backup-utils
125+
name: |
126+
GitHub Enterprise Server Backup Utilities v${{ github.event.inputs.version }}
127+
artifacts: |
128+
github-backup-utils-v${{ github.event.inputs.version }}.tar.gz, \
129+
github-backup-utils_${{ github.event.inputs.version }}_all.deb
130+
tag: v${{ github.event.inputs.version }}
131+
commit: ${{ steps.empty-commit.outputs.commit_hash }}
132+
bodyFile: release-notes/${{ github.event.inputs.version }}.md
133+
draft: ${{ github.event.inputs.draft }}
134+
allowUpdates: true
135+
artifactContentType: "raw"
136+
137+
138+
139+

.github/workflows/lint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
name: Lint Code Base
23

34
on:
@@ -19,3 +20,4 @@ jobs:
1920
env:
2021
VALIDATE_ALL_CODEBASE: false
2122
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
FILTER_REGEX_EXCLUDE: .*release-notes/.*

.github/workflows/main.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
name: Test and build
22

3-
on: [pull_request]
3+
on: [pull_request, workflow_dispatch]
44

55
jobs:
66
build:
77
strategy:
88
matrix:
9-
# macos-latest references are kept here for historical purposes. removed macos-latest from the
10-
#matrix as it is not a typical case for users and causes a lot of friction with other linux-based
11-
# installs. Recommend developing on codespaces or using an ubuntu container.
129
os: ['ubuntu-22.04', 'ubuntu-20.04']
1310
fail-fast: false
1411
runs-on: ${{ matrix.os }}
@@ -20,12 +17,6 @@ jobs:
2017
wget "https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.linux.x86_64.tar.xz"
2118
tar --xz -xvf "shellcheck-stable.linux.x86_64.tar.xz"
2219
sudo cp shellcheck-stable/shellcheck /usr/bin/shellcheck
23-
if: matrix.os != 'macos-latest'
24-
- name: Install Dependencies (macOS)
25-
run: |
26-
brew install gnu-tar shellcheck jq pigz coreutils gnu-sed gnu-getopt wget
27-
brew install moreutils gawk
28-
if: matrix.os == 'macos-latest'
2920
- name: Get Sources
3021
uses: actions/checkout@v3
3122
- name: Test
@@ -35,4 +26,3 @@ jobs:
3526
shell: bash
3627
- name: Build (Linux)
3728
run: DEB_BUILD_OPTIONS=nocheck debuild -us -uc
38-
if: matrix.os != 'macos-latest'

.releaseignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ownership.yaml
2+
.github

bin/ghe-backup

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,11 @@ echo "$GHE_REMOTE_VERSION" > version
163163
# Setup progress tracking
164164
init-progress
165165
export PROGRESS_TOTAL=14 # Minimum number of steps in backup is 14
166-
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress-total
166+
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress/total
167167
export PROGRESS_TYPE="Backup"
168-
echo "$PROGRESS_TYPE" > /tmp/backup-utils-progress-type
168+
echo "$PROGRESS_TYPE" > /tmp/backup-utils-progress/type
169169
export PROGRESS=0 # Used to track progress of backup
170-
echo "$PROGRESS" > /tmp/backup-utils-progress
170+
echo "$PROGRESS" > /tmp/backup-utils-progress/progress
171171

172172
OPTIONAL_STEPS=0
173173
# Backup actions+mssql
@@ -191,7 +191,7 @@ if [ "$GHE_BACKUP_PAGES" != "no" ]; then
191191
fi
192192

193193
PROGRESS_TOTAL=$((OPTIONAL_STEPS + PROGRESS_TOTAL)) # Minimum number of steps in backup is 14
194-
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress-total
194+
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress/total
195195

196196
# check that incremental settings are valid if set
197197
is_inc=$(is_incremental_backup_feature_on)

bin/ghe-backup-progress

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,26 +31,26 @@ while true; do
3131
done
3232

3333
check_for_progress_file() {
34-
if [ ! -f /tmp/backup-utils-progress-info ]; then
34+
if [ ! -f /tmp/backup-utils-progress/info ]; then
3535
echo "No progress file found. Has a backup or restore been started?"
3636
exit 1
3737
fi
3838
}
3939

4040
if [ -n "$ONCE" ]; then
4141
check_for_progress_file
42-
cat /tmp/backup-utils-progress-info
42+
cat /tmp/backup-utils-progress/info
4343
else
4444
check_for_progress_file
4545
clear
46-
cat /tmp/backup-utils-progress-info
46+
cat /tmp/backup-utils-progress/info
4747
while true; do
4848
if read -r -t 1 -n 1; then
4949
clear
5050
exit ;
5151
else
5252
clear
53-
cat /tmp/backup-utils-progress-info
53+
cat /tmp/backup-utils-progress/info
5454
fi
5555
done
5656
fi

bin/ghe-restore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,11 +315,11 @@ fi
315315
export PROGRESS_TOTAL=$((OPTIONAL_STEPS + 7))
316316

317317
init-progress
318-
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress-total
318+
echo "$PROGRESS_TOTAL" > /tmp/backup-utils-progress/total
319319
export PROGRESS_TYPE="Restore"
320-
echo "$PROGRESS_TYPE" > /tmp/backup-utils-progress-type
320+
echo "$PROGRESS_TYPE" > /tmp/backup-utils-progress/type
321321
export PROGRESS=0 # Used to track progress of restore
322-
echo "$PROGRESS" > /tmp/backup-utils-progress
322+
echo "$PROGRESS" > /tmp/backup-utils-progress/progress
323323

324324
# Log restore start message locally and in /var/log/syslog on remote instance
325325
START_TIME=$(date +%s)

script/cibuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -e
55
# Enable verbose logging of ssh commands
66
export GHE_VERBOSE_SSH=true
77

8-
if ! find test -name "test-*.sh" -print0 | xargs -0 -P 4 -n 1 /bin/bash; then
8+
if ! find test -name "test-*.sh" -print0 | xargs -0 -n 1 /bin/bash; then
99
exit 1
1010
fi
1111

script/package-deb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ set -e
88
# Change into project root
99
cd "$(dirname "$0")"/..
1010

11+
# Fetch tags from remote repository
12+
git fetch --tags
13+
1114
# Basic package name and version.
1215
PKG_BASE="github-backup-utils"
1316
PKG_VERS="$(git describe --tags)"
@@ -22,6 +25,14 @@ mkdir -p dist/debuild
2225
distdir="$(pwd)/dist/debuild/$PKG_NAME"
2326
git clone -q . "$distdir"
2427
cd "$distdir"
28+
29+
echo "Removing files listed in .releaseignore ..."
30+
while IFS= read -r line; do
31+
rm -rf "$line"
32+
done < .releaseignore
33+
34+
echo "Removing .releaseignore ..."
35+
rm -f .releaseignore
2536
git checkout -q "$PKG_HEAD"
2637

2738
debuild -uc -us 1>&2

0 commit comments

Comments
 (0)