Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(chore) Migrate from ADO -> GHA #2961

Merged
merged 1 commit into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions .github/workflows/build_azure_pipelinesrelease_template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Environment variables defined in a calling workflow are not accessible to this reusable workflow. Refer to the documentation for further details on this limitation.
name: build_azure_pipelinesrelease_template
on:
workflow_call:
inputs:
goVersion:
required: false
default: 1.20.7
type: string
registry:
required: false
default: ghcr.io/getporter/test
type: string
shouldPublish:
required: false
default: false
type: boolean
skipTests:
required: false
default: false
type: boolean
jobs:
Validate-build:
name: Native Compile
runs-on: "{{ vars.}}"
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Configure Agent
run: go run mage.go ConfigureAgent
- name: Native Build
run: mage build
shell: bash
- name: Publish Native Binaries
uses: actions/[email protected]
with:
name: build-bin
path: "${{ github.workspace }}/bin"
Validate-xbuild:
name: Cross Compile
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Configure Agent
run: go run mage.go ConfigureAgent
- name: Cross Compile
run: mage XBuildAll
shell: bash
- name: Publish Release Binaries
uses: actions/[email protected]
with:
name: xbuild-bin
path: "${{ github.workspace }}/bin"
Validate-VetLint:
name: Vet and Lint
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Configure Agent
run: go run mage.go ConfigureAgent
- name: Vet
run: mage Vet
shell: bash
- name: Lint
run: mage Lint
shell: bash
Validate-unit_test:
name: Unit Test
runs-on: ubuntu-latest
if: !(inputs.skipTests)
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Configure Agent
run: go run mage.go ConfigureAgent
- name: Unit Test
run: mage TestUnit
shell: bash
Validate-integration_test:
env:
GHCR_IOGETPORTER_DOCKER_REGISTRY: https://ghcr.io
GHCR_IOGETPORTER_DOCKER_USERNAME: getporterbot
name: Integration Test
needs:
- Validate-build
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Download Bin
uses: actions/[email protected]
with:
name: build-bin
path: bin
- name: Docker Login
uses: docker/[email protected]
with:
registry: "${{ env.GHCR_IOGETPORTER_DOCKER_REGISTRY }}"
username: "${{ env.GHCR_IOGETPORTER_DOCKER_USERNAME }}"
password: "${{ secrets.GHCR_IOGETPORTER_DOCKER_PASSWORD }}"
- name: Configure Agent
run: go run mage.go ConfigureAgent SetBinExecutable
- name: Integration Test
run: mage -v TestIntegration
Validate-smoke_test:
name: Run smoke tests on
needs:
- Validate-xbuild
runs-on:
- self-hosted
if: success() && !(inputs.skipTests)
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Download Cross-Compiled Porter Binaries
uses: actions/[email protected]
with:
name: xbuild-bin
path: bin
- name: Setup Bin
run: go run mage.go ConfigureAgent UseXBuildBinaries
- name: Run Smoke Tests
run: mage -v TestSmoke
Publish-publish_binaries:
name: Publish Binaries
needs:
- Validate-build
- Validate-xbuild
- Validate-VetLint
- Validate-unit_test
- Validate-integration_test
- Validate-smoke_test
runs-on: ubuntu-latest
if: success() && inputs.shouldPublish
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Download Cross-Compiled Porter Binaries
uses: actions/[email protected]
with:
name: xbuild-bin
path: bin
- name: Setup Bin
run: go run mage.go ConfigureAgent UseXBuildBinaries
- name: Publish Porter Binaries
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
run: mage PublishPorter PublishMixins
Publish-publish_docker:
env:
DOCKER_REGISTRY:
DOCKER_USERNAME:
name: Publish Docker Images
needs:
- Validate-build
- Validate-xbuild
- Validate-VetLint
- Validate-unit_test
- Validate-integration_test
- Validate-smoke_test
runs-on: ubuntu-latest
if: success() && inputs.shouldPublish
steps:
- name: checkout
uses: actions/[email protected]
- uses: actions/setup-go@v4
with:
go-version: "${{ inputs.GOVERSION }}"
- name: Download Cross-Compiled Porter Binaries
uses: actions/[email protected]
with:
name: xbuild-bin
path: bin
- name: Setup Bin
run: go run mage.go ConfigureAgent UseXBuildBinaries
# Unable to determine registry '${{parameters.registry}}' type. The service connection was not found or the authentication type not supported.
- name: Docker Login
uses: docker/[email protected]
with:
registry: "${{ env.DOCKER_REGISTRY }}"
username: "${{ env.DOCKER_USERNAME }}"
password: "${{ secrets.DOCKER_PASSWORD }}"
- name: Publish Docker Images to ${{inputs.registry}}
run: PORTER_REGISTRY=${{inputs.registry}} mage PublishImages
27 changes: 27 additions & 0 deletions .github/workflows/porter-canary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: porter/porter-canary
on:
workflow_dispatch:
inputs:
shouldPublish:
default: true
type: boolean
required: false
skipTests:
default: false
type: boolean
required: false
push:
branches:
- main
- release/*
pull_request:
branches:
- split-builds
jobs:
build_azure_pipelinesrelease_template:
name: build_azure_pipelinesrelease_template
uses: "./.github/workflows/build_azure_pipelinesrelease_template.yml"
with:
registry: ghcr.io/getporter
shouldPublish: "${{inputs.shouldPublish}}"
skipTests: "${{inputs.skipTests}}"
35 changes: 35 additions & 0 deletions .github/workflows/porter-install-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: porter/porter-install-check
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
linux:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/[email protected]
- name: Test Install Script
run: scripts/test/test-linux-install.sh
shell: bash
windows:
runs-on: windows-latest
steps:
- name: checkout
uses: actions/[email protected]
- name: Test Install Script
run: scripts\test\test-windows-install.ps1
shell: powershell
macos:
runs-on:
- self-hosted
- macOS-latest
steps:
- name: checkout
uses: actions/[email protected]
- name: Test Install Script
run: scripts/test/test-mac-install.sh
shell: bash
5 changes: 2 additions & 3 deletions .github/workflows/porter-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3.6.0
uses: actions/checkout@v4.1.0
- uses: actions/setup-go@v4
with:
go-version: "${{ env.GOVERSION }}"
# Unable to determine registry 'ghcr.io/getporter' type. The service connection was not found or the authentication type not supported.
- name: Docker Login
uses: docker/login-action@v2.2.0
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/porter-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: porter/porter-release
on:
push:
tags:
- v*
- "!latest*"
- "!canary*"
jobs:
build_azure_pipelinesrelease_template:
name: build_azure_pipelinesrelease_template
uses: "./.github/workflows/build_azure_pipelinesrelease_template.yml"
with:
registry: ghcr.io/getporter
shouldPublish: true
skipTests: true
26 changes: 26 additions & 0 deletions .github/workflows/test-porter-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: porter/test-porter-release
on:
workflow_dispatch:
inputs:
shouldPublish:
default: true
type: boolean
required: false
skipTests:
default: true
type: boolean
required: false
pull_request:
branches:
- main
env:
PORTER_PACKAGES_REMOTE: https://github.com/carolynvs/porter-packages.git
PORTER_RELEASE_REPOSITORY: github.com/carolynvs/porter
jobs:
build_azure_pipelinesrelease_template:
name: build_azure_pipelinesrelease_template
uses: "./.github/workflows/build_azure_pipelinesrelease_template.yml"
with:
registry: ghcr.io/getporter/test
shouldPublish: "${{ inputs.shouldPublish }}"
skipTests: "${{ inputs.skipTests }}"
23 changes: 23 additions & 0 deletions .github/workflows/testporterbot.porter-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: porter/testporterbot.porter-release
on:
workflow_dispatch:
inputs:
shouldPublish:
default: true
type: boolean
required: false
skipTests:
default: true
type: boolean
required: false
pull_request:
branches:
- release/v1
jobs:
build_azure_pipelinesrelease_template:
name: build_azure_pipelinesrelease_template
uses: "./.github/workflows/build_azure_pipelinesrelease_template.yml"
with:
registry: ghcr.io/getporter/test
shouldPublish: "${{ inputs.shouldPublish }}"
skipTests: "${{ inputs.skipTests }}"
Loading