brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 3fd1c73 Raw
78 lines · yaml
1name: Build Windows CI Container2 3permissions:4  contents: read5 6on:7  push:8    branches:9      - main10    paths:11      - .github/workflows/build-ci-container-windows.yml12      - '.github/workflows/containers/github-action-ci-windows/**'13  pull_request:14    paths:15      - .github/workflows/build-ci-container-windows.yml16      - '.github/workflows/containers/github-action-ci-windows/**'17 18jobs:19  build-ci-container-windows:20    if: github.repository_owner == 'llvm'21    runs-on: windows-202222    outputs:23      container-name: ${{ steps.vars.outputs.container-name }}24      container-name-tag: ${{ steps.vars.outputs.container-name-tag }}25      container-filename: ${{ steps.vars.outputs.container-filename }}26    steps:27      - name: Checkout LLVM28        uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.029        with:30          sparse-checkout: .github/workflows/containers/github-action-ci-windows31      - name: Write Variables32        id: vars33        run: |34          $tag = [int64](Get-Date -UFormat %s)35          $container_name="ghcr.io/$env:GITHUB_REPOSITORY_OWNER/ci-windows-2022"36          echo "container-name=${container_name}" >> $env:GITHUB_OUTPUT37          echo "container-name-tag=${container_name}:${tag}" >> $env:GITHUB_OUTPUT38          echo "container-filename=ci-windows-${tag}.tar" >> $env:GITHUB_OUTPUT39      - name: Build Container40        working-directory: .github/workflows/containers/github-action-ci-windows41        run: |42          docker build -t ${{ steps.vars.outputs.container-name-tag }} .43      - name: Save container image44        run: |45          docker save  ${{ steps.vars.outputs.container-name-tag }} >  ${{ steps.vars.outputs.container-filename }}46      - name: Upload container image47        uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.048        with:49          name: container50          path: ${{ steps.vars.outputs.container-filename }}51          retention-days: 1452  53  push-ci-container:54    if: github.event_name == 'push'55    needs:56      - build-ci-container-windows57    permissions:58      packages: write59    runs-on: ubuntu-24.0460    env:61      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}62    steps:63      - name: Download container64        uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.065        with:66          name: container67      - name: Push Container68        run: |69          sudo apt-get update70          sudo apt-get install -y skopeo71          skopeo login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io72          skopeo copy docker-archive:${{ needs.build-ci-container-windows.outputs.container-filename }} \73            --dest-compress-format zstd \74            docker://${{ needs.build-ci-container-windows.outputs.container-name-tag }}75          skopeo copy docker-archive:${{ needs.build-ci-container-windows.outputs.container-filename }} \76            --dest-compress-format zstd \77            docker://${{ needs.build-ci-container-windows.outputs.container-name }}:latest78