# Post-publish scripts

> How to add post-publish scripts in codemagic.yaml



Codemagic has a number of integrations for publishing but you can also publish elsewhere with custom scripts.



> 
> **Note:** Post-publish scripts will be executed even if a build fails. They will stop from being executed only when a build is canceled or times out. You can specify additional conditions using if statements in scripts themselves.
> 



Below are just a few post-publish script examples to illustrate the most common options:

#### Publish only if .apk was created


```yaml


publishing:
  email:
    recipients:
      - name@example.com
  scripts:
    name: Check for apk
    script: | 
      apkPath=$(find build -name "*.apk" | head -1)
      if [[ -z ${apkPath} ]]
      then
        echo "No .apk were found"
      else
        echo "Publishing .apk artifacts"
      fi

```



#### Report build status


```yaml


scripts:
  - name: Report build start
    script: # build started
    
    . . .
  
  - name: Build finished successfully
    script: touch ~/SUCCESS
publishing:
  scripts:
    - name: Report build status
      script: | 
        if [  -f ~/SUCCESS ] ; then
           # build successful
        else
           # build failed
        fi
  
```

  
  
#### Get artifact links
  
  
```yaml


  publishing:
    scripts:
      - name: To get artifact URL
        script: | 
          ARTIFACT_TYPE=".apk" 
          ARTIFACT_URL=$(echo $CM_ARTIFACT_LINKS | jq -r '.[] | select(.name | endswith("'"$ARTIFACT_TYPE"'")) | .url')

```
        
 
