Skip to content

Commit

Permalink
Migrate cross-compile task to github-actions
Browse files Browse the repository at this point in the history
As of Sept. 1st 2023 Cirrus-CI will start charging for hosted compute
time.  At the time of this commit, according to the containers-org
billing page, github provides 200 "free" minutes per month of MacOS
time.  However, the same page shows 0 minutes used across-the-board, so
perhaps they're not counting minutes at all.

Signed-off-by: Chris Evich <[email protected]>
  • Loading branch information
cevich committed Aug 9, 2023
1 parent bc68b59 commit b804ffe
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 24 deletions.
24 changes: 0 additions & 24 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,29 +132,6 @@ vendor_task:
- './hack/tree_status.sh'


# Confirm cross-compile ALL architectures on a Mac OS-X VM.
cross_build_task:
name: "Cross Compile"
alias: cross_build
only_if: >-
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
$CIRRUS_CRON != 'multiarch'
osx_instance:
image: ghcr.io/cirruslabs/macos-ventura-base:latest

script:
- brew update
- brew install go
- brew install go-md2man
- brew install gpgme
- go version
- make cross CGO_ENABLED=0

binary_artifacts:
path: ./bin/*


unit_task:
name: 'Unit tests w/ $STORAGE_DRIVER'
alias: unit
Expand Down Expand Up @@ -381,7 +358,6 @@ success_task:
- unit
- conformance
- vendor
- cross_build
- integration
- in_podman
- image_build
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/test_macos_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---

name: Test MacOS Build

on: [push, pull_request]

jobs:
# Workflows only record minimal details about the event which triggered them.
trigger_event_debug:
name: Archive workflow trigger event details
runs-on: ubuntu-latest
steps:
- name: Archive workflow trigger event details
uses: actions/upload-artifact@v3
with:
name: workflow_trigger_event
path: ${{ github.event_path }}
process_pr_description:
name: Process PR Description
runs-on: ubuntu-latest
outputs:
ci_docs: ${{ steps.ci_docs_check.outputs.present }}
steps:
- name: "Check for '[CI:DOCS]'"
id: ci_docs_check
env:
# DANGER: Command-injection risk, bounce value through env. var.
PR_DESC: "${{ github.event.pull_request.title }}"
run: |
if [[ "$PR_DESC" =~ CI:DOCS ]]; then
# GHA provides no indication of output values, assist human debuggers.
echo "::warning::Skipping job due to [CI:DOCS] in PR description"
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
fi
test_macos_build:
name: Test MacOS Build
runs-on: macos-latest
needs: process_pr_description
if: ${{ needs.process_pr_description.outputs.ci_docs == 'false' }}
steps:
# Side-effect: Checkout action alters the execution environment.
- name: Checkout repository
uses: actions/checkout@v3
# Workflows do not save any record of their environment. Assist future
# human debuggers by logging all values. DANGER: Some values may be
# sensitive. The github-runner will mask them _only_ on output, not any
# files/artifacts they may wind up in.
- name: Debug workflow trigger and environment
run: |
echo "::group::Workflow Trigger"
jq --color-output --indent 2 '.' "${{ github.event_path }}"
echo "::endgroup::"
echo "::group::Workflow Environment"
printenv | sort
echo "::endgroup::"
- name: Test MacOS Build
run: |
brew update
brew install --overwrite go
brew install go-md2man
brew install gpgme
go version
make cross CGO_ENABLED=0
- name: Archive compiled binaries
uses: actions/upload-artifact@v3
with:
name: binary
path: "./bin/*"

0 comments on commit b804ffe

Please sign in to comment.