Skip to content

Conversation

@cderv
Copy link
Contributor

@cderv cderv commented Apr 14, 2022

This aims to replace appveyor build.

I am opening this PR so that you can have a look at the change and give some feedback. Here is the details:

Current proposal:

We split the process into 3 workflows:

  • One for building full TeX Live bundle on all OS which will be triggered when the other daily builds succeed in tinytex repo
  • One to schedule monthly for the dated monthly release based on last daily with possibility to do a patch release manually if necessary
  • One to build and publish the Choco package and that would be called from within the monthly one once the new monthly tag is created and choco spec modified.

So basically the workflow would be :

  • Daily builds are done in the tinytex repo and a new daily release is created with new assets

  • When this is done sucessfully, it will trigger the daily workflow here to build the daily full bundle and it will update the daily release by adding the missing assets.

  • Every first of the month, the monthly workflow would run and will download every assets of the last daily release.

  • It will keep the TinyTeX bundles and adds a vYYYY-MM to the name.

  • The choco configuration will be updated and a new tag will be created.

  • A new release is created with all the assets

  • As last step, the workflow to update choco package will be triggered to build and publish the package.

I have tested all this in my fork, hence the reference to my repos in this PR. I left it as is in the draft PR and modified if everything is ok. Also, the choco publishing if deactivated for now. Setting the API KEY CHOCO_KEY in the repo secret will be necessary

Test of releases are here: https://github.com/cderv/tinytex-releases/releases

Also some .sh files have been removed - are you using them elsewhere ?

