mirror of
https://github.com/kopia/kopia.git
synced 2026-03-11 18:56:28 -04:00
Bumps the github-actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [actions/setup-go](https://github.com/actions/setup-go). Updates `actions/checkout` from 4.1.4 to 4.1.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v4.1.5</h2> <h2>What's Changed</h2> <ul> <li>Update NPM dependencies by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li> <li>Bump github/codeql-action from 2 to 3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li> <li>Bump actions/setup-node from 1 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li> <li>Bump actions/upload-artifact from 2 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li> <li>README: Suggest <code>user.email</code> to be <code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4.1.4...v4.1.5">https://github.com/actions/checkout/compare/v4.1.4...v4.1.5</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="44c2b7a8a4"><code>44c2b7a</code></a> README: Suggest <code>user.email</code> to be `41898282+github-actions[bot]<a href="https://github.com/users"><code>@users</code></a>.norepl...</li> <li><a href="8459bc0c7e"><code>8459bc0</code></a> Bump actions/upload-artifact from 2 to 4 (<a href="https://redirect.github.com/actions/checkout/issues/1695">#1695</a>)</li> <li><a href="3f603f6d5e"><code>3f603f6</code></a> Bump actions/setup-node from 1 to 4 (<a href="https://redirect.github.com/actions/checkout/issues/1696">#1696</a>)</li> <li><a href="fd084cde18"><code>fd084cd</code></a> Bump github/codeql-action from 2 to 3 (<a href="https://redirect.github.com/actions/checkout/issues/1694">#1694</a>)</li> <li><a href="9c1e94e0ad"><code>9c1e94e</code></a> Update NPM dependencies (<a href="https://redirect.github.com/actions/checkout/issues/1703">#1703</a>)</li> <li>See full diff in <a href="0ad4b8fada...44c2b7a8a4">compare view</a></li> </ul> </details> <br /> Updates `actions/setup-go` from 5.0.0 to 5.0.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-go/releases">actions/setup-go's releases</a>.</em></p> <blockquote> <h2>v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>Bump undici from 5.28.2 to 5.28.3 and dependencies upgrade by <a href="https://github.com/dependabot"><code>@dependabot</code></a> , <a href="https://github.com/HarithaVattikuti"><code>@HarithaVattikuti</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/465">actions/setup-go#465</a></li> <li>Update documentation with latest V5 release notes by <a href="https://github.com/ab"><code>@ab</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/459">actions/setup-go#459</a></li> <li>Update version documentation by <a href="https://github.com/178inaba"><code>@178inaba</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/458">actions/setup-go#458</a></li> <li>Documentation update of <code>actions/setup-go</code> to v5 by <a href="https://github.com/chenrui333"><code>@chenrui333</code></a> in <a href="https://redirect.github.com/actions/setup-go/pull/449">actions/setup-go#449</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ab"><code>@ab</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-go/pull/459">actions/setup-go#459</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-go/compare/v5.0.0...v5.0.1">https://github.com/actions/setup-go/compare/v5.0.0...v5.0.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="cdcb360436"><code>cdcb360</code></a> Remove the description of the old go.mod specification (<a href="https://redirect.github.com/actions/setup-go/issues/458">#458</a>)</li> <li><a href="99176a8f9a"><code>99176a8</code></a> Update README.md with V5 release notes (<a href="https://redirect.github.com/actions/setup-go/issues/459">#459</a>)</li> <li><a href="be1aa1186e"><code>be1aa11</code></a> Bump undici from 5.28.2 to 5.28.3 (<a href="https://redirect.github.com/actions/setup-go/issues/465">#465</a>)</li> <li><a href="6c1fd22b67"><code>6c1fd22</code></a> docs: bump <code>actions/setup-go</code> to v5 (<a href="https://redirect.github.com/actions/setup-go/issues/449">#449</a>)</li> <li>See full diff in <a href="0c52d547c9...cdcb360436">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
204 lines
7.6 KiB
YAML
204 lines
7.6 KiB
YAML
name: Build
|
|
on:
|
|
pull_request:
|
|
branches: [ master ]
|
|
push:
|
|
# ci-sandbox is a branch dedicated to testing post-submit code.
|
|
branches: [ master, artifacts-pr ]
|
|
tags:
|
|
- v*
|
|
schedule:
|
|
# run on Mondays at 8AM
|
|
- cron: '0 8 * * 1'
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
env:
|
|
# environment variables shared between build steps
|
|
# do not include sensitive credentials and tokens here, instead pass them
|
|
# directly to tools that need them to limit the blast radius in case one of them
|
|
# becomes compromised and leaks credentials to external sites.
|
|
# required by Makefile
|
|
UNIX_SHELL_ON_WINDOWS: true
|
|
# set to true if Publish Artifacts should run
|
|
PUBLISH_ARTIFACTS: ${{ secrets.PUBLISH_ARTIFACTS }}
|
|
# where to publish releases for non-tagged commits
|
|
NON_TAG_RELEASE_REPO: ${{ secrets.NON_TAG_RELEASE_REPO }}
|
|
# RPM and APT packages GCS bucket/hostname.
|
|
PACKAGES_HOST: ${{ secrets.PACKAGES_HOST }}
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
include:
|
|
- os: [self-hosted, ARM64]
|
|
# - os: [self-hosted, ARMHF]
|
|
name: Make
|
|
runs-on: ${{ matrix.os }}
|
|
continue-on-error: ${{ contains(matrix.os, 'self-hosted') }}
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Set up Go
|
|
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
check-latest: true
|
|
id: go
|
|
if: ${{ !contains(matrix.os, 'ARMHF') }}
|
|
- name: Install GoLang for ARMHF
|
|
run: "echo /usr/local/go/bin >> $GITHUB_PATH; rm -rf /usr/local/go && mkdir -p /usr/local/go && curl -s -L https://go.dev/dl/go1.19.2.linux-armv6l.tar.gz | tar -C /usr/local -xz"
|
|
if: ${{ contains(matrix.os, 'ARMHF') }}
|
|
- name: Install Windows-specific packages
|
|
run: "choco install --no-progress -y make zip unzip curl"
|
|
if: ${{ contains(matrix.os, 'windows') }}
|
|
- name: Install macOS-specific packages
|
|
run: "sudo xcode-select -r"
|
|
if: ${{ contains(matrix.os, 'macos') }}
|
|
- name: Setup
|
|
run: make -j4 ci-setup
|
|
- name: Install macOS certificates
|
|
# install signing tools and credentials for macOS and Windows outside of main
|
|
# build process.
|
|
run: make macos-certificates
|
|
env:
|
|
# macOS signing certificate (base64-encoded), used by Electron Builder
|
|
CSC_LINK: ${{ secrets.CSC_LINK }}
|
|
CSC_KEYCHAIN: ${{ secrets.CSC_KEYCHAIN }}
|
|
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
|
MACOS_SIGNING_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY }}
|
|
if: ${{ contains(matrix.os, 'macos') }}
|
|
- name: Install Windows signing tools
|
|
# install signing tools and credentials for macOS and Windows outside of main
|
|
# build process.
|
|
run: make windows-signing-tools
|
|
env:
|
|
# tool to install Windows signing certificate
|
|
WINDOWS_SIGNING_TOOLS_URL: ${{ secrets.WINDOWS_SIGNING_TOOLS_URL }}
|
|
WINDOWS_SIGN_TOOL: ${{ secrets.WINDOWS_SIGN_TOOL }}
|
|
if: ${{ contains(matrix.os, 'windows') }}
|
|
- name: Build
|
|
run: make ci-build
|
|
timeout-minutes: 40
|
|
env:
|
|
# Apple credentials for notarizaton, used by Electron Builder
|
|
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
|
|
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
|
|
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
|
|
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
|
|
KOPIA_UI_NOTARIZE: ${{ secrets.KOPIA_UI_NOTARIZE }}
|
|
|
|
# tool to install Windows signing certificate
|
|
WINDOWS_SIGN_USER: ${{ secrets.WINDOWS_SIGN_USER }}
|
|
WINDOWS_SIGN_AUTH: ${{ secrets.WINDOWS_SIGN_AUTH }}
|
|
WINDOWS_CERT_SHA1: ${{ secrets.WINDOWS_CERT_SHA1 }}
|
|
WINDOWS_SIGN_TOOL: ${{ secrets.WINDOWS_SIGN_TOOL }}
|
|
|
|
# macOS signing certificate (base64-encoded), used by Electron Builder
|
|
MACOS_SIGNING_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY }}
|
|
- name: Upload Kopia Artifacts
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: kopia-${{ matrix.os }}
|
|
path: |
|
|
dist/*.md
|
|
dist/*.rb
|
|
dist/*.zip
|
|
dist/*.tar.gz
|
|
dist/*.rpm
|
|
dist/*.deb
|
|
dist/*.exe
|
|
dist/kopia-ui/*.zip
|
|
dist/kopia-ui/*.tar.gz
|
|
dist/kopia-ui/*.dmg
|
|
dist/kopia-ui/*.rpm
|
|
dist/kopia-ui/*.deb
|
|
dist/kopia-ui/*.exe
|
|
dist/kopia-ui/*.AppImage
|
|
dist/kopia-ui/*.yml
|
|
if-no-files-found: ignore
|
|
if: ${{ !contains(matrix.os, 'self-hosted') }}
|
|
- name: Upload Kopia Binary
|
|
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
|
with:
|
|
name: kopia_binaries-${{ matrix.os }}
|
|
path: |
|
|
dist/*/kopia
|
|
dist/*/kopia.exe
|
|
dist/*/rclone
|
|
dist/*/rclone.exe
|
|
if-no-files-found: ignore
|
|
if: ${{ !contains(matrix.os, 'self-hosted') }}
|
|
publish:
|
|
name: Stage And Publish Artifacts
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
if: github.event_name != 'pull_request' && github.repository == 'kopia/kopia'
|
|
steps:
|
|
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
|
|
- name: Download Artifacts
|
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
with:
|
|
pattern: kopia-*
|
|
merge-multiple: true
|
|
path: dist
|
|
- name: Download Kopia Binaries
|
|
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
|
|
with:
|
|
pattern: kopia_binaries-*
|
|
merge-multiple: true
|
|
path: dist_binaries
|
|
- name: Display structure of downloaded files
|
|
run: ls -lR dist/ dist_binaries/
|
|
- name: Install GPG Key
|
|
run: make ci-gpg-key
|
|
env:
|
|
GPG_KEYRING: ${{secrets.GPG_KEYRING}}
|
|
- name: Stage Release
|
|
run: make stage-release
|
|
- name: Push Github Release
|
|
run: make push-github-release
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
|
|
- name: Install GCS Credentials
|
|
run: make ci-gcs-creds
|
|
env:
|
|
GCS_CREDENTIALS: ${{secrets.GCS_CREDENTIALS}}
|
|
- name: Publish APT
|
|
# this needs GCS credentials and GPG keys installed before.
|
|
run: make publish-apt
|
|
- name: Publish RPM
|
|
# this needs GCS credentials and GPG keys installed before.
|
|
run: make publish-rpm
|
|
- name: Publish Homebrew
|
|
# this only pushes to a GitHub repository.
|
|
run: make publish-homebrew
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
|
|
- name: Publish Scoop
|
|
# this only pushes to a GitHub repository.
|
|
run: make publish-scoop
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
|
|
- name: Publish Docker
|
|
run: make publish-docker
|
|
env:
|
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Bump Homebrew formula
|
|
uses: dawidd6/action-homebrew-bump-formula@baf2b60c51fc1f8453c884b0c61052668a71bd1d # v3.11.0
|
|
# only bump formula for tags which don't contain '-'
|
|
# this excludes vx.y.z-rc1
|
|
if: github.ref_type == 'tag' && !contains(github.ref_name, '-')
|
|
with:
|
|
token: ${{ secrets.HOMEBREW_PUSH_TOKEN }}
|
|
formula: kopia
|