8 Commits

Author SHA1 Message Date
Gergő Jedlicska 4d68562f25 fix checking logic 2023-09-22 13:44:34 +02:00
Gergő Jedlicska 88894c4098 check if image already exists 2023-09-22 13:43:07 +02:00
Gergő Jedlicska e598aac514 fix string quote 2023-09-22 12:31:32 +02:00
Gergő Jedlicska 94ef717fde parsing automate host 2023-09-22 12:27:31 +02:00
Gergő Jedlicska d75eed9a05 fix release tag variable using env 2023-09-22 11:59:53 +02:00
Gergő Jedlicska 7339de2094 fix release tag variable again 2023-09-22 11:53:46 +02:00
Gergő Jedlicska a444b30ba0 fix release tag variable 2023-09-22 11:51:32 +02:00
Gergő Jedlicska 1d7dfb167a rearrange steps to stop publishing broken releases 2023-09-22 11:38:07 +02:00
+43 -10
View File
@@ -33,26 +33,59 @@ runs:
using: "composite"
steps:
- uses: actions/checkout@v3.5.3 # checkout the repository in which this GitHub Action is being used.
- name: Speckle Automate function version publisher
uses: specklesystems/speckle-automate-github-action@0.5.0
id: register_speckle_function_version
with:
speckle_automate_url: ${{ inputs.speckle_automate_url }}
speckle_token: ${{ inputs.speckle_token }}
speckle_function_id: ${{ inputs.speckle_function_id }}
speckle_function_input_schema_file_path: ${{ inputs.speckle_function_input_schema_file_path }}
speckle_function_command: ${{ inputs.speckle_function_command }}
- name: Set Version tag
shell: bash
run: |
echo "Determining Release tag value"
if [[ ${GITHUB_REF_TYPE} == "tag" ]]
then
echo "Workflow triggered by a git tag"
RELEASE_TAG=${GITHUB_REF_NAME}
else
echo "Workflow triggered on a git branch"
RELEASE_TAG=$(git rev-parse --short ${GITHUB_SHA})
fi
echo "Setting the function's releaseTag to: ${RELEASE_TAG}"
echo "releaseTag=${RELEASE_TAG}" >> "$GITHUB_ENV"
- name: Log in to Speckle Automate Docker registry
uses: docker/login-action@v2.2.0
with:
registry: ${{ inputs.speckle_automate_url }}
username: ${{ inputs.speckle_token }}
password: ${{ inputs.speckle_token }}
- name: Parse automate host
shell: bash
run: |
AUTOMATE_HOST=$(python -c 'from urllib.parse import urlparse; print(urlparse("${{ inputs.speckle_automate_url }}").netloc)')
echo "Parsed automate host: ${AUTOMATE_HOST}"
echo "automateHost=${AUTOMATE_HOST}" >>"$GITHUB_ENV"
- name: Ensure image doesn't exist in registry
shell: bash
run: |
set +e
docker manifest inspect ${{ env.automateHost }}/${{ inputs.speckle_function_id }}:${{ env.releaseTag }}
if [[ $? == 0 ]]
then
echo "Cannot override the existing release tag ${{ env.releaseTag }}. Please publish a new release!"
exit 1
fi
- name: Build and push Docker image
uses: docker/build-push-action@v4.1.1
with:
context: ${{ inputs.docker_context }}
file: ${{ inputs.dockerfile_path }}
tags: ${{ steps.register_speckle_function_version.outputs.speckle_automate_host }}/${{ inputs.speckle_function_id }}:${{ steps.register_speckle_function_version.outputs.version_tag }}
tags: ${{ env.automateHost }}/${{ inputs.speckle_function_id }}:${{ env.releaseTag }}
target: ''
push: true
- name: Speckle Automate function version publisher
uses: specklesystems/speckle-automate-github-action@0.6.1
id: register_speckle_function_version
with:
speckle_automate_url: ${{ inputs.speckle_automate_url }}
speckle_token: ${{ inputs.speckle_token }}
speckle_function_id: ${{ inputs.speckle_function_id }}
speckle_function_input_schema_file_path: ${{ inputs.speckle_function_input_schema_file_path }}
speckle_function_release_tag: ${{ env.releaseTag }}
speckle_function_command: ${{ inputs.speckle_function_command }}