fix: update branch name #2
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# WARNING: If you modify this workflow, please update the documentation | |
on: | |
workflow_call: | |
inputs: | |
target: | |
description: | | |
The target used to mark release builds. This target should be unique | |
across all Earthly files in the repository. The target should always | |
produce at least one artifact which is included in the final GitHub | |
release when the workflow is triggered by a tag. | |
required: false | |
type: string | |
default: release | |
aws_role_arn: | |
description: | | |
The ARN of the AWS role that will be assumed by the workflow. Only | |
required when configuring a remote Earthly runner. | |
required: false | |
type: string | |
aws_region: | |
description: | | |
The AWS region that will be used by the workflow. Only required when | |
configuring a remote Earthly runner. | |
required: false | |
type: string | |
ci_cli_version: | |
description: | | |
The version of the CI CLI to use. | |
required: false | |
type: string | |
default: latest | |
earthly_version: | |
description: The version of Earthly to use. | |
required: false | |
type: string | |
default: latest | |
force_artifact: | |
description: | | |
When set to true, the workflow will always produce an artifact even | |
when the current commit is not tagged. | |
required: false | |
type: boolean | |
default: false | |
secrets: | |
dockerhub_username: | |
description: The token to use for logging into the DockerHub registry. | |
required: false | |
dockerhub_token: | |
description: The token to use for logging into the DockerHub registry. | |
required: false | |
earthly_runner_address: | |
description: | | |
The address of the Earthly runner that will be used to build the | |
Earthly files. | |
required: false | |
earthly_runner_secret: | |
description: | | |
The ID of the AWS secret holding Earthly remote runner credentials. | |
This secret must contain the runner address and the necessary TLS | |
certificates required to authenticate with it. If omitted, a remote | |
Earthly runner will not be configured. | |
required: false | |
jobs: | |
discover: | |
runs-on: ubuntu-latest | |
outputs: | |
json: ${{ steps.check.outputs.json }} | |
paths: ${{ steps.check.outputs.paths }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup CI | |
uses: input-output-hk/catalyst-ci/actions/setup@@feat/udcmigration | |
with: | |
cli_version: ${{ inputs.ci_cli_version }} | |
configure_registries: "false" | |
earthly_skip_install: "true" | |
- name: Discover Earthly files | |
uses: input-output-hk/catalyst-ci/actions/discover@@feat/udcmigration | |
id: discover | |
with: | |
targets: ${{ inputs.target }} | |
- name: Check for empty output | |
id: check | |
run: | | |
json=$(echo '${{ steps.discover.outputs.json }}' | jq -rc) | |
paths=$(echo '${{ steps.discover.outputs.paths }}' | jq -rc) | |
if [ "$output" == "null" ]; then | |
echo "json=[]" >> $GITHUB_OUTPUT | |
echo "paths=[]" >> $GITHUB_OUTPUT | |
else | |
echo "json=$json" >> $GITHUB_OUTPUT | |
echo "paths=$paths" >> $GITHUB_OUTPUT | |
fi | |
run: | |
runs-on: ubuntu-latest | |
needs: [discover] | |
if: needs.discover.outputs.paths != '[]' | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: | |
- linux/amd64 | |
earthfile: ${{ fromJson(needs.discover.outputs.paths) }} | |
steps: | |
- name: Get filtered targets | |
id: get_target | |
run: | | |
targets=$(echo '${{ needs.discover.outputs.json }}' | jq -r --arg key '${{ matrix.earthfile }}' '.[$key][]') | |
echo "Found targets: $targets" | |
targets_with_space=$(echo $targets | tr '\n' ' ') | |
echo "targets=$targets_with_space" >> $GITHUB_OUTPUT | |
- uses: actions/checkout@v3 | |
- name: Setup CI | |
uses: input-output-hk/catalyst-ci/actions/setup@@feat/udcmigration | |
with: | |
aws_role_arn: ${{ inputs.aws_role_arn }} | |
aws_region: ${{ inputs.aws_region }} | |
cli_version: ${{ inputs.ci_cli_version }} | |
dockerhub_token: ${{ secrets.dockerhub_token }} | |
dockerhub_username: ${{ secrets.dockerhub_username }} | |
earthly_version: ${{ inputs.earthly_version }} | |
earthly_runner_secret: ${{ secrets.earthly_runner_secret }} | |
- name: Build artifact | |
uses: input-output-hk/catalyst-ci/actions/run@@feat/udcmigration | |
id: build | |
with: | |
earthfile: ${{ matrix.earthfile }} | |
targets: ${{ steps.get_target.outputs.targets }} | |
platform: ${{ matrix.platform }} | |
runner_address: ${{ secrets.earthly_runner_address }} | |
artifact: "true" | |
- name: Generate artifact name | |
if: startsWith(github.ref, 'refs/tags/') || inputs.force_artifact | |
id: artifact | |
run: | | |
earthfile=$(basename ${{ matrix.earthfile }}) | |
platform=$(echo '${{ matrix.platform }}' | sed 's/\//-/g') | |
echo "name=$earthfile-$platform" >> $GITHUB_OUTPUT | |
- name: Compress artifact | |
if: startsWith(github.ref, 'refs/tags/') || inputs.force_artifact | |
run: | | |
find "${{ steps.build.outputs.artifact }}" -printf "%P\n" | tar -czvf "${{ steps.artifact.outputs.name }}.tar.gz" -C "${{ steps.build.outputs.artifact }}" -T - | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
if: startsWith(github.ref, 'refs/tags/') || inputs.force_artifact | |
with: | |
name: ${{ steps.artifact.outputs.name }} | |
path: ${{ steps.artifact.outputs.name }}.tar.gz | |
release: | |
runs-on: ubuntu-latest | |
needs: [run] | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: Collect artifacts | |
id: collect | |
run: | | |
ARTIFACT_PATHS=$(find artifacts -type f -name '*.tar.gz') | |
echo "artifacts<<EOF" >> $GITHUB_OUTPUT | |
echo "$ARTIFACT_PATHS" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ${{ steps.collect.outputs.artifacts }} |