A few questions:

  • How do we want to handle the fact that daily version will not have TinyTeX-2 until it is build here and added to the daily release ?

    • Otherwise we could add it directly in the other workflow but it would take longer everyday to create the new daily. Here is some idea of the timing from a build 16min for Linux, 37min for Mac and 57min on Windows (https://github.com/cderv/tinytex-releases/actions/runs/2169025650)
    • Or we could deploy the previous bundle when create the new daily release so that files are there, but they would be updated later with the workflow here.
  • Do we want to publish a new choco package when doing a patch version ?

  • Was this --source argument necessary ?
    https://github.com/yihui/tinytex-releases/blob/ba3b3d33901085f01f639857da1aa2e0b20a0f99/appveyor.yml#L67
    I modified it so that we only test the built source package. Do I need to revert back ?

I did not test to install one of the bundle yet, but I think it will work. I'll do that next week.

@naveen521kk
Copy link
Collaborator

I modified it so that we only test the built source package. Do I need to revert back ?

Looks good. Actually, the additional source to their community repository would be required if the package had any dependencies; but it doesn't have so it should work with just ..

@cderv
Copy link
Contributor Author

cderv commented Apr 21, 2022

@yihui one question: Build TinyTeX-2 version, so the full scheme, is just a matter of running tlmgr install scheme-full, then creating the bundle ?

I mean it could be in fact a step in our existing daily workflow in https://github.com/yihui/tinytex/blob/main/.github/workflows/build.yaml ?

  1. Build TinyTeX-0
  2. Build TinyTeX-1
  3. Build TinyTeX
  4. Build TinyTeX-2
  5. Build tinytex
  6. Build installer-unix on Ubuntu only
  7. Build regex bundle only once (not OS dependant)

Am I right ?

I am asking as I reworked the daily workflow using the new gh release edit feature, and I believe we could merge everything there for daily release as discussed. I want to be sure I got it right.

Can you confirm ? Thanks!

@yihui
Copy link
Contributor

yihui commented Apr 21, 2022

I mean it could be in fact a step in our existing daily workflow in https://github.com/yihui/tinytex/blob/main/.github/workflows/build.yaml ?

Yes, it could be a step there. I think that will be simpler.

@cderv
Copy link
Contributor Author

cderv commented Apr 21, 2022

Yes, it could be a step there. I think that will be simpler.

Yes it definitely will be. I am taking more time that I thought on this, but once that will be in place, it should work for a long time (hopefully). I am almost there! I need gh CLI 2.8 on windows runner now 😅 too recent

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

I have now moved the daily build of scheme-full in the tinytex repo with other daily build version.

This repo will now only contains monthly build, and patch version builds, with chocolatey packaging and publishing.

I'll merge this one as soon as the other is merged.

@cderv cderv marked this pull request as ready for review April 25, 2022 10:00
- name: Current tag to target
run: |
# Are we making a patch version ?
patch_version=${{ github.event.inputs.patch_version }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously on AppVeyor, I was using an env var TINYTEX_PATCH_VERSION to set the patch version number. When I need to make a patch release, I manually set this env var and trigger the build (and unset the env var after the build is done). I wonder how I should make the patch release now?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess using workflow_dispatch events https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch, though it needs to be configured first.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes the idea would be through the workflow_dispatch event configure here:
https://github.com/yihui/tinytex-releases/blob/e08ca8ba1ff0e68331af804ae35ed61be2bac46a/.github/workflows/monthly-release.yaml#L3-L8
There is a patch_version input that can be set.

Two ways to trigger this:

  • Either using gh CLI, gh workflow run passing key value pair with a value of the day. Ex with today -f patch_version=25 which will creaye 2022.04.25
gh workflow run monthly-release.yaml -f patch_version=25
  • Either using the menu in the Action pane - example in my fork
    image
    By default nothing is set = no patch version. If filled, then a patched version will be made.

More docs:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh great! Thanks for teaching me this!

cderv added 2 commits April 25, 2022 16:45
if manually trigger, then we use the value from the inputs which default to false. For automated monthly release with deploy all the time
@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

I have added a better description of what value to set, and also a new inputs for not deploying to choco if we want to build a patch version without deploying

@yihui
Copy link
Contributor

yihui commented Apr 25, 2022

Sounds good!

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

I ran the new workflow on tinytex to build a daily manually and this is working https://github.com/yihui/tinytex/actions/runs/2220702807 published the new https://github.com/yihui/tinytex-releases/releases

I'll merge this and try a patch release to check it is working

@cderv cderv merged commit 40fc5ff into master Apr 25, 2022
@cderv cderv deleted the build-gha branch April 25, 2022 16:44
@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

Can you give me correct access also in this repo ?
For whatever reason I don't see an Action tab... Maybe it needs to be activated ? I found the url works though: https://github.com/cderv/test-actions/action

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

And it works ! 🎉

See https://github.com/yihui/tinytex-releases/actions/runs/2221722638

I did the final test in "master" as it was easier to check bu reverted the tag, test patch release and commit.

Everything is good for next month !

@yihui
Copy link
Contributor

yihui commented Apr 25, 2022

Can you give me correct access also in this repo ?
For whatever reason I don't see an Action tab... Maybe it needs to be activated ?

I don't know why that happens, but I don't have an option to change your role in this repo or activate the Actions tab specifically. Can you see the Actions tab now?

Everything is good for next month !

Perfect! Thanks!

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

I don't know why that happens, but I don't have an option to change your role in this repo or activate the Actions tab specifically. Can you see the Actions tab now?

No I don't see it. That is odd... I'll look on the web for information. I can access the tab using url directly so I am not blocked

@yihui
Copy link
Contributor

yihui commented Apr 25, 2022

That's really odd. I tried other web browsers and I was able to see the tab no matter if I'm logged in or not.

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

Got an idea. I'll check something ...

@cderv
Copy link
Contributor Author

cderv commented Apr 25, 2022

Yeah I think this is an issue in Refined GitHub extension. I'll fill an issue there. Sorry for the trouble

@cderv
Copy link
Contributor Author

cderv commented May 2, 2022

I had to tweak a little the PR in 507893d and 170c508 so that the publishing to chocolatey works.

I manually triggered this month build also because schedule was for next mont in fact. Starting in JUNE, this should all work fine automatically

@yihui
Copy link
Contributor

yihui commented May 2, 2022

Sounds good. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants