Run the import in CI
During a migration, SSIS packages keep changing until the day they are switched off. Re-run the import on every change, and let the exit code tell the pipeline whether something broke.
The command
Use the standalone jar: it needs only Java 21, not a Hop installation.
java -jar importer-ssis.jar --no-skip-existing ssis-packages hop-output
--no-skip-existing makes every run write the current conversion, so the output always matches
the input.
Leave --translate-scripts out in CI: a language model does not give the same answer twice, so
the translated scripts would change on every run. Get the drafts from a separate import, and finish
them in the Hop project you work in; see
Translate Script Components.
Exit codes
| Exit code | Meaning | In CI |
|---|---|---|
0 | Every package converted | Pass |
1 | The import crashed, or the input folder does not exist | Fail |
2 | The command line could not be parsed | Fail |
3 | The import finished, but at least one package could not be read or converted; the report lists them under Packages that failed to import | Fail, or warn while you work through them |
A component that fails to convert does not fail its package: it becomes a placeholder and is
reported. So exit code 0 means every package produced a workflow, not that every component
converted. Read the report for that.
Keep the output reviewable
Apart from the creation date that Hop stores in every pipeline and workflow, the importer writes the same files for the same input. Commit the output, and the diff of each change shows what the SSIS change did to the Hop side. Keep the report in the commit too: the change in its Totals is the progress of the migration.