Actions FAQs
  • 8 Minutes to read
  • Dark
    Light
  • PDF

Actions FAQs

  • Dark
    Light
  • PDF

Article summary

Who can benefit from AllSpice Actions?

Test Engineering/Technicians/Assembly

Actions can help ensure that the correct test and mission firmware are in the Assembly release. Automated scripts can generate test coverage reports and make recommendations for test-points. Generate automatic mating PCBs and connectors to speed up test development.

Assembly information and corrective action reports can automatically create issues against designs, ensuring that design-manufacturing loops are closed.

Firmware/Software Development Teams

Firmware teams are no stranger to CI/CD platforms, and will feel right at home. AllSpice Actions is compatible with GitHub Actions and most automation can be ported. FW teams can run automated tests to ensure the code is tested, as well as validate test-fw.

Mechanical Engineering Teams

Enclosures are more expensive and time-consuming to design, with tooling often being the longest turn-around time for the project. It’s important that the PCBA fits and there is no interference. Automation helps synchronize MCAD design files onto our Automation file, where they can turn the files into a reviewable format, such as 3DPDF, PDF, SVG, DXF.

Quality Assurance

QA teams can associate verification data and corrective actions to specific design repos, and automatically sync a report to the design repository. Inline factory tests can synchronize their results in real-time, showcasing early trends and accurate information always on-demand.

Engineering Management

Engineering is hard, and there are never enough engineers on a project. Using Actions to remove repetitive and error prone steps, frees up engineers to work on more challenging problems. Herding designs to production has always been the biggest non-value add in the design process. Allspice Actions can give your engineers the relief they need to build new designs quickly

How do I share Artifact files between jobs?

Intro

It is very common to want to save an artifact file in one workflow job and then retrieve it from another job.

How to share artifact files between jobs

Before saving or loading an artifact file, we need to ensure the order of operation for the jobs.

Add needs: previous-job to a job that is reading the artifact from a previous job. It needs to run second and needs the previous job to run first to save the artifact file.

This syntax allows Job-Run-Second to require that Job-Run-First runs first.

Job-Run-Second:
    runs-on: ubuntu-latest
    needs: Job-Run-First

Here is the complete workflow file

name: Workflow-hello-world

on:
  push:
    # Trigger the workflow on any push event to the repository
  issues:
    # Trigger the workflow on issue open, close, or reopen events
    types: [opened, closed, reopened]

jobs:
  Job-Run-First:
    runs-on: ubuntu-latest
    steps:
      - name: "Print Run 1st 🔎"
        run: | 
          # Print "Run 1st" and the current date and time
          echo "Run 1st"
          date +"%Y-%m-%d %H:%M:%S"
          # Create a file named example.txt with the content "Example artifact file"
          echo "Example artifact file" > example.txt
      - name: Upload example artifact file
        uses: actions/upload-artifact@v3
        with: 
          # Upload the example.txt file as an artifact named Artifact-file
          name: Artifact-file
          path: example.txt
  Job-Run-Second:
    runs-on: ubuntu-latest
    needs: Job-Run-First
    steps:
      - name: "Print Run Second 🔎"
        run: |
          # Print "Run 2nd" and the current date and time
          echo "Run 2nd"
          date +"%Y-%m-%d %H:%M:%S"          
      - name: Download example artifact file
        uses: actions/download-artifact@v3
        with:
          # Download the artifact named Artifact-file to the specified path
          name: Artifact-file
          path: path/to/artifact
      - name: Print content of example-file.txt
        run: 
          # Display the content of the downloaded example.txt file
          cat path/to/artifact/example.txt

Example output

View this interactive demo to see the job order and the output of saving and loading an artifact file.

How do Actions minutes work?

Intro

AllSpice Actions are metered by how long they run in minutes, rounded up to the nearest minute.

Every organization starts with a free 100 minutes per month to experiment or run automation. If you need more minutes, you can update your minutes in your organization settings.

Try this interactive demo to learn how to adjust your minutes:

Updating Actions minutes

  • Visit your organization settings
  • Click on the billing tab (on the left)
  • Navigate to “Actions Minutes”
  • You will be able to see the number of minutes you have used, and the total number of minutes you have allocated for the month.
    • Minutes are set to 100 by default
    • The first 100 minutes are free
    • To change the number of minutes, edit the “Actions Minutes Limit” field. You cannot go below 100 or the number of minutes used.
    • You can change the number and then lower it, as long as it remains above the total minutes used.
  • If you have any questions or issues, please reach out to us at support@allspice.io.

AllSpice Actions vs GitHub Actions

Comparison with GitHub Actions

Allspice Actions aims to be compatible with GitHub Actions, but there are some key differences between the two.

Absolute Action URLs

AllSpice Actions allows defining actions via absolute URLs, enabling the use of actions from any Git repository. For example:
• uses: https://github.com/actions/checkout
• uses: http://hub.allspice.io/owner/repo@branch

Non-standard Schedule Syntax

AllSpice Actions supports non-standard schedule syntax like @yearly, @monthly, @weekly, @daily, and @hourly, which GitHub Actions does not support. More details can be found here.

Unsupported Workflow Syntax

Concurrency

AllSpice Actions currently ignores the concurrency keyword, which is used to run a single job at a time. More details can be found in the GitHub Actions documentation on Using concurrency.

Run Name

The run-name keyword, used for naming workflow runs, is ignored by AllSpice Actions. See more in the GitHub Actions documentation.

Permissions

AllSpice Actions ignores the permissions and jobs.<job_id>.permissions keywords. Refer to the GitHub Actions documentation.

Timeout Minutes

The jobs.<job_id>.timeout-minutes keyword is also ignored by AllSpice Actions. More information is available here.

Continue on Error

The jobs.<job_id>.continue-on-error keyword is not supported by AllSpice Actions. Details can be found here.

Environment

AllSpice Actions ignores the jobs.<job_id>.environment keyword. See more in the GitHub Actions documentation.

Complex runs-on Syntax

AllSpice Actions only supports simple runs-on syntax like runs-on: xyz or runs-on: [xyz]. Complex syntax is not supported. More details here.

workflow_dispatch

The workflow_dispatch event is ignored by AllSpice Actions. See more in the GitHub Actions documentation.

hashFiles Expression

AllSpice Actions does not support the hashFiles expression, which results in an empty string if used. As a workaround, consider using go-hashfiles. More information on expressions can be found here.

Missing Features

Problem Matchers

Problem Matchers, which scan action outputs for regex patterns and highlight information in the UI, are not supported by AllSpice Actions. More details here.

Error Annotations

Creating error annotations is not supported by AllSpice Actions. See more in the GitHub Actions documentation.

Expressions

AllSpice Actions supports only the always() expression

Context Availability

Context availability is not checked in AllSpice Actions, allowing the env context to be used in more places. See more in the GitHub Actions documentation.

When is the best time to get started with AllSpice Actions?

The Best Time to Get Started with AllSpice Actions

When it comes to leveraging the full power of AllSpice Actions for your engineering workflows, the best time to start is always right now. Whether you are in the middle of developing a design, wrapping up a finished project, or about to embark on a new one, integrating AllSpice Actions into your processes will streamline your work, improve efficiency, and ensure that every aspect of your project is optimized for success. Here’s why any stage of your design process is the perfect time to dive into AllSpice Actions.

Currently Developing a Design

Test Out Workflows on Real Files

If you are currently developing a design, you have a golden opportunity to test your workflows on real files. By integrating AllSpice Actions at this stage, you can automate repetitive tasks, run automated tests, and catch errors early in the development cycle. This not only saves time but also enhances the quality of your design by ensuring that issues are identified and addressed promptly.

Capture Issues as They Come Up

Using AllSpice Actions during the design phase allows you to capture issues as they arise. Automated workflows can detect and report problems in real-time, providing you with the insights needed to make immediate adjustments. This proactive approach to problem-solving helps maintain momentum and prevents small issues from becoming major roadblocks.

Finished Design - Between Projects

Add Fabrication Files to Release

Once a design is complete, the period between projects is an ideal time to integrate AllSpice Actions to manage your fabrication files. By automating the addition of fab files to your release process, you ensure that all necessary documentation is included and up-to-date, facilitating a smoother transition to manufacturing.

Use AllSpice to Distribute Fabrication Files to Contract Manufacturers

AllSpice Actions can significantly simplify the distribution of your fabrication files to contract manufacturers (CMs). Automating this process reduces the risk of errors and ensures that your CMs receive accurate and complete information. This efficiency not only saves time but also helps in building a more reliable and scalable production process.

Update and Cleanup Libraries

Between projects, you can also use AllSpice Actions to update and clean up your libraries. Automated scripts can help in identifying obsolete components, updating to the latest versions, and organizing your library for better usability. This maintenance ensures that your resources are always in top shape, ready for the next project.

Starting a New Design

Set Up Workflows

When beginning a new design, setting up your workflows with AllSpice Actions right from the start is a smart move. This initial setup phase is the perfect time to define your automation rules, configure testing protocols, and establish a solid foundation for your project. Starting with well-defined workflows can make the entire design process more efficient and manageable.

Update

Embarking on a new design often involves updating various elements from previous projects. With AllSpice Actions, you can automate these updates, ensuring that your new design incorporates the latest improvements and innovations from your previous work. This continuity helps in building on past successes and avoiding past mistakes.

Conclusion

In summary, the best time to get started with AllSpice Actions is now, regardless of where you are in your design journey. Whether you are developing a new design, finalizing a finished one, or starting afresh, AllSpice Actions offers powerful tools to enhance your workflows, improve efficiency, and ensure high-quality outcomes. By integrating automation into your processes, you can focus more on innovation and creativity, while AllSpice Actions handles the routine tasks. So, don’t wait—embrace AllSpice Actions today and take your engineering projects to the next level.

Do you support Windows Action Runners?

AllSpice does not currently support Windows runners. AllSpice currently only runs Ubuntu LTS 2024

If you have a need to use a Windows runner, or any other special configuration, please contact us at support@allspice.io.


Was this article helpful